Допустимо, варто завдання вивести на сторінці слайдер у шапці зі слайдами з різним наповненням, а також набір блоків заповнення тіла сторінки.
У слайдері у нас буде можливість вибрати блоки 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`]]