2013-04-11 38 views
1

我使用Magento的1.7(最新版本),我想只從頂部導航鏈接中刪除「結帳」鏈接。如何從Magento的頂部鏈接中刪除「Checkout」網址?

我已經試過

<remove name="checkout_cart_link" /> 

,但它消除了車鏈接也一樣,這是我不希望刪除。

+3

而不是給負投票,有人給我回答,如果有想法? – 2013-04-11 06:32:00

回答

5

直接checkout.xml上從未更新avoide核心文件的更改

<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>--> 

使用本地。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> 

OR

<?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> 
+1

Matt Byrne的回答是最好的做法,不是這樣。這個答案需要在你自己的checkout.xml主題中創建一個重複的覆蓋,而不是使用local.xml,這是不好的做法,因爲在你的主題中覆蓋原生布局意味着你將有大問題com升級! – BenLeah 2014-02-01 21:21:53

+2

這甚至不是答案,也不應該成爲這個問題的接受答案。當然,它是首先添加鏈接的源代碼,但它根本不解釋如何刪除鏈接。正如BenLeah在上述評論中所述,直接編輯checkout.xml不會遵循Magento的升級兼容做法。任何人閱讀這篇文章都應該參考Matt Byrne的回答。 – Meogi 2014-08-06 15:03:04

0

頂部鏈接與其他東西的做法有點不同,而不是每個鏈接都是可以自行移除的塊,有一個名爲top.links的父塊包含所有鏈接,並且在一種情況下存在您已經找到名爲checkout_cart_link的子塊,其中包含結帳和購物車的鏈接。

鏈接被添加到top.links通過電話來阻止你的佈局文件的方法和這種跨多個不同的佈局文件來完成。叫top.links塊的塊的方法是addLink(),你可以找到在Mage_Page_Block_Template_Links類此方法。子塊checkout_cart_links還限定2點塊的方法和addCartLink()addCheckoutLink()可以在Mage_Checkout_Block_Links類中找到。

不幸的是,刪除已添加的鏈接是默認情況下不能從自己的佈局文件中執行的少數幾件事之一,因爲沒有removeLink()或類似的塊方法。這意味着,除去結帳鏈接,你有兩個選擇

  • 添加您自己removeCheckoutLink()塊的方法爲您創建一個街區,距離自己的佈局文件中引用它。這將需要扭轉addCheckoutLink()塊的方法。請注意,您在自己的模塊中定義local.xml佈局文件,佈局文件會影響佈局所有的核心模塊,所以你可以肯定你的方法將在addCheckoutLink()方法

  • 其他更容易的選擇後運行,但一離開編輯的標準結賬佈局文件是對checkout.xml佈局文件addCheckoutLink()動作節點複製到當前的主題佈局文件夾,如果它已不存在,並取出checkout_cart_link塊內。

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

+0

這應該被標記爲答案,它工作得很好。 – jeruki 2014-10-02 15:46:48