Я сделал свою собственную страницу списка продуктов на основе Mage_Catalog_Block_Product_List:
Приложение / код / местные / Mage / Каталог / блока / продукта / Special.php:
class Mage_Catalog_Block_Product_Special extends Mage_Catalog_Block_Product_List { /* Original contents */ /* Here I call addAttributeToFilter on product collection, and then... */ return $this->_productCollection; }
Я включаю это на странице CMS в центральном столбце:
<reference name="content"> <block type="catalog/product_special" template="catalog/product/list.phtml" /> </reference>
Проблема в том, что список продуктов отображается просто отлично, но в левой колонке я не получаю многоуровневую навигацию.
Это довольно странно, поскольку я использую тот же шаблон, что и обычные списки.
Несколько вещей, которые я проверил:
Я чувствую, что это связано с попыткой включить листинг продукта на страницу CMS, но я не смог найти точную проблему.
Любая помощь в этом была бы очень оценена.
Вам нужно добавить блок, который отображает слои в левый столбец.
Если вы посмотрите в catalog.xml
, вы увидите, что узел catalog_category_layered
включает в себя следующее:
<reference name="left"> <block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/> ... </reference>
Итак, добавьте это в свое обновление макета xml xml, которое должно отображать блок Layer на вашей странице CMS.
Если у вас есть проблемы с фильтром, который не фильтруется при нажатии на один из фильтруемых атрибутов, это, вероятно, связано с тем, что ссылки, представленные блоком Layer_View, предполагают, что они отправятся обратно в CategoryController
, а не CmsController
который будет отображать вашей странице CMS. Это может быть или не быть проблемой, поэтому отчитайтесь здесь, если это не сработает, и мы можем попытаться с этим справиться.
Лично у меня была бы скрытая категория со всеми продуктами, содержащимися в ней, и использовать скрипт, чтобы поддерживать это обновление для всех продуктов. Сценарий можно выполнить с помощью API, медленно, да, но он будет работать своевременно для определенного уровня количества SKU.
многоуровневая навигация включена в виде категории. Вы должны включить часть навигации, используемую по категориям, поэтому попробуйте вставить
<reference name="left"> <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/> </reference>
до
<reference name="content">
Я не уверен, но если это не работает, это должно помочь вам понять проблему в любом случае
проверьте следующие страницы (они столкнулись с одной и той же проблемой)
http://www.exploremagento.com/magento/some-custom-blocks-to-help-you-show-products.php http://www.chilipepperdesign.com/2009/03/23/magento-how-to -list-все-в-продукты-в-одной категории-в-боковой панели-блока