Сегодня я выбрал многоуровневую опцию навигации, которая не основана на атрибуте. Это для рейтингов, поэтому передняя часть может показать хорошие блестящие звезды.
Для этого у меня есть:
- Создан модуль
Переписал catalog_block_layer_view
<blocks> <catalog> <rewrite> <layer_view>Bob_Catalog_Block_Layer_View</layer_view> </rewrite> </catalog> </blocks>
Создан класс с именем Bob_Catalog_Block_Layer_View, который расширяет Mage_Catalog_Block_Layer_View
- Созданы _initBlocks (), getFilters () и _prepareLayout () для переопределения методов родительских классов. Все они в какой-то момент вызывают родительский класс, а затем либо добавляют, либо добавляют дополнительные данные к возвращаемому.
- Создайте блок фильтра Bob_Catalog_Block_Layer_Filter_Rating, который расширяет Mage_Catalog_Block_Layer_Filter_Abstract с помощью конструктора, который устанавливает filterModelName и вызывает его родителя, а затем устанавливает пользовательский шаблон, как кажется, что Mage_Catalog_Block_Layer_Filter_Abstract имеет имя шаблона hardco.
- Создайте модель Bob_Catalog_Model_Layer_Filter_Rating, которая расширяет Mage_Catalog_Model_Layer_Filter_Abstract и реализует apply (), getName (), _getItemsData ().
Это все отлично работает. Красивые блестящие звезды показывают в многослойной навигации.
У меня есть ощущение, что я что-то упустил, потому что когда дело доходит до шаблона состояния слоя, мне пришлось поместить туда условие, чтобы выбрать пользовательский фильтр рейтинга и изменить макет. Кроме того, некоторые вещи, которые мне нужно было сделать (клонировать коллекцию продуктов, чтобы событие загрузки не приводило к сбоям в счетах нумерации страниц), заставляют меня чувствовать, что я плаваю в гору.
Таким образом, вопрос есть какие - либо из вас есть какие - либо лучше предложения (или , возможно, блог подмигивание ) о том , как построить собственный не атрибут поддерживается многоуровневый навигационный фильтр?
Спасибо за чтение,
си