2015-09-14 138 views
1

我們的客戶想要顯示一些客戶鏈接到top.links,例如:地址簿,我的訂單等我用準備標籤。無法刪除頂部鏈接Magento 1.9

<action method="addLink" translate="label title" module="sales"> 
      <label>My Orders</label> 
      <url>sales/order/history/</url> 
      <title>My Orders</title> 
      <prepare>1</prepare> 
      <urlParams/> 
      <position>5</position> 
</action> 

不過,我嘗試使用方法removeLinkByUrl,我不能刪除這些鏈接。我發現removeLinkByUrl()在應用程序/代碼/核心方法/法師/頁/塊/模板/ Links.php,我們不必行代碼刪除與鏈接準備標籤:

public function removeLinkByUrl($url) 
{ 
    foreach ($this->_links as $k => $v) { 
     if ($v->getUrl() == $url) { 
      unset($this->_links[$k]); 
     } 
    } 

    return $this; 
} 

對此有何想法?

更新: 使用準備標籤將基本URL返回。如果我嘗試添加

<action method="removeLinkByUrl"><url>**Our Magento site base url**/sales/order/history</url></action> 

我們的鏈接將被刪除。

回答

1

你應該增加(對removeLinkByUrl)其他行動top.links,像這樣:

<action method="removeLinkByUrl"><url>sales/order/history</url></action>

+0

謝謝!我嘗試但我失敗了。使用* prepare *標籤將返回一個基礎url。如果我嘗試添加' **我們的Magento網站基址** /銷售/訂單/歷史記錄'。我們的鏈接將被刪除。 –

+0

您正在嘗試使用基本網址/銷售訂單/歷史記錄來完成此操作嗎?而只是/銷售/訂單/歷史不起作用? –

+0

你看看_app/code/core/Mage/Page/Block/Template/Links.php_。帶有prepare = true的addLink()方法將返回一個基礎URL。 ''url'=>($ prepare?$ this-> getUrl($ url,(is_array($ urlParams)?$ urlParams:array())):$ url)'。所以,我們不能通過鏈接'銷售/訂單/歷史' –