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`]]