OctoberCMS
March 30, 2021

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'),
        ],           
    ];
}

Смотрим что получилось:

В своих проектах мы пока не применяли данную возможность, но надеемся, что кому-то это пригодится!