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 сделать простейшую переадресацию с одной страницы на другую?

Создаём страницу (Page), задаем URL и в секции код добавляем обработчик на хук жизненного цикла страницы. В данном случае это onStart, которая выполняется перед началом загрузки страницы.

function onStart()
{
    return Redirect::to('http://tyapk.ru');
}