Как скрыть активную категорию в Magento, не отключая URL? - PullRequest
1 голос
/ 20 июля 2010

Привет, мы работаем с Magento 1.4.0.1 и хотели бы скрыть активные категории от навигации. Когда мы делаем это, URL-адреса родительской категории 404, но URL-адреса всех дочерних категорий остаются действительными.

т.е.

magentostore.ex/brands/company is valid
magentostore.ex/brands is not

Мы бы хотели, чтобы magentostore.ex / бренды указывали на страницу, но нам не нужна вкладка с надписью «Бренды» в нашей навигации верхнего уровня.

Как мы можем скрыть родителя от навигации, сохраняя его активным? Спасибо!

Ответы [ 3 ]

3 голосов
/ 22 июля 2010

Будьте очень осторожны при переходе к обновлению до 1.4.1.0 - произошли некоторые серьезные изменения, особенно в модулях Sales_Order. Любые расширения, связанные с заказами , могут прерваться.

Один из вариантов - создать версию файла Mage_Catalog_Block_Navigation в app / code / local (не редактировать ядро ​​напрямую!) И переопределить функцию drawItem, чтобы исключить эту категорию из навигации. Это требует написания некоторого PHP, но не особенно сложно скопировать / вставить существующий код и добавить ваше условие.

Что-то вроде этого в верхней части функции должно работать (имейте в виду, что эта функция рекурсивна ... и проверьте свое регулярное выражение !!)

if(preg_match('/\b(brands)/i',$category->getName())!=0){
        return '';
    }
1 голос
/ 21 июля 2010

Ну, это немного отговорка, но мы только что обновились до 1.4.1.0 с 1.4.0.1, и опция «Включить в меню навигации» была возвращена в свойства категории.Это решает нашу проблему.Теперь мы можем предотвратить появление категории в навигации верхнего уровня, сохранив при этом возможность целевой страницы.РЕДАКТИРОВАТЬ: решение JD является лучшим решением.

0 голосов
/ 21 июля 2010

Вы пробовали пройти через CMS и создать страницу с SEF URL-идентификатором «брендов»? Это должно достичь того, что вы хотели бы, если я правильно понимаю.

...