Удаление ссылок из верхнего меню с помощью local.xml - PullRequest
11 голосов
/ 14 октября 2011

Кто-нибудь знает, как я могу удалить ссылки из верхнего меню, используя 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

Ответы [ 6 ]

16 голосов
/ 23 ноября 2011

Вы можете сделать это в local.xml:

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

Это был также мой вопрос Как я могу получить полный путь в файле local.xml

9 голосов
/ 10 октября 2012
<default>
 <reference name="top.links">
    <block type="wishlist/links" name="wishlist_link"/>
    <action method="removeLinkBlock"><blockName>wishlist_link</blockName></action>
 </reference> 
</default>

Добавьте эту часть в local.xml . Запись этого в default удалит его из каждой страницы . Так что отрегулируйте его соответственно. Я надеюсь, что это поможет вам.

4 голосов
/ 14 октября 2011

Должно быть:

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

Но вы всегда можете скопировать checkout.xml в вашу локальную тему и отредактировать его.

3 голосов
/ 11 февраля 2014
<default>
<reference name="top.links">
    <remove name="wishlist_link"/>
</reference>
</default>

Добавьте эту часть в local.xml . Это подходит для меня. Просто используйте «удалить». Вот и все.

1 голос
/ 08 ноября 2017

Вы можете удалить ссылку через обновление макета, либо

  1. по ее имени |вызывая removeLinkBlock ($ blockName)
  2. по его URL |вызов removeLinkByUrl ($ url)
  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

Если по какой-либо причине ваша ссылка не была добавлена ​​с именем, а URL-адрес с жесткой кодировкой не работает, вы можете просто скопировать файл layout.xml modules в папку с пользовательской темой и удалить строки, в которых была добавлена ​​ссылка.

0 голосов
/ 06 марта 2017

Привет. При этом удаляются ссылки на корзину и оформление заказа из ссылок top.links в 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>

на основе наилучшего принятого ответа выше, но на тот случай, если кто-то захочет удалить оба

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...