magento - обновление макета XML для добавления или удаления имен классов элементов - PullRequest
0 голосов
/ 13 марта 2012

Я пытался выяснить некоторые XML-директивы обновления макета для добавления, удаления или иного изменения атрибутов CSS для элементов.Что-то вроде:

<reference name="breadcrumbs">
    <action method="setElementClass"><value>light</value></action>
</reference>

Но без всякой удачи.

Почему это?- потому что, в этом случае и для некоторых страниц, я хочу по-другому обращаться с сухарями.Я полагаю, я мог бы сделать несколько разных шаблонов и обновлять их постранично, но это кажется излишним.

Учитывая, что молчание Гугла на эту тему заставляет меня задуматься, единственный ли я когда-либо нуждался в таком, казалось бы, разумном поведении.

Есть ли способ элегантно изменить классы для блоков шаблона с помощью обновления xml?

cheers -

b [] x

Ответы [ 2 ]

3 голосов
/ 13 марта 2012

Вам необходимо понять назначение команды, которую вы выполняете,

<action method="setElementClass">

Это означает, что в блоке хлебных крошек вы вызываете функцию setElementClass.Функции set и get являются стандартным вызовом объекта Varien, это просто способ установить переменную в экземпляре класса.

То, что вы делаете выше, эквивалентно выполнению:

$class->setElementClass('myvalue')

Теперь вы можете установить любую переменную, какую захотите, но если файл block / phtml фактически не использует эту переменную, он ничего не будет делать.

Чтобы изменить классы CSS с помощьюXML, вам также необходимо отредактировать соответствующий файл .phtml и включить:

class="<?php echo $this->getElementClass(); ?>"

Где бы вы ни планировали его использовать.Нет ничего плохого в жестком кодировании CSS-классов в файлах phtml - для этого они и нужны.Использование XML для обновления этих значений немного запутано - ЕСЛИ вы не создаете хранилище белых меток и хотите использовать простой XML-своп, чтобы вносить изменения быстро и просто.

0 голосов
/ 13 марта 2012

Я не думаю, что есть способ изменить классы CSS через XML в Magento.Имена классов жестко закодированы в файлах .phtml.Поэтому я думаю, что единственный (на самом деле 2) способ изменить ваши стили - это либо перезаписать файлы .phtml новыми файлами .phtml с обновленными классами CSS, либо изменить определения стилей таблиц стилей для уже существующих имен классов в styles.css

...