OctoberCMS Backend. Добавить кнопку в relation manager toolbar

add-button-to-relation-manager-toolbar.png

Добавляем опцию 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

Другие записи из подборки «OctoberCMS. Backend.»

Похожие записи