PageBuilder: Шаблоны
- Дополнения
- PageBuilder
- Шаблоны
PageBuilder: Шаблоны
Основной шаблон блока должен быть определен для ключа owner
. Помимо него, массив должен содержать шаблоны для каждой группы полей, и может содержать шаблоны для полей, у которых определено свойство elements
(это поля типа dropdown
, checkbox
, radio
). В таких шаблонах доступны выбранные значения свойства elements
.
Например, если в массиве полей используется группа images
, то в шаблонах должен быть определен элемент с ключом images
, который будет содержать либо строку шаблона:
'images' => ''
либо ассоциативный массив шаблонов:
'images' => [ 'item' => '', 'thumb' => '', ],
Во втором случае вывод этих элементов в родительском шаблоне можно использовать как [+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`]]