Magento 如何在顶部链接中添加类?
我试图通过使用Magento 如何在顶部链接中添加类?,magento,Magento,我试图通过使用class=“class name”将类添加到顶部链接 例如: <reference name="top.links"> <action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Ac
class=“class name”
将类添加到顶部链接 例如:
<reference name="top.links">
<action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><aParams>class="top-link-myaccount"</aParams><position>10</position></action>
</reference>
我的账户我的账户class=“顶级链接我的账户”10
至少在1.7.0.0版本中,上述技巧对我不起作用。有什么想法吗 编辑:
我想我用
class=“top links register”
修复了它:
我的账户我的账户10class=“顶级链接我的账户”
请注意,您必须在前面添加
正如您所发现的,addLink的方法签名是:
public function addLink($label, $url='', $title='', $prepare=false, $urlParams=array(), $position=null, $liParams=null, $aParams=null, $beforeText='', $afterText='')
因此,在布局中使用所有参数的正确调用应该是:
<action method="addLink">
<label/>
<url/>
<title/>
<prepare/>
<urlParams/>
<position/>
<liParams/>
<aParams/>
<beforeText/>
<afterText/>
</action>
不幸的是,Magento没有使用反射将action元素子元素映射到方法的命名参数,而是依赖于位置
另一个注意事项是,liParams和aParams可以是一个字符串,也可以是一系列表示键/值对的子元素。要用一个示例来完成Lee的回答,要向顶部链接(元素本身)添加一个类,可以通过
下面的一个新节点(或一个字符串)执行,如下所示:
<action method="addLink">
<label/>
<url/>
<title/>
<prepare/>
<urlParams/>
<position/>
<liParams>
<class>myclassname</class>
</liParams>
<aParams/>
<beforeText/>
<afterText/>
</action>
我的类名
但是正如Lee指出的,您需要保持这些子元素的顺序
如果要将类放入列表中的
,则语法类似,只需将节点作为目标:
<action method="addLink">
<label/>
<url/>
<title/>
<prepare/>
<urlParams/>
<position/>
<liParams/>
<aParams>
<class>myclassname</class>
</aParams>
<beforeText/>
<afterText/>
</action>
我的类名
如果在链接文本和格式方面需要更多的灵活性,另一种方法是在块中生成链接,然后添加该块,而不是使用“addLink”节点
这就是购物车和结帐链接的添加方式,而不是将XML中的链接添加到它们直接从块中调用addLink方法的顶部链接,这样它们可以计算出为每个客户显示的适当文本
有关此示例,请参见Mage\u Checkout\u Block\u链接与base\default\layout\Checkout.xml结合使用
<action method="addLink">
<label/>
<url/>
<title/>
<prepare/>
<urlParams/>
<position/>
<liParams/>
<aParams>
<class>myclassname</class>
</aParams>
<beforeText/>
<afterText/>
</action>