Приклади створення контейнерів

    Допустимо, варто завдання вивести на сторінці слайдер у шапці зі слайдами з різним наповненням, а також набір блоків заповнення тіла сторінки.

    У слайдері у нас буде можливість вибрати блоки 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`]]