-
Notifications
You must be signed in to change notification settings - Fork 14
ComplexBuilder
Расположение: Настройки - Редактор для контент-менеджеров - Конструктор блоков
Конструктор создает составные блоки без написания програмного кода
Принцип работы составных блоков
Создаём составной блок "Заголовок + текст"

Конструктор сгенерирует блок для админки с включаемыми областями
/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>Создаём составной блок "Тексты" состоящий из одного блока "Заголовок" и множественных "Заголовок + текст"
Допустим нам нужен такой вариант
Заголовок
Заголовок 1
Текст 1
...
Заголовок N
Текст N
Динамическую часть с множественным добавлением предоставит блок контейнер (container)
Сделаем составной блок из заголовка и контейнера

И укажем что контейнер может добавлять только наш блок "Заголовок + текст"
Эту настройку в конфиге придётся задать вручную
/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 - это стандартная настройка блока "контейнер", которая определяет список блоков которые можно в него добавлять
Результат
