Панель быстрых действий в меню бэкенда
Панель «быстрые действия» в Winter CMS - это ссылки на иконках, расположенные слева от пользовательского меню:
По умолчанию в панеле быстрых действий находится одна ссылка для предварительного просмотра веб-сайта.
Плагины имеют возможность определять элементы в панели быстрых действий с помощью registerQuickActions
метода, который следует той же конфигурации, что и registerNavigation
метод. Это позволяет плагину легко определить ярлык (или удалить его).
Добавление ярлыка в панель быстрых действий:
/**
* Registers back-end quick actions for this plugin.
*/
public function registerQuickActions(): array
{
return [
'help' => [
'label' => 'winter.docs::lang.links.docsLink',
'url' => Backend::url('docs'),
'icon' => 'icon-question-circle',
'iconSvg' => '/plugins/authorName/pluginName/assets/images/name.svg',
'attributes' => [
'target' => '_blank',
'rel' => 'noopener noreferrer',
'data-test' => 'qwerty',
],
'permissions' => ['winter.docs.*'],
'order' => 20,
],
];
}
Свойства для генерации элементов
Свойство | Тип | Обязательно | Описание |
---|---|---|---|
label |
string | Да | Текст всплывающей подсказки |
url |
string | Да | Значение для атрибута href="" . Для ссылок на бэкенд можно использовать статический метод Backend::url('docs') , а для ссылок на фронтенд Url::to('/') |
icon |
string | Нет | CSS-класс иконки FontAwesome |
iconSvg |
string | Нет | SVG-иконка |
attributes |
array | Нет | HTML-атрибуты |
permissions |
array | Нет | Разрешение |
order |
int | Нет | Порядковый номер |
Методы управления
Как и в случае обычной навигации бэкенда, быстрые действия также можно добавлять или удалять программно с помощью метода NavigationManager::registerCallback()
или backend.menu.extendItems
события. Следующие методы управляют этими функциями:
-
addQuickActionItems
-
removeQuickActionItem
-
listQuickActionItems
Для более наглядного понимания, вот код который генерирует элементы для панели быстрых действий:
<li class="mainmenu-quick-action with-tooltip">
<a
href="<?= $item->url ?>"
title="<?= e(trans($item->label)) ?>"
<?= Html::attributes($item->attributes) ?>
>
<?php if ($item->iconSvg): ?>
<img
src="<?= Url::asset($item->iconSvg) ?>"
class="svg-icon" loading="lazy" width="20" height="20" />
<?php endif ?>
<i class="<?= $item->iconSvg ? 'svg-replace' : null ?> <?= $item->icon ?>"></i>
</a>
</li>
*** Войдите чтобы писать комментарии.