PageBuilder

    Автор: mnoskov

    Плагин позволяет разработчику определить набор блоков с определенной разметкой и списком полей, чтобы контент-менеджер использовал те блоки, которые считает нужным, со своим наполнением.

    После установки нужно создать файлы конфигурации, либо переименовать файлы *.php.sample в *.php. В панели администрирования плагин добавляет новую вкладку на странице редактирования ресурса. Для вывода результатов используется сниппет [[PageBuilder]].

    Конфигурация для блоков берется из папки config. Для создания нового блока нужно создать в этой папке файл <имя конфига>.php, который должен вернуть ассоциативный массив. Для создания контейнера нужно создать файл container.<имя контейнера>.php. Структура массива следующая:

    КлючЗначение
    titleНазвание блока, видимое менеджеру при заполнении
    containerИмя контейнера (если несколько - то массив имен), в котором будет выводится блок.
    fields Ассоциативный массив используемых полей, в котором ключами являются идентификаторы полей, а значениями - массивы опций этих полей. Возможные типы полей и опции приведены ниже.
    show_in_templatesМассив идентификаторов шаблонов, для которых доступны редактирование и вывод блоков
    hide_in_docsМассив идентификаторов документов, для которых редактирование и вывод недоступны
    show_in_docsМассив идентификаторов документов, для которых доступны редактирование и вывод блоков. Если этот параметр указан, то `hide_in_docs` не принимается во внимание. Если не указан ни один из параметров, ограничивающих доступ, блоки будут доступны во всех документах.
    orderПорядок сортировки в секции добавления блока, либо порядок сортировки контейнеров (вкладок). Этот параметр НЕ влияет на сортировку самих блоков!
    templates Ассоциативный массив, содержащий шаблон для ключа `owner`, а также шаблоны для каждой группы полей. Описание методов создания шаблонов смотрите здесь.
    icon Класс иконки, который будет выводиться в секции для добавления нового блока, если в параметрах плагина значение `&addType` установлено в `icons` Например, если задать класс `fa fa-cogs`, то в интерфейс будет выведено следующее: ```html ```
    image Изображение, которое будет выводиться в секции для добавления нового блока, если в параметрах плагина значение `&addType` установлено в `images`. Изображение будет обработано сниппетом `phpthumb` с параметром `w=80`
    prepareИмя сниппета либо функция, которая будет вызвана перед выводом данных. Например: ```php 'prepare' => function(&$options, &$values) { ... }, ``` Параметры для функции и сниппета одинаковые: `options` - конфигурация контейнера, `values` - значения полей.