我一直在试图找出一些布局更新xml指令来添加,删除或以其他方式修改元素的css属性。类似的东西:
<reference name="breadcrumbs">
<action method="setElementClass"><value>light</value></action>
</reference>
但没有任何运气。
为什么这样? - 因为,在这种情况下,对于某些页面,我想以不同的方式处理面包屑。我想我可以制作一些不同的面包屑模板并逐页更新它们,但这看起来有点矫枉过正。
鉴于谷歌在这个问题上保持沉默让我想知道我是否是唯一一个需要这种看似合理的行为的人。
有没有办法通过update xml优雅地修改模板块的类?
欢呼 -B []×
答案 0 :(得分:3)
您需要了解正在运行的命令的用途,
<action method="setElementClass">
这意味着在breadcrumbs块上,您正在调用函数setElementClass。 set和get函数是Varien Object的标准调用,它只是在类实例中设置变量的一种方法。
所以你上面所做的相当于做:
$class->setElementClass('myvalue')
现在,您可以设置您喜欢的任何变量,但除非block / phtml文件实际使用该变量,否则它不会执行任何操作。
为了通过XML修改CSS类,您还需要编辑相应的.phtml文件并包含:
class="<?php echo $this->getElementClass(); ?>"
无论您打算在何处使用它。在phtml文件中对CSS类进行硬编码没有任何问题 - 这就是它们的用途。使用XML来更新这些值有点长篇大论 - 除非您正在制作白标商店,并希望使用简单的XML交换来快速简单地进行更改。
答案 1 :(得分:0)
我认为有一种方法可以通过Magento中的xml修改css类。类名在.phtml文件中是硬编码的。所以我想改变你的风格的唯一(实际上是2种)方法是用你的新.phtml文件覆盖.phtml文件和更新的css类,或者更改styles.css中现有类名的样式表样式定义