Я хочу удалить следующие ссылки в панели управления учетной записи клиента на левой панели?
- Мои Приложения
- Реестр подарков
- Бонусные очки
- Ссылка на подарочную карту
Я работаю в Magento 1.7 Community Edition. Любая помощь будет оценена.
magento-1.7
customer
Oshan
источник
источник
Ответы:
Шаг 1. Перейдите на (yourPackage / YourTemplate / customer / account / navigation.phtml)
Шаг 2: заменить нижнюю строку
Приведенный выше фрагмент кода содержит способ удалить все навигационные ссылки. Надеюсь, это поможет всем.
Ссылка Ссылка: https://github.com/Aproducktion/Magento-Remove-Dashboard-Links
источник
If you can't
??Я вижу 2 варианта здесь.
Первый и самый простой: просто найдите файлы макетов, которые добавляют эти пункты меню, и закомментируйте код для них.
Например
My applications
добавляетсяapp/design/frontend/{interface}/{theme}/layout/oauth.xml
через этот кусок XMLВторой способ, который я не уверен на 100%, это добавить этот XML в
local.xml
файл макета вашей темы:Вам нужно добавить один
<action>
тег для каждой ссылки, которую вы хотите удалить.Существует также 3-й вариант, если вы вообще не используете модули, просто отключите их. Это также может повысить производительность.
Для этого создайте этот файл:
app/etc/modules/Zzzz.xml
с этим содержанием:У вас могут быть некоторые проблемы, вот некоторые другие модули, которые вы хотите использовать, зависит от тех, которые вы хотите отключить.
источник
Mage_Customer_Block_Account_Navigation
что не наследуется отMage_Page_Block_Template_Links
.Существует расширение FOSS, которое добавляет опцию backend к ссылкам удаленной учетной записи.
Есть второй модуль (также FOSS), который добавляет
removeLink
метод, чтобы вы могли использовать следующее в вашемlocal.xml
Отказ от ответственности: я разработчик второго расширения.
источник
Самое простое решение (внедрение и использование) я нашел , чтобы заменить
Mage_Customer_Block_Account_Navigation
вapp/code/local
и добавитьremoveLinkByName
метод, который делает то же самое, что ответ Oshan в делает, но может использоваться из файлов макет. Более традиционное переписывание классов также будет работать, но потенциально может вызвать конфликты с плагином.Предупреждение! Непроверенные!
Более сложное решение было бы написать свой собственный модуль с
Block
которой распространяетсяMage_Customer_Block_Account_Navigation
и включает в себяremoveLinkByName
метод. Чтобы это работало, вы должны будете удалить / снятьcustomer_account_navigation
блокировку и заменить ее на новую для вашего модуля. С этого момента, когда бы вы ниcustomer_account_navigation
ссылались в макете, вы получите экземпляр сremoveLinkByName
.источник
Быстрое решение для удаления всех элементов списка «Моя учетная запись» ниже «Мои заказы», включая соглашения о выставлении счетов, периодические профили, Мои приложения и Мои загружаемые продукты. Также будут удалены ссылки «Мой список желаний» и «Моя рассылка» на сайте, протестированные на Magento 1.9:
Закомментируйте строки 31 - 66 из app / design / frontend / default / YOURTHEME / layout / wishlist.xml (если его там нет, скопируйте его из app / design / frontend / rwd / default / layout / wishlist.xml)
Закомментируйте строки 47 - 65 из app / design / frontend / default / YOURTHEME / layout / newsletter.xml (если его там нет, скопируйте его из app / design / frontend / rwd / default / layout / newsletter.xml)
рассылка </ name> рассылка / управление / </ path> подписка на рассылку </ label> </ action> </ reference> </ customer_account ->
CSS (настроить в соответствии с вашими требованиями)
источник
Чтобы избежать удаления ссылок, я бы рекомендовал назначать значения идентификаторов на основе переменной $ _index, чтобы вы могли скрыть ссылки с помощью CSS.
Вот что я сделал:
Из вашего пакета / YourTemplate / customer / account / navigation.phtml
Очевидно, тогда вы можете пойти
Нет единого способа снять шкуру с кошки, но это быстрый и простой вариант, который не ставит под угрозу функциональность.
источник
Я думал, что лучшим решением было бы переписать блок. Это было упомянуто выше, но не было никакого примера:
Добавьте переписать в ваш config.xml в глобальном разделе:
Переопределить addLink в Mage_Customer_Block_Account_Navigation:
Массив exclude_links может извлечь из настроек конфигурации, если вы не хотите жестко кодировать исключенные ссылки.
источник
это то, что я гуглил по этому поводу: http://magebase.com/magento-tutorials/5-useful-tricks-for-your-magento-local-xml/
источник
Сначала я хотел бы, чтобы вы сказали, что есть разные способы решения ваших проблем.
Это самый простой способ найти код в
layout.xml
файле внутри базы, который вы хотите удалить, например: если я хочу удалить «Мои теги», просто прокомментируйте часть.Но вы знаете, что мы не должны изменять базовый файл, поэтому можно выполнить еще один простой метод
Отключение ссылки в файле шаблона. Для этого скопируйте
navigation.phtml
файл в тему (Примечание: структура папок должна быть такой же) изbase\default\template\customer\account\navigation.phtml
. что показано в ответе выше.Еще одна утомительная задача - переписать ваш основной модуль и создать метод «RemoveLinkByName».
источник
Полное решение по удалению функций панели учетных записей включает в себя модификации как на стороне клиента, так и на стороне сервера. Если только клиентская часть удалена и / или скрыта, то ничто не мешает технически подкованным пользователям по-прежнему получать доступ к функциям, создавая маршруты в своем браузере вручную или используя более сложную «атаку» CURL (которая может включать в себя Токен CSRF и промах прямо).
Клиентская сторона легко достигается с помощью обновлений XML, о чем свидетельствует множество уже предоставленных ответов.
Серверная часть немного сложнее и требует понимания функциональности, которая удаляется.
Лично я бы пошел путем использования наблюдателей для условного возврата запрещенных кодов состояния HTTP на каждом из маршрутов удаляемой функции. Чтобы выяснить, какие маршруты следует соблюдать, откройте соответствующий файл контроллера и найдите каждое из интерфейсных действий, которые больше не должны быть доступны. Затем создайте модуль, который определяет поля конфигурации системы для мягкого отключения указанной функции. Используя эти поля конфигурации системы, условно обновите XML макета внешнего интерфейса и аналогично условно верните правильные коды ответов HTTP для каждого наблюдаемого маршрута.
Примеры кода для каждого из вышеперечисленных шагов можно найти через ваш любимый поисковик.
источник
Добавьте в файл local.xml этот код
Протестировано в Magento 1.7.0.2
источник