我尝试使用以下方法将类添加到顶部链接<aParams>class="class-name"</aParams>
:
<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>
Run Code Online (Sandbox Code Playgroud)
上面的技巧对我来说至少对于1.7.0.0版本没有用.
任何的想法?
编辑:
我想我用它修复了它<li/><a>class="top-links-register"</a>:
<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/><position>10</position><li/><a>class="top-link-myaccount"</a></action>
</reference>
Run Code Online (Sandbox Code Playgroud)
请注意,您必须前置 <li/>
ben*_*001 14
要通过示例完成Lee的答案,要在顶部链接(<li>元素本身)中添加一个类,您可以通过下面的新节点(或字符串)来完成<liParams>:
<action method="addLink">
<label/>
<url/>
<title/>
<prepare/>
<urlParams/>
<position/>
<liParams>
<class>myclassname</class>
</liParams>
<aParams/>
<beforeText/>
<afterText/>
</action>
Run Code Online (Sandbox Code Playgroud)
但正如李指出的那样,你需要保留这些子元素的顺序.
如果你想把类到<a> 内的列表中,那么语法是相似的,你只是目标节点:
<action method="addLink">
<label/>
<url/>
<title/>
<prepare/>
<urlParams/>
<position/>
<liParams/>
<aParams>
<class>myclassname</class>
</aParams>
<beforeText/>
<afterText/>
</action>
Run Code Online (Sandbox Code Playgroud)
如果您需要更灵活地链接文本和格式,另一种方法是在块中生成链接,然后添加该块而不是使用"addLink"节点.
这就是添加Cart和Checkout链接的方式,而不是在XML中添加链接到Top Links,他们直接从块中调用addLink方法,这样他们就可以计算出为每个客户显示的相应文本.
有关此示例,请参阅Mage_Checkout_Block_Links该类base\default\layout\checkout.xml.
Lee*_*ite 12
正如您所发现的,addLink的方法签名是:
public function addLink($label, $url='', $title='', $prepare=false, $urlParams=array(), $position=null, $liParams=null, $aParams=null, $beforeText='', $afterText='')
Run Code Online (Sandbox Code Playgroud)
因此,使用所有参数在布局中进行适当的调用将是:
<action method="addLink">
<label/>
<url/>
<title/>
<prepare/>
<urlParams/>
<position/>
<liParams/>
<aParams/>
<beforeText/>
<afterText/>
</action>
Run Code Online (Sandbox Code Playgroud)
不幸的是,Magento没有使用反射来将动作元素子元素映射到方法的命名参数,而是取决于位置.
另外一个注释,liParams和aParams可以是字符串或表示键/值对的一系列子元素.
| 归档时间: |
|
| 查看次数: |
12472 次 |
| 最近记录: |