magento - обновление макета XML для добавления или удаления имен классов элементов
Я пытался выяснить некоторые XML-директивы обновления макета для добавления, удаления или иного изменения атрибутов CSS для элементов. Что-то вроде:
<reference name="breadcrumbs">
<action method="setElementClass"><value>light</value></action>
</reference>
Но без всякой удачи.
Зачем это делать? - потому что, в этом случае и для некоторых страниц, я хочу по-другому обращаться с сухарями. Я полагаю, я мог бы сделать несколько разных шаблонов и обновлять их постранично, но это кажется излишним.
Учитывая молчание Googles на эту тему, я задаюсь вопросом, единственный ли я когда-либо нуждался в таком, казалось бы, разумном поведении.
Есть ли способ элегантно изменить классы для блоков шаблона с помощью обновления XML?
ура -
б [] х
2 ответа
Вы должны понимать цель команды, которую вы выполняете,
<action method="setElementClass">
Это означает, что в блоке хлебных крошек вы вызываете функцию setElementClass. Функции set и get являются стандартным вызовом объекта Varien, это просто способ установить переменную в экземпляре класса.
Так что то, что вы делаете выше, эквивалентно тому, что вы делаете:
$class->setElementClass('myvalue')
Теперь вы можете установить любую переменную, которая вам нравится, но если файл block/phtml на самом деле не использует эту переменную, он ничего не сделает.
Чтобы изменить классы CSS с помощью XML, вам также необходимо отредактировать соответствующий файл.phtml и включить:
class="<?php echo $this->getElementClass(); ?>"
Где бы вы ни планировали его использовать. Нет ничего плохого в том, чтобы жестко кодировать CSS-классы в файлах phtml - вот для чего они. Использование XML для обновления этих значений немного запутано - ЕСЛИ вы не создаете хранилище белых меток и хотите использовать простой XML-своп, чтобы вносить изменения быстро и просто.
Я не думаю, что есть способ изменить классы CSS через XML в Magento. Имена классов жестко закодированы в файлах.phtml. Поэтому я думаю, что единственный (на самом деле 2) способ изменить ваши стили - это либо перезаписать файлы.phtml новыми файлами.phtml с обновленными классами CSS, либо изменить определения стилей таблиц стилей для уже существующих имен классов в styles.css.