QuickActions в OctoberCMS
Заметка из разряда - "Всякие интересности в OctoberCMS"
В ноябре 2020 г. был замечен интересный pull-request в репозиторий OctoberCMS.
This PR adds support for defining quick actions in the main navigation in the Backend. Quick actions in this case are defined as the single-purpose icon links located to the left of the user menu - the only one currently available in an October CMS install is the link to preview the website.
Другими словами этот PR добавляет "быстрые действия" в основной навигации в панели управления, расположенные слева от ссылки для предварительного просмотра сайта.
Небольшой How-To
Для того, чтобы новая фича заработала - нам нужна новая установка OctoberCMS из композера:
composer create-project october/october myoctober
и обновиться до последней версии через тот же composer:
composer update
Создадим тестовый плагин для эксперимента
Для создания тестового плагина QuickActions выполним в консоли:
php artisan create:plugin sandbox.quickactions
Далее, отредактируем файл Plugin.php, добавим в него следующее:
public function registerQuickActions() { return [ 'help' => [ 'label' => 'Read the documentation ', 'icon' => 'icon-question-circle', 'url' => Backend::url('read-the-docs'), ], ]; }
Voila, теперь в панели управления мы увидим такое новшество:
Пойдем дальше, добавим кастомную svg-иконку. Очень часто в проектах мы используем ресурс https://www.svgrepo.com/ как источник иконок.
Добавим быструю ссылку для связи с разработчиками сайта. Для иконки возьмем первую попавшуюся из этого набора https://www.svgrepo.com/vectors/mail/multicolor/ и добавим ее в наш плагин в папку:
plugins/sandbox/quickactions/assets/svg
Далее отредактируем метод registerQuickActions()
в файле Plugin.php
public function registerQuickActions() { return [ 'help' => [ 'label' => 'Read the documentation', 'icon' => 'icon-question-circle', 'url' => Backend::url('read-the-docs'), ], 'mail' => [ 'label' => 'Send email to developers', 'iconSvg' => '/plugins/sandbox/quickactions/assets/svg/mail.svg', 'url' => Backend::url('mail-to-devs'), ], ]; }
Смотрим что получилось:
В своих проектах мы пока не применяли данную возможность, но надеемся, что кому-то это пригодится!