Other languages: English
Плагин позволяет разработчику определить набор блоков с определенной разметкой и списком полей, чтобы контент-менеджер использовал те блоки, которые считает нужным, со своим наполнением.
Конфигурация для блоков берется из папки config. Для создания нового блока нужно создать в этой папке файл .php, который должен вернуть ассоциативный массив. Структура массива следующая:
Ключ | Значение |
---|---|
title | Название блока, видимое менеджеру при заполнении |
fields |
Ассоциативный массив используемых полей, в котором ключами являются идентификаторы полей, а значениями - массивы опций этих полей.
Возможные типы полей и опции приведены ниже. |
show_in_templates | Массив идентификаторов шаблонов, для которых доступны редактирование и вывод блоков |
hide_in_docs | Массив идентификаторов документов, для которых редактирование и вывод недоступны |
show_in_docs | Массив идентификаторов документов, для которых доступны редактирование и вывод блоков.
Если этот параметр указан, то "hide_in_docs" не принимается во внимание. Если не указан ни один из параметров, ограничивающих доступ, блоки будут доступны во всех документах. |
templates |
Ассоциативный массив, содержащий шаблон для ключа "owner", а также шаблоны для каждой группы полей.
Описание методов создания шаблонов смотрите ниже |
icon | Класс иконки, который будет выводиться в секции для добавления нового блока, если в параметрах плагина значение &addType установлено в "icons"
Например, если задать класс <i class="fa fa-cogs"></i> |
image | Изображение, которое будет выводиться в секции для добавления нового блока, если в параметрах плагина значение &addType установлено в "images".
Изображение будет обработано сниппетом |
Основной шаблон блока должен быть определен для ключа "owner". Помимо него, массив должен содержать шаблоны для каждой группы полей, и может содержать шаблоны для полей, у которых определено свойство "elements" (это поля типа "dropdown", "checkbox", "radio"). В таких шаблонах доступны выбранные значения свойства "elements".
Например, если в массиве полей используется группа "images", то в шаблонах должен быть определен элемент с ключом "images", который будет содержать либо строку шаблона:
'images' => '<img src="[+image+]" alt="[+title+]" class="slide">'
либо ассоциативный массив шаблонов:
'images' => [
'item' => '<img src="[+image+]" alt="[+title+]" class="slide">',
'thumb' => '<div class="thumb" style="background-image: url([+image+])"></div>',
],
Во втором случае вывод этих элементов в родительском шаблоне можно использовать как [+images.item+]
и [+images.thumb+]
.
В качестве плейсхолдеров могут использоваться имена полей (напр. [+title+]
), имена групповых полей (напр. [+images+]
, [+images.thumb+]
).
В шаблонах для полей выбора "dropdown", "checkbox", "radio" доступны плейсхолдеры [+value+]
и [+title+]
.
Также в шаблоне 'owner' доступны плейсхолдеры [+index+]
и [+iteration+]
, а в груповых полях и полях выбора - [+{имя_поля}_index+]
и [+{имя_поля}_iteration+]
.
Разметку можно указать в самом значении массива, как показано в примерах выше.
Возможно указание имени чанка, в котором находится нужный шаблон. Для этого нужно использовать привязку @CHUNK
, например:
'checkbox' => '@CHUNK all_fields_checkboxes',
Также возможна подгрузка шаблона из файла, например:
'owner' => '@FILE pagebuilder/all_fields.tpl',
В этом примере файл шаблона будем загружен из MODX_BASE_PATH . "assets/templates/pagebuilder/all_fields.tpl"
. Вообще файл ищется в следующих директориях:
assets/tvs/
assets/chunks/
assets/templates/
Либо можно указать полный путь от корня сайта. Первый слеш не указывается.
Шаблоны можно группировать, чтобы при выводе использовать разные группы шаблонов с параметром &templates
. Например, если указать следующую конфигурацию для блока:
'templates' => [
'owner' => '@CHUNK full_owner',
'images' => '@CHUNK full_images'
'anchors' => [
'owner' => '@CHUNK link_owner',
],
],
то вызов сниппета с параметром &templates
, равным anchors
, будет использовать для вывода шаблоны, которые определены в группе anchors
:
[[PageBuilder? &templates=`anchors`]]
Ключ | Значение |
---|---|
caption | Название поля, которое видит менеджер. Необязательно |
type | Тип поля, см. ниже |
theme | Тема редактора для поля "richtext", доступные значения можно посмотреть в конфигурации Evolution CMS, на вкладке "Интерфейс" |
options | Дополнительные опции для поля "richtext", значения можно посмотреть здесь |
fields | Вложенные поля, для типа "group" |
height | Высота поля, с указанием единиц измерения, например "150px". Доступно для типа поля "textarea".
Для полей "richtext" указывается в составе опций редактора, в ключе "options" |
elements | Возможные значения для поля выбора. Доступны для полей "dropdown", "radio", "checkbox". Могут быть представлены в виде массива "ключ" => "значение", или в виде строки в доступном формате Evolution CMS (@SELECT и пр. работают). |
layout | Вид расположения вариантов для полей "radio" и "checkbox". Возможные значения - "vertical" (по умолчанию) и "horizontal" |
default | Значение по умолчанию. Для типа поля "checkbox" может быть массивом значений.
Возможно указание в формате "1||2||3", и использование привязок @SELECT, @EVAL и пр. |
Значение | Описание |
---|---|
text | Однострочное текстовое поле |
image | Текстовое поле с миниатюрой и кнопкой для выбора изображения |
richtext | Текстовый редактор TinyMCE 4 |
textarea | Многострочное текстовое поле |
date | Текстовое поле с выпадающим календарем для выбора даты |
dropdown | Выпадающий список |
checkbox | Флажки, позволяет выбрать несколько вариантов из представленных |
radio | Переключатели, позволяют выбрать только один вариант |
group | Группа полей, обязательно должны быть определены вложенные поля в ключе "fields" |
Примеры конфигурации можно найти здесь. (Чтобы примеры блоков стали доступны для выбора, нужно переименовать файлы *.php.sample в *.php)
Для вывода заполненых блоков используется сниппет PageBuilder с параметрами:
Имя параметра | Значение по умолчанию | Возможные значения |
---|---|---|
docid | Текущий документ | Идентификатор любого существующего документа, целое число |
blocks | * | Список блоков через запятую, без пробелов. Берется имя файла конфигурации без расширения (Например, 'all_fields,groups'). Если указать '*', фильтрация по имени произведена не будет |
templates | Идентификатор группы шаблонов, которые будут использоваться для вывода. Должен быть определен в конфигурации каждого выводимого блока | |
offset | 0 | Число пропускаемых блоков с начала вывода |
limit | 0 | Число блоков для вывода, либо 0 - для вывода всех |
Плагин отвечает за вывод формы редактирования блоков и имеет следующие параметры:
Имя параметра | Значение по умолчанию | Возможные значения |
---|---|---|
tabName | Page Builder | Название вкладки на странице редактирования ресурса, в которой будет выводиться форма |
addType | dropdown | Вид секции для добавления новых блоков, может иметь значения "dropdown", "icons", "images".
Для значения "icons" в конфигурации каждого блока должен быть определен ключ "icon", содержащий класс иконки. Для значения "images" должен быть определен ключ "image", с адресом изображения (макс. 80х60) |
placement | tab | Размещение формы: tab - в отдельной вкладке, content - под содержимым ресурса |