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.»

OctoberCMS. Ошибка RelationController: "Не удалось найти шаблон (partial) ... traits\ViewMaker.php"

В контроллере поведения RelationController при нажатии на кнопке "Cоздание" вылетает ошибка с подобным содержаним

"Не удалось найти шаблон (partial) с именем _comments.htm." on line 91
of ...\modules\system\traits\ViewMaker.php

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

Собственные сообщения об ошибках валидации форм OctoberCMS

Во время разработки модели данных OctoberCMS при необходимости, можно использовать собственные сообщения об ошибках валидации полей формы вместо сообщения The :attribute field is required. по-умолчанию. В статье показывается как, достаточно просто, это делается.