-
Notifications
You must be signed in to change notification settings - Fork 14
ComplexBlocks
Андрей Рябин edited this page Oct 14, 2024
·
4 revisions
Позволяет отобразить одни блоки внутри других
Для этого внутри любого блока нужно описать секцию areas в которой задаются включаемые области с другими, уже существующими блоками
script.js
sprint_editor.registerBlock('my_image_text', function ($, $el, data) {
var areas = [
{
dataKey : 'image',
blockName: 'image',
container : '.sp-area1'
},
{
dataKey : 'text',
blockName: 'text',
container : '.sp-area2'
}
];
this.getData = function () {
return data;
};
this.collectData = function () {
return data;
};
this.getAreas = function(){
return areas;
};
});В шаблоне блока нужно задать места куда подгрузятся блоки
template.html
Картинка
<div class="sp-area1"></div>
Текст
<div class="sp-area2"></div>Допустим у вас составной блок с двумя контейнерами
Вы можете описать настройки блоков по ключу в котором они сохраняются внутри составного
sprint_editor.registerBlock('complex_2_container', function ($, $el, data) {
var areas = [
{
"blockName": "container",
"dataKey": "container_abc",
"container": ".sp-area-1"
},
{
"blockName": "container",
"dataKey": "container_xyz",
"container": ".sp-area-2"
}
];
//...
});Тогда их настройки можно описать так
В файле config.json составного блока
{
"title": "Два контейнера",
"sort": 500,
"complex_settings": {
"container_abc": {
"blocks": {
"type": "hidden",
"value": {
"video": "Видео",
"image": "Картинка",
}
}
},
"container_xyz": {
"blocks": {
"type": "hidden",
"value": {
"htag": "Заголовок",
"text": "Текст",
}
}
}
}
}
В глобальном файле пользовательских настроек
$settings = [
'complex_settings' => [
//название вашего составного блока
'complex_2_container' => [
//dataKey для первого контейнера
'container_abc' => [
'blocks' => [
'type' => 'hidden',
'value' => [
'video' => 'Видео',
'image' => 'Картинка',
],
],
],
//dataKey для второго контейнера
'container_xyz' => [
'blocks' => [
'type' => 'hidden',
'value' => [
'htag' => 'Заголовок',
'text' => 'Текст',
],
],
],
],