我正在尝试做一些看起来应该很简单的事情:在每个页面上添加一个“主页”链接到我的top.links 除了主页(我使用的是cms页面我的主页)。如果可能的话,我想在我的local.xml中完全执行此操作。
我的想法是在默认情况下添加链接
<default>
<reference name="top.links">
<action method="addLink" translate="label title">
<label>Home</label>
<url>/</url>
<title>Home</title>
<prepare>true</prepare>
<urlParams helper="core/url/getHomeUrl"/>
<position>1</position>
<liParams/>
<aParams>class="top-link-home"</aParams>
<beforeText></beforeText>
<afterText> / </afterText>
</action>
</reference>
</default>
然后在cms_index_index
上删除它<cms_index_index>
<reference name="top.links">
<action method="removeLinkByUrl"><url helper="core/url/getHomeUrl"/></action>
</reference>
</cms_index_index>
但是这没有用,主页链接显示在任何地方,包括在主页上。
我做错了什么?有没有其他方法可以做到这一点,不涉及黑客核心?
修改: 我在addLink
中拼出了整个网址,从而得到了理想的行为<default>
<reference name="top.links">
<action method="addLink" translate="label title">
<label>Home</label>
<url>http://www.mysite.com/</url>
<title>Home</title>
<prepare/>
<urlParams/>
<position>1</position>
<liParams/>
<aParams>class="top-link-home"</aParams>
<beforeText></beforeText>
<afterText> / </afterText>
</action>
</reference>
</default>
和我的removeLinkByUrl
<cms_index_index>
<reference name="top.links">
<action method="removeLinkByUrl"><url>http://www.mysite.com/</url></action>
</reference>
</cms_index_index>
解决了手头的问题,但没有回答我原来的问题。我想我需要更好地了解Magento如何使用帮助器呈现网址。
答案 0 :(得分:1)
曼。我需要调查一下(我喜欢你正在采取的方法),但如果你硬编码你的基本网址并可能附加非安全的SID参数,这应该可行。
<cms_index_index>
<reference name="top.links">
<action method="removeLinkByUrl"><url><![CDATA[http://BASE_URL/?___SID=U]]></url></action>
</reference>
</cms_index_index>
我不喜欢这个,但这是一个开始。
答案 1 :(得分:0)
检查您是否在主页,然后按照自己的意愿行事:
if($this->getIsHomePage()) {
echo 'This is Homepage';
} else {
echo 'This is NOT Homepage';
或检查标识符名称是否为主页:
$routerName = Mage::app()->getRequest()->getRouteName();
$ident = Mage::getSingleton('cms/page')->getIdentifier();
if($routerName == 'cms' && $ident == 'home') {
echo 'This is Homepage';
} else {
echo 'This is NOT Homepage';
}
答案 2 :(得分:0)
将它放在page.xml中:
<block type="page/template_links" name="top.links" as="topLinks">
<action method="addLink" translate="label title" name="backhome">
<label>LABEL</label>
<url>/</url>
<title>Home</title>
<prepare/><urlParams/><position>1</position></action>
</block>
并在页面自定义布局xml
中...
<reference name="top.links">
<action method="removeLinkByUrl"><url>/</url></action>
</reference>
...