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, то в интерфейс будет выведено следующее:

<i class="fa fa-cogs"></i>
image

Изображение, которое будет выводиться в секции для добавления нового блока, если в параметрах плагина значение &addType установлено в images.

Изображение будет обработано сниппетом phpthumb с параметром w=80

prepareИмя сниппета либо функция, которая будет вызвана перед выводом данных. Например:
'prepare' => function(&$options, &$values) {
  ...
},

Параметры для функции и сниппета одинаковые: options - конфигурация контейнера, values - значения полей.

Mem: 3.5 mb, MySQL: 0.0026 s, 2 req., PHP: 0.0356 s, all: 0.0382 s, cache.