假设我们要在Magento顶部链接上的“我的购物车”链接之前添加购物车图标(请参见下面的顶部链接)。
做这个的最好方式是什么?
- 对toplinks.php做点什么?
- 对links.phtml做些什么?
- 一个xml文件?
- 还有其他选择吗?
我了解这可以使用CSS来完成,但是随着我对定制的需求的增长,我想知道没有CSS怎么办,所以我能够定制更困难的事情。
假设我们要在Magento顶部链接上的“我的购物车”链接之前添加购物车图标(请参见下面的顶部链接)。
做这个的最好方式是什么?
我了解这可以使用CSS来完成,但是随着我对定制的需求的增长,我想知道没有CSS怎么办,所以我能够定制更困难的事情。
Answers:
无论如何,请勿编辑模板文件(links.phtml
)。这用作所有链接列表的通用模板。例如,它也用于页脚中的链接。
有了toplinks.php
CE,您就可以做任何您想做的事情,因为从CE v1.4.0.1开始不推荐使用。
我建议使用将链接添加到顶部容器的xml文件来实现所需的功能。添加新链接时调用
的addLink
方法支持一些参数,这些参数使您可以在链接上li
和a
标签上添加类和其他属性,并在链接之前和之后添加一些文本。
public function addLink($label, $url='', $title='', $prepare=false, $urlParams=array(),
$position=null, $liParams=null, $aParams=null, $beforeText='', $afterText='')
{ ... }
如果要将图标添加到我的帐户菜单,则可以将设置为$beforeText
,<span class="icon"></span>
并在图标类上添加一些样式。
对于购物车和结帐链接来说,它有点棘手,因为它们是通过块对象而不是直接从布局文件添加的。
如果您需要不同的购物车或收银行,则只需重写方法Mage_Checkout_Block_Links::addCartLink()
或即可Mage_Checkout_Block_Links::addCheckoutLink()
。这两个调用相同addLink()
,您可以向其传递不同的参数。
Mage_Checkout_Block_Links::addCartLink()
<span class="icon"></span>
用作beforeText,必须像这样将其括起来<![CDATA[<span class="icon"></span>]]>
。XML解析器也会选择新行,因此您必须将其放在开始标记之后:<beforeText><![CDATA[<span class="icon"></span>]]></beforeText>
如果只需要对顶部链接应用自定义模板,则可以在主题的local.xml中这样做:
<default>
<reference name="top.links">
<action method="setTemplate">
<template>page/template/my_links.phtml</template>
</action>
</reference>
<default>
然后复制page / template / links.phtml并将其重命名为page / template / my_links.phtml并在该新模板文件中执行所需的任何操作。
要通过local.xml向“顶部链接”添加自定义链接:
<reference name="top.links">
<action method="addLink" translate="label title">
<label>My Link</label>
<url>path/to/page</url>
<title>My link tooltip</title>
<prepare>true</prepare>
<urlParams/>
<position>150</position>
<liParams>id="my-custom-id"</liParams>
</action>
</reference>
另请参阅此页面:http : //www.classyllama.com/development/magento-development/editing-magentos-top-links-the-better-way
<?php foreach($_links as $_link): ?>
。您可以在该循环内添加任何HTML。
请找到以下路径更改顶部链接:
/app/design/frontend/base/default/layout/customer.xml
并搜索:登录(以我为例)。
现在,用所需的文本更改标题和标签。
您需要编辑以下2个文件。
app/design/frontend/default/default/layout/checkout.xml
app/design/frontend/default/default/layout/customer.xml
在这些文件中,链接添加在中name="top.links"
。只是将它们注释掉。