0

我一直在尝试找出一些布局更新 xml 指令来添加、删除或以其他方式修改元素的 css 属性。就像是:

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

但一点运气都没有。

为什么要这样做?- 因为,在这种情况下,对于某些页面,我想以不同的方式处理面包屑。我想我可以制作一些不同的面包屑模板并逐页更新它们,但这似乎有点过头了。

鉴于谷歌在这个问题上的沉默让我想知道我是否是唯一一个需要这种看似合理的行为的人。

有没有办法通过更新 xml 优雅地修改模板块的类?

欢呼——

b[]x

4

2 回答 2

3

您需要了解您正在运行的命令的目的,

<action method="setElementClass">

这意味着在面包屑块上,您正在调用函数 setElementClass。set 和 get 函数是 Varien 对象的标准调用,它只是在类实例中设置变量的一种方式。

所以你在上面做的相当于做:

$class->setElementClass('myvalue')

现在,您可以设置您喜欢的任何变量,但除非 block/phtml 文件实际使用该变量,否则它不会做任何事情。

为了通过 XML 修改 CSS 类,您还需要编辑相应的 .phtml 文件并包括:

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

无论您打算在哪里使用它。在 phtml 文件中硬编码 CSS 类没有任何问题——这就是它们的用途。使用 XML 更新这些值有点冗长 - 除非您正在创建一个白标签存储并希望使用简单的 XML 交换来快速简单地进行更改。

于 2012-03-12T21:22:54.677 回答
0

我认为没有办法通过 Magento 中的 xml 修改 css 类。类名在 .phtml 文件中硬编码。所以我想改变样式的唯一(实际上是2)方法是用更新的css类用新的.phtml文件覆盖.phtml文件,或者更改styles.css中已经存在的类名的样式表样式定义

于 2012-03-12T21:18:13.147 回答