Основной шаблон блока должен быть определен для ключа 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`]]