OctoberCms создать страницу с настройками

Часто бывает достаточно использовать настройки активной темы, но в ряде случаев необходимо создать именно отдельную страницу с настройками, валидацией и разрешениями на редактирование.

Для всех этих дел необходимо сразу создать плагин с моделью.

php artisan create:plugin Site21.BaseCode
php artisan create:model Site21.BaseCode Settings

Далее в своем плагине добавляем:

public function registerSettings()
{
    return [
        'settings' => [
            'label'       => 'Мои настройки',
            'description' => 'Описание плагина',
            'category'    => 'Категория плагина',
            'icon'        => 'icon-line-chart',
            'class'       => 'Site21\BaseCode\Models\Settings',
            'order'       => 500,
            'keywords'    => 'кастомные мои основные настройки',
            'permissions' => ['site21.basecode.access_settings']
        ]
    ];
}

С label, description и category думаю ясно, но стоит их писать через e(trans(''))

Возможные значения icon можете найти на офиц. сайте octobercms.


Здесь же в плагине добавляем разрешение на редактирование страницы с настройками.

public function registerPermissions()
{
    return [
        'site21.basecode.access_settings' => [
            'tab' => 'BaseCode',
            'label' => 'Редактировать кастосные настройки'
        ],
    ];
}

В созданной на 1 этапе моделе пишем (файл находится по адресу /plugins/site21/models/Settings.php):

public $implement = ['System.Behaviors.SettingsModel'];
// уникальный код
public $settingsCode = 'site21_basecode_settings';
// путь к файлу с полями
public $settingsFields = 'fields.yaml';

Теперь последним этапом создадим саму форму в файле /plugins/site21/models/settings/fields.yaml Как это можно сделать можем увидеть на все там же, на сайте октября. Примером покажу:

fields:
    show_block:
        label: Показывать блок на сайте?
        type: checkbox
        default: false
    title:
        label: Заголовок блока
        comment: Выводится на сайте
        span: left
        default: Блог Валерия Малышева
    count:
        label: Количество постов
        comment: Сколько постов должно выводиться в этом блоке
        type: number
        span: right
        default: 5

Все готово!

Разрешение создано, страница работает.

Для того чтобы вывести какую-либо настройку на сайте нужно обратиться к созданной моделе:

use Site21\BaseCode\Models\Settings;
==
$value = Settings::get('title');

Опубликовано 19 марта 2021 г. в категориях: October CMS Winter CMS

Если Вам необходимо внедрить данную разработку на свой проект, свяжитесь со мной, обсудим цену и срок.

Связаться со мной Fill 1