Добавление блока и создание уникального идентификатора класса


Мы добавляем блоки в cms/блоки и страницы, используя это соглашение

{{block type="cms/block" block_id="my_block1"}}
{{widget type="cms/widget_block" template="cms/widget/static_block/default.phtml" block_id="my_block2"}}

Недавно мне пришлось специально установить стиль CSS на my_block1 (или my_block2, если на то пошло), когда я увидел, что все эти блоки имеют один и тот же КЛАСС CSS widget widget-static-block. Я надеялся что-нибудь увидеть widget widget-static-block my_block1

Мой вопрос: Теперь как мы можем добавить идентификатор блока в класс? И не было бы хорошей идеей добавить это в ядро Magento?

И в качестве дополнительного вопроса: что именно в чем разница между двумя вызовами cms/block? (1 виджет и 1 блок в cms)

Таким образом, результатом будет что-то вроде widget widget-static-block my_block1 или cms_block my_block1

Пс. Я понимаю, что могут быть некоторые предостережения - потому что вы, возможно, не захотите всегда указывать точный идентификатор блока в своем HTML. Но я могу себе представить, что, например, оператор name="" или as="" может в этом случае функционировать как имя, и его можно передать через вызов cms/block и добавить в качестве элемента КЛАССА.

Author: snh_nl, 2015-07-22

1 answers

Вы можете скопировать шаблон cms/widget/static_block/default.phtml в свою тему и заменить исходное содержимое

<div class="widget widget-static-block"><?php echo $this->getText(); ?></div>

С

<div class="widget widget-static-block <?php echo $this->getBlockId();?>"><?php echo $this->getText(); ?></div>

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

 2
Author: Marius, 2015-07-22 19:59:49