2011-10-14 59 views
10

有誰知道我可以如何使用local.xml從頂級菜單中刪除鏈接。使用local.xml從頂級菜單中刪除鏈接

在默認checkout.xml有:

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

而且我想從頂部菜單中刪除addCartLink。一種方法就是編輯checkout.xml文件,但它認爲這將是一個更好的解決方案,只是將刪除添加到我的local.xml文件,但我似乎無法得到正確的名稱刪除。如果我做了

<layout> 
    <default> 
     <remove name="top.links" /> 
    </default> 
</layout> 

這確實刪除整個菜單,但我怎麼使用locale.xml菜單中刪除只是一個單一的項目?

我使用Magento的1.6

+2

免費的'[前端鏈接管理器](http://www.magentocommerce.com/magento-connect/MagePsycho/extension/7905/frontend_links_manager)'擴展可讓您從控制面板執行此操作。 – ehartwell

回答

15

可以在local.xml中做到這一點:

<default> 
    <reference name="top.links"> 
    <action method="removeLinkByUrl"> 
     <url helper="checkout/url/getCartUrl" /> 
    </action> 
    </reference> 
</default> 

這也是我的問題How can i get the full path in local.xml file

+0

免費的'[前端鏈接管理器](http://www.magentocommerce.com/magento-connect/MagePsycho/extension/7905/frontend_links_manager)'擴展可以讓你從控制面板上執行此操作。 – ehartwell

+0

FYI對於像我這樣的人,在2年之後發現這個代碼是1.3.x,並且在1.8版本中出現錯誤。Nikhil_K_R的答案適用於我http://stackoverflow.com/a/12817619/1344515 – Yumecosmos

4

它應該是:

<layout> 
    <default> 
     <reference name="top.links"> 
      <reference name="checkout_cart_link"> 
       <remove name="top-link-cart" /> 
      </reference> 
     </reference> 
    </default> 
</layout> 

但你可以checkout.xml始終複製在本地主題和編輯。

+0

這不起作用 - (我知道我可以複製和編輯checkout.xml,但我試圖避免所有複製+編輯不同的文件來控制菜單,但也許我只需要這樣做 – MTilsted

+2

此代碼將使用remove =「1」屬性標記名稱爲「top-link-cart」的塊,這意味着它不會被渲染。 –

+0

是的,但我不想刪除塊。鏈接 – MTilsted

9
<default> 
<reference name="top.links"> 
    <block type="wishlist/links" name="wishlist_link"/> 
    <action method="removeLinkBlock"><blockName>wishlist_link</blockName></action> 
</reference> 
</default> 

這部分添加到您的local.xml中。在下寫這個默認會從中刪除它每頁。所以相應地調整它。我希望這能幫到您。

+0

什麼是強大的編輯功能你提供(只是小到大寫) –

3
<default> 
<reference name="top.links"> 
    <remove name="wishlist_link"/> 
</reference> 
</default> 

這部分添加到您的local.xml中。這對我行得通。只需使用「刪除」即可。而已。

+0

謝謝。也可以使用刪除與購物車相關的物品。 – Zsolti

0

嗨這刪除在1.9.3

<reference name="top.links"> 
    <action method="removeLinkByUrl"> 
    <url helper="checkout/url/getCartUrl" /> 
    </action> 
    <action method="removeLinkByUrl"> 
    <url helper="checkout/url/getCheckoutUrl" /> 
    </action> 
</reference> 

基於上面最好接受的答案,但以防萬一有人想刪除這兩個

1

您從top.links的車和結算環節可以通過版面更新刪除鏈接

  1. 的名字|調用removeLinkBlock($ blockName)
  2. by its url |調用removeLinkByUrl($網址)
  3. 覆蓋該文件是它增加了

職能住在Mage_Page_Block_Template_Links

選項1

的removeLinkByUrl()函數需要一個URL作爲參數,通常通過相應擴展中的幫助函數提供。只要抓住它那裏,你可以使用類似

<reference name="top.links"> 
     <action method="removeLinkByUrl"><url helper="customer/getRegisterUrl"/></action> 
    </reference> 

在上述情況下customer是擴展名而getRegisterUrl是在輔助類的功能。

如果您的分機未提供該函數返回一個鏈接的任何功能,您可以嘗試以下

<reference name="top.links"> 
    <action method="removeLinkByUrl"><url>ADD_THE_DYNAMIC_LINK_HERE</url></action> 
</reference> 

選項2

如果使用名稱加入連結,例如

<reference name="top.links"> 
    <block type="wishlist/links" name="wishlist_link" /> 
    <action method="addLinkBlock"><blockName>wishlist_link</blockName></action> 
</reference> 

您可以使用

<reference name="top.links"> 
    <remove name="wishlist_link"/> 
</reference> 

<default> 
<reference name="top.links"> 
    <block type="wishlist/links" name="wishlist_link"/> 
    <action method="removeLinkBlock"><blockName>wishlist_link</blockName></action> 
</reference> 
</default> 

選項3

如果沒有指定名稱和硬編碼網址出於某種原因,你可以先走一步,複製不起作用添加你的鏈接將layout.xml模塊添加到您的自定義主題文件夾中,並刪除添加鏈接的行。

相關問題