Php 如何从Magento的顶部链接中删除“签出”url?
我使用的是Magento 1.7最新版本,我只想从顶部导航链接中删除签出链接 我试过了Php 如何从Magento的顶部链接中删除“签出”url?,php,magento,Php,Magento,我使用的是Magento 1.7最新版本,我只想从顶部导航链接中删除签出链接 我试过了 <remove name="checkout_cart_link" /> 但是它也删除了购物车链接,我不想删除它。顶部链接的方式与其他内容稍有不同,不是每个链接本身就是一个可以删除的块,而是一个名为top.links的父块,它包含所有链接,在一个例子中,有一个名为checkout\u cart\u link的子块,其中包含checkout和cart的链接 通过调用布局文件中的block方法将链接
<remove name="checkout_cart_link" />
但是它也删除了购物车链接,我不想删除它。顶部链接的方式与其他内容稍有不同,不是每个链接本身就是一个可以删除的块,而是一个名为top.links的父块,它包含所有链接,在一个例子中,有一个名为checkout\u cart\u link的子块,其中包含checkout和cart的链接 通过调用布局文件中的block方法将链接添加到top.Links中,这是跨多个不同的布局文件完成的。在top.links块中调用的块方法是addLink,您可以在类Mage\u Page\u block\u Template\u links中找到该方法。子块checkout\u cart\u links还定义了另外两个块方法addCartLink和addCheckoutLink,它们可以在类Mage\u checkout\u block\u links中找到 不幸的是,由于没有removeLink或类似的块方法,在默认情况下无法从自己的布局文件中删除已添加的链接只是少数几件事情之一。这意味着要删除签出链接,您有两个选择 将自己的removeCheckoutLink块方法添加到创建的块中,并从自己的布局文件中引用它。这需要逆转addCheckoutLink块方法所做的操作。请注意,local.xml布局文件以及您在自己的模块中定义的布局文件将影响所有核心模块之后的布局,因此您可以确保您的方法将在addCheckoutLink方法之后运行 另一个更简单的选项是将checkout.xml布局文件复制到当前的主题布局文件夹中(如果该文件夹不存在),并删除checkout\u cart\u链接块中的addCheckoutLink操作节点,该选项使标准签出布局文件保持编辑状态
顶部链接的执行方式与其他内容稍有不同,而不是每个链接本身都是一个可以删除的块,有一个名为top.links的父块包含所有链接,在一种情况下,有一个子块包含签出和购物车的链接,如您所发现的,名为checkout\u cart\u link 通过调用布局文件中的block方法将链接添加到top.Links中,这是跨多个不同的布局文件完成的。在top.links块中调用的块方法是addLink,您可以在类Mage\u Page\u block\u Template\u links中找到该方法。子块checkout\u cart\u links还定义了另外两个块方法addCartLink和addCheckoutLink,它们可以在类Mage\u checkout\u block\u links中找到 不幸的是,由于没有removeLink或类似的块方法,在默认情况下无法从自己的布局文件中删除已添加的链接只是少数几件事情之一。这意味着要删除签出链接,您有两个选择 将自己的removeCheckoutLink块方法添加到创建的块中,并从自己的布局文件中引用它。这需要逆转addCheckoutLink块方法所做的操作。请注意,local.xml布局文件以及您在自己的模块中定义的布局文件将影响所有核心模块之后的布局,因此您可以确保您的方法将在addCheckoutLink方法之后运行 另一个更简单的选项是将checkout.xml布局文件复制到当前的主题布局文件夹中(如果该文件夹不存在),并删除checkout\u cart\u链接块中的addCheckoutLink操作节点,该选项使标准签出布局文件保持编辑状态 永不更新上的Direct checkout.xml避免对核心文件进行更改 请对此代码进行注释或删除 使用Local.xml 或 永不更新上的Direct checkout.xml避免对核心文件进行更改 请对此代码进行注释或删除 使用Local.xml 或
旧文章,但对于其他搜索,您不希望复制和编辑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>
这篇文章提出了删除并重新添加的想法:旧文章,但对于其他搜索者,您不希望复制和编辑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>
这篇文章提出了删除和添加的想法,值得赞扬:与其给我减号,不如给我答案,如果有想法?与其给我减号,不如给我答案,如果有想法?马特·伯恩下面的答案是最佳实践方式,而不是这个。这个答案需要在您自己的主题checkout.xml中创建一个重复的覆盖,而不是使用local。
xml,这是一种糟糕的做法,因为覆盖主题中的本机布局意味着您将在com升级中遇到大问题!这甚至不是一个答案,也不应该是这个问题的公认答案。当然,首先添加链接的是源代码,但它没有解释如何删除链接。正如BenLeah在上述评论中所述,直接编辑checkout.xml并不遵循Magento的升级兼容实践。任何阅读本文的人都应该参考Matt Byrne的答案。下面Matt Byrne的答案是最佳实践方式,而不是这个。这个答案需要在您自己的主题checkout.xml中创建一个重复的覆盖,而不是使用local.xml,这是一种不好的做法,因为覆盖主题中的本机布局意味着您将在com升级中遇到大问题!这甚至不是一个答案,也不应该是这个问题的公认答案。当然,首先添加链接的是源代码,但它没有解释如何删除链接。正如BenLeah在上述评论中所述,直接编辑checkout.xml并不遵循Magento的升级兼容实践。任何阅读本文的人都应该参考Matt Byrne的答案。这应该被标记为答案,效果很好。这应该被标记为答案,效果很好。
<?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>
<reference name="top.links">
<remove name="checkout_cart_link" />
<block type="checkout/links" name="checkout_cart_link_custom">
<action method="addCartLink"></action>
</block>
</reference>