Areablock
Общая информация
Редактируемый элемент Areablock — это набор инструментов для создания контента в документах, предлагаемый Pimcore.


Интеграция Areablock в шаблон
Как и другие редактируемые элементы документов, Areablock можно интегрировать в любой шаблон представления документа следующим образом:
{{ pimcore_areablock("myAreablock") }}
Расширенное использование с разрешенными областями:
{{ pimcore_areablock("myAreablock", {
"allowed": ["iframe","googletagcloud","spacer","rssreader"],
"group": {
"First Group": ["iframe", "spacer"],
"Second Group": ["rssreader"]
},
"globalParams": {
"myGlobalParam": "Global param value"
},
"params": {
"iframe": {
"parameter1": "value1",
"parameter2": "value2"
},
"googletagcloud": {
"param1": "value1"
}
}
})
}}
Доступ к параметрам из файла Brick
Используйте значение параметра с именем "param1" для этого Brick:
{{ param1 }}
Сортировка элементов в меню
{{ pimcore_areablock("content", {
"allowed": ["image","video","wysiwyg"],
"sorting": ["wysiwyg","video","image"],
}) }}
Вы можете увидеть эффект ниже:

Конфигурация
| Имя | Тип | Описание |
|---|---|---|
allowed | array | Массив идентификаторов областей, разрешенных для этого тега. Порядок элементов в массиве также используется как сортировка по умолчанию, но, конечно, вы можете комбинировать эту конфигурацию с sorting |
sorting | array | Массив идентификаторов областей в порядке, в котором вы хотите их отобразить в меню |
params | array | Опциональный параметр, который также может содержать дополнительные настройки, специфичные для элемента Brick |
globalParams | array | То же самое, что и params, но передается всем блокам независимо от типа |
group | array | Массив с конфигурацией групп (см. пример выше) |
manual | bool | Принудительное включение ручного режима, который позволяет полную свободу реализации для Areablocks, например, использовать реальные элементы <table>. Пример см. ниже |
reload | bool | Установите значение true, чтобы принудительно обновить в режиме редактирования после изменения порядка элементов (по умолчанию: false) |
limit | int | Ограничить количество элементов |
limits | array | Массив идентификаторов областей с количеством для ограничения определенного количества элементов, например: {"iframe": 1, "teasers": 2} |
areablock_toolbar | array | Массив с опциями, которые позволяют настраивать панель инструментов. Возможные опции: width, buttonWidth и buttonMaxCharacters |
controlsAlign | string | Положение панели управления кнопками. Опции: top, right и left |
controlsTrigger | string | Опции: hover(по умолчанию) и fixed |
class | string | CSS-класс, который добавляется к окружающему контейнеру этого элемента в режиме редактирования |
Пример
{{ pimcore_areablock("myArea") }}
Методы
| Имя | Возвращает | Описание |
|---|---|---|
getCount() | int | возвращает общее количество блоков |
getCurrent() | int | возвращает текущее количество блоков (полезно с Area Bricks) |
getCurrentIndex() | int | получает текущий индекс (индекс отличается от позиции, так как блок можно перемещать) |
getElement() | array | получает элемент из areabrick |
renderIndex() | - | рендерит только один конкретный блок внутри Areablock |
Как создать Brick для Areablock
О создании Brick можно прочитать в разделе Bricks.
Ограничение определенных Brick для Areablock
Вы можете ограничить определенные Brick для Areablock, используя конфигурацию limits.
Пример
{{ pimcore_areablock("myAreablock", {
"allowed": ["iframe","teasers","wysiwyg"],
"limits": {
"iframe": 1,
"teasers": 2
},
"limit": 5
})
}}
Использование ручного режима
Ручной режим предоставляет вам возможность использовать Areablocks с пользовательским HTML, что, например, полезно при использовании таблиц:
{% set areaBlock = pimcore_areablock("myArea", {"manual":true}) %}
{% do areaBlock.start() %}
<table>
{% for i in areaBlock.iterator %}
{% set info = areaBlock.buildInfoObject() %}
{% do areaBlock.blockConstruct() %}
<tr>
<td>
{% set templateParams = areaBlock.blockStart(info) %}
{% do areaBlock.content(info, templateParams) %}
{% do areaBlock.blockEnd() %}
</td>
</tr>
{% do areaBlock.blockDestruct() %}
{% endfor %}
</table>
{% do areaBlock.end() %}
Доступ к данным внутри элемента Areablock
См. Block для примера, как получать элементы из редактируемых элементов блоков и Areablock.
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.