Добавление блока и создание уникального идентификатора класса
Мы добавляем блоки в 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 и добавить в качестве элемента КЛАССА.
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>
Что касается вашего дополнительного вопроса, единственное отличие заключается в том, что вы можете указать шаблон при использовании подхода с виджетами. Таким образом, вы можете иметь какую-то разметку вокруг текста блока. Точно так же, как шаблон, используемый в вашем примере.