1

我正在使用 Magento 1.7(最新版本),我只想从顶部导航链接中删除“结帐”链接。

我努力了

<remove name="checkout_cart_link" />

但它也删除了购物车链接,我不想删除。

4

3 回答 3

10

旧帖子,但对于其他搜索,您不想复制和编辑checkout.xml并且希望避免添加自定义代码。

为此,请local.xml像提问者尝试的那样删除块,然后重新添加购物车链接(新块的名称略有不同)。

        <reference name="top.links">
            <remove name="checkout_cart_link" />
            <block type="checkout/links" name="checkout_cart_link_custom">
                <action method="addCartLink"></action>
            </block>
        </reference>

归功于这篇文章,它给出了删除和重新添加的想法:http: //www.classyllama.com/development/magento-development/editing-magentos-top-links-the-better-way

于 2013-09-01T21:25:32.143 回答
5

直接 checkout.xml on never update 避免更改核心文件

<reference name="top.links">
            <block type="checkout/links" name="checkout_cart_link">
                <action method="addCartLink"></action>
                <action method="addCheckoutLink"></action>
            </block>
</reference>

评论此代码或删除

<!--<action method="addCheckoutLink">< /action>-->

使用 Local.xml

<?xml version="1.0"?>
<layout version="0.1.0">
    <default>
        <reference name="top.links">
          <remove name="checkout_cart_link"/>
            <block type="checkout/links" name="checkout_cart_link_custom">
                <action method="addCartLink"></action>
                <!--<action method="addCheckoutLink"></action>-->
            </block>
        </reference>
    </default>
</layout> 

或者

<?xml version="1.0"?>
 <layout version="0.1.0">
    <default>
    <reference name="top.links">
            <remove name="checkout_cart_link" />
            <block type="checkout/links" name="checkout_cart_link_custom">
                <action method="addCartLink"></action>
            </block>
          </reference>
        </default>
    </layout> 
于 2013-04-11T13:11:28.377 回答
0

顶部链接的完成方式与其他事情略有不同,而不是每个链接都是您可以自行删除的块,有一个名为的父块top.links包含所有链接,在一种情况下,您有一个子块发现命名checkout_cart_link其中包含结帐和购物车的链接。

链接被添加到top.links布局文件中的阻塞方法调用中,这是在许多不同的布局文件中完成的。块上调用的块方法top.linksaddLink(),你可以在类中找到这个方法Mage_Page_Block_Template_Links。子块checkout_cart_links还定义了另外 2 个块方法addCartLink()addCheckoutLink()可以在 class 中找到Mage_Checkout_Block_Links

不幸的是,删除已添加的链接是您默认情况下无法从您自己的布局文件中执行的少数几件事之一,因为没有removeLink()或类似的块方法。这意味着要删除结帐链接,您有几个选择

  • 将您自己的removeCheckoutLink()块方法添加到您创建的块中,并从您自己的布局文件中引用它。这将需要反转addCheckoutLink()块方法所做的事情。请注意,local.xml您在自己的模块中定义的布局文件和布局文件将影响所有核心模块之后的布局,因此您可以确定您的方法将在该addCheckoutLink()方法之后运行

  • 另一个更简单的选项,但保留标准结帐布局文件的选项是将checkout.xml布局文件复制到当前主题布局文件夹中(如果它不存在)并删除块addCheckoutLink()内的操作节点checkout_cart_link

于 2013-04-11T07:04:41.613 回答