Удаление ссылок из верхнего меню с помощью 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
Ответы
Ответ 1
Вы можете сделать это в local.xml:
<default>
<reference name="top.links">
<action method="removeLinkByUrl">
<url helper="checkout/url/getCartUrl" />
</action>
</reference>
</default>
Это был также мой вопрос Как я могу получить полный путь в файле local.xml
Ответ 2
<default>
<reference name="top.links">
<block type="wishlist/links" name="wishlist_link"/>
<action method="removeLinkBlock"><blockName>wishlist_link</blockName></action>
</reference>
</default>
Добавьте эту часть в свой local.xml. Написание этого значения по умолчанию удалит его с на каждой странице. Поэтому отрегулируйте его соответствующим образом. Надеюсь, это поможет вам.
Ответ 3
Это должно быть:
<layout>
<default>
<reference name="top.links">
<reference name="checkout_cart_link">
<remove name="top-link-cart" />
</reference>
</reference>
</default>
</layout>
Но вы всегда можете скопировать checkout.xml в свою локальную тему и отредактировать ее.
Ответ 4
<default>
<reference name="top.links">
<remove name="wishlist_link"/>
</reference>
</default>
Добавьте эту часть в свой local.xml. Это подходит для меня. Просто используйте "удалить". Что это.
Ответ 5
Вы можете удалить ссылку с помощью обновления макета либо
- по названию | вызов removeLinkBlock ($ blockName)
- по его URL | вызов removeLinkByUrl ($ url)
- перезапись файла была добавлена
Функции живут в 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 в свою папку с настраиваемыми темами и удалить строки, в которые была добавлена ссылка.
Ответ 6
Привет Это удаляет ссылки на тележку и checkout из 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>
на основе наилучшего принятого ответа выше, но на всякий случай, когда кто-то хочет удалить оба