OctoberCMS Backend. Добавить кнопку в relation manager toolbar
Добавляем опцию toolbarPartial
в Relation Behavior Config (config_relation.yaml
) выбранного контроллера. Значеним будет является partial, в котором необходимо отрисовать модифицированную панель с кнопками.
publication_authors:
label: Авторы
view:
list: $/author_code/plugn_code/models/some_model/columns.yaml
toolbarButtons: add|remove
toolbarPartial: relation_toolbar <-- ВОТ СЮДА
manage:
showSearch: true
recordsPerPage: 10
В примере используется имя relation_toolbar
, значит в контроллере необходимо создать partial с имененм _relation_toolbar.htm
. В нём нужно отрисовать кнопки по-умолчанию и добавить свою.
В CMS за отрисовку штатной панели с кнопками отвечает partial \modules\backend\behaviors\relationcontroller\partials\_toolbar.htm
. Его содержимое:
<div data-control="toolbar">
<?php foreach ($relationToolbarButtons as $button): ?>
<?php if ($button == 'update'): ?>
<?= $this->relationMakePartial('button_update', [
'relationManageId' => $relationViewModel->getKey()
]) ?>
<?php else: ?>
<?= $this->relationMakePartial('button_'.$button) ?>
<?php endif ?>
<?php endforeach ?>
</div>
Берем нужный нам код и вставляем в наш partial. Код отдельных кнопок копировать не надо, CMS сама их подтянет. \plugins\author_code\plugn_code\controllers\some_controller\_relation_toolbar.htm
<div data-control="toolbar">
<button
data-request="onAutoAddAuthors"
data-stripe-load-indicator
class="btn btn-sm btn-primary oc-icon-link">
Привязать авторов автоматически
</button>
<?php foreach ($relationToolbarButtons as $button): ?>
<?= $this->relationMakePartial('button_'.$button) ?>
<?php endforeach ?>
</div>
У меня используется только 2 кнопки (add|remove). Если нужна update, то следует скопировать весь код из _toolbar.
Страница официальной документации Configuring the relation behavior