如何在顶级链接中添加课程?

Mag*_*cho 5 magento

我尝试使用以下方法将类添加到顶部链接<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可以是字符串或表示键/值对的一系列子元素.