Skip to content
Андрей Рябин edited this page Feb 19, 2025 · 12 revisions

Конструктор блоков

Расположение: Настройки - Редактор для контент-менеджеров - Конструктор блоков

Конструктор создает составные блоки без написания програмного кода

Принцип создания блоков

Принцип работы составных блоков

Пример 1

Создаём составной блок "Заголовок + текст"

Selection_001

Конструктор сгенерирует блок для админки с включаемыми областями

/bitrix/admin/sprint.editor/complex/complex_htext_item/ (или в папке /local/admin/ если она есть)

Содержимое script.js

sprint_editor.registerBlock('complex_htext_item', function ($, $el, data) {
    var areas = [
    {
        "blockName": "htag",
        "dataKey": "htag",
        "container": ".sp-area-1"
    },
    {
        "blockName": "text",
        "dataKey": "text",
        "container": ".sp-area-2"
    }
];
});

Конструктор сгенерирует и php-шаблон блока для редактирования в публичной части, который можно скопировать себе в bitrix/templates/.default/components/sprint.editor/blocks/.default и править на своё усмотрение

Файл /bitrix/components/sprint.editor/blocks/templates/.default/complex_htext_item.php

<?php 
/**
 * @var $block array
 * @var $this SprintEditorBlocksComponent
 */
?><div class="sp-complex sp-complex_htext_item">
<?php $this->includeBlock($block['htag']);?>
<?php $this->includeBlock($block['text']);?>
</div>

Пример 2

Создаём составной блок "Тексты" состоящий из одного блока "Заголовок" и множественных "Заголовок + текст"

Допустим нам нужен такой вариант

Заголовок

Заголовок 1
Текст 1
...
Заголовок N
Текст N

Динамическую часть с множественным добавлением предоставит блок контейнер (container)

Сделаем составной блок из заголовка и контейнера

Selection_002

И укажем что контейнер может добавлять только наш блок "Заголовок + текст"

Эту настройку в конфиге придётся задать вручную

/bitrix/admin/sprint.editor/complex/complex_htexts/config.json

{
    "title": "Тексты",
    "sort": 500,
    "complex_settings": {
        "container": {
            "blocks": {
                "type": "hidden",
                "value": {
                    "complex_htext_item": "Новая запись"
                }
            }
        }
    }
}

Расшифровка ключей

  • complex_settings - секция описывающая настройки вложенных блоков в составной
  • container - это ключ с названием блока "контейнер"
  • blocks - это стандартная настройка блока "контейнер", которая определяет список блоков которые можно в него добавлять

Результат

Selection_106

Архив с примерами 1 и 2

complex_htexts.zip

Clone this wiki locally