Шаблоны

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