Допустим, стоит задача вывести на странице слайдер в шапке со слайдами с разным наполнением, а также набор блоков наполнения тела страницы.
В слайдере у нас будет возможность выбрать блоки image
, image-text
, а в теле страницы - text
, image-text
, 2col_text_photo
.
Для начала определимся с контейнерами: для слайдера создадим контейнер slider
, он будет расположен в отдельной вкладке с именем "Слайдер", с миниатюрами изображений для добавления блоков:
<?php
// assets/plugins/pagebuilder/config/container.slider.php
return [
'title' => 'Слайдер',
'addType' => 'images',
'placement' => 'tab',
'templates' => [
'owner' => '
<div class="slider">
[+wrap+]
</div>
',
],
];
Для тела страницы будем использовать расположение вместо tv-параметра. Для этого создадим новый tv-параметр page_body
с типом ввода - pagebuilder
. Затем создадим файл конфигурации этого контейнера:
<?php
// assets/plugins/pagebuilder/config/container.page_body.php
return [
'title' => 'Тело страницы',
'addType' => 'images',
'placement' => 'tv',
'templates' => [
'owner' => '
<div class="body">
[+wrap+]
</div>
',
],
];
Важно, чтобы имя tv-параметра совпадало с именем контейнера, и опция placement
была равна tv
.
Переходим к блокам. Они все идут в поставке вместе с плагином, нам осталось только переименовать их и привязать к контейнерам.
Сначала переименуйте файлы конфигурации блоков, удалив концовку .sample
.
Затем добавьте в каждый файл строку привязки к контейнеру. Для блока image
:
'container' => 'slider',
Для блоков text
и 2col_text_photo
:
'container' => 'page_body',
Для блока image-text
, так как он будет привязан к двум контейнерам, строка будет иметь следующий вид:
'container' => ['slider', 'page_body'],
На этом настройки административной части закончились, данных действий достаточно, чтобы во всех документах появилась форма заполнения двух контейнеров, в тв-параметрах и в отдельной вкладке.
Для вывода контейнеров нужно добавить следующий код в шаблоны:
[[PageBuilder? &container=`slider`]]
[[PageBuilder? &container=`page_body`]]