2016-05-28 5 views
1

Мне нужно обернуть определенное количество блоков на странице, чтобы применить к ним систему сетки.Как обернуть несколько блоков

Я знаю о setBlockWrapperStart() и setBlockWrapperEnd(), но они применяются после каждого генерируемого блока.

Предположим, у меня есть 12 блоков данного типа, и я хочу обернуть первый в начале <div class="row">, а после 4-го я хочу добавить </div>. И со следующим (пятым блоком) я хочу начать с <div class="row"> еще раз ...

Есть ли способ реализовать это с помощью бетона 5? Я использую стандартный вывод прямо сейчас, и не мог понять, как добавить петлю или что-то ему реализовать свой подход:

$b = new Area('Test Block'); 
$b->display($c); 

Я использую бетон 5.6.3.4. Спасибо!

ответ

0

я в конечном итоге делает переопределение.

Для этого я скопировал area.php из concrete/models/ в models/area.php и вставил function display(&$c, $alternateBlockArray) {...} от concrete/core/models/area.php и отрегулировать его к моим потребностям. С этим я сохраняю для будущих обновлений CMS и могу настроить функцию, не случайно «разрушая» основные функции. :)

Если у вас есть какие-либо вопросы по этому вопросу, не стесняйтесь спрашивать меня!

+0

Это хорошая идея, но как вы справляетесь с разными ситуациями? Скажите, когда вы не хотите обертки? Вы установили переменную или что-то еще? –

+0

Да, я проверяю, является ли дескриптор blocktype тем, который мне нужен. Легко фильтровать в соответствии с вашими потребностями, вся необходимая информация находится в объектах $ c и $ b. – Sebsemillia

0

Я думаю, что вы, возможно, придется использовать быстрый и грязный хак и добавить HTML-блоки с разметкой в ​​них между ваши другие блоки

+0

Спасибо за ваш ответ, но я предпочитаю более чистый подход и, к счастью, нашел его! :) см. мой ответ .. – Sebsemillia