Модифицированный шаблон списка Magento имеет все атрибуты, необходимые для отображения информации о продукте. - PullRequest
0 голосов
/ 29 ноября 2010

Я пытаюсь отобразить все товары определенной категории.Итак, я создал копию /theme/template/catalog/list.phtml и добавил эти две строки вверху:

$cat_id = 10; // category_id for "specific category"
$_productCollection = Mage::getResourceModel('catalog/product_collection')->addCategoryFilter(Mage::getModel('catalog/category')->load($cat_id));

, которые заменили:

$_productCollection=$this->getLoadedProductCollection();

СейчасЯ получаю все продукты, но некоторые атрибуты и методы этого продукта больше не доступны ($ _ product-> isSaleable (), $ this-> getPriceHtml ($ _ product)).поэтому шаблон неправильно отображает цену товара или изображение.Мне кажется, что некоторые вспомогательные функции мне больше не доступны, так как я ссылался на модель непосредственно для продуктов, но я недостаточно знаком с фреймворком Zend / Magento, чтобы знать, какой метод (ы) использовать вместо него.

Я не вставил код для list.phtml, так как это просто код по умолчанию для базового шаблона в magento 1.3.Пожалуйста, дайте мне знать, что кому-нибудь нужен этот код для справки.

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 30 ноября 2010

Если вы хотите ограничить отображение товаров определенной категорией, вам нужно установить идентификатор этой категории в объекте слоя (область списка товаров). Не рекомендуется называть модели и инициализировать новую коллекцию внутри шаблона. Вы можете просто установить идентификатор категории через макет и использовать старый шаблон кода (без ваших изменений):

<reference name="your.custom.product.list">
    <action method="setCategoryId"><categoryId>10</categoryId></action>
</reference>
1 голос
/ 30 ноября 2010

Предположительно, поскольку вы не указываете ни идентификатор магазина, ни область действия, коллекция не знает, какие атрибуты загрузить вместе с моделями продуктов.Вы можете включить это и сократить свой код, выполнив это:

$cat_id = 10; // category_id for "specific category"
$_category = Mage::getModel('catalog/category')->load($cat_id);
$_productCollection = $_category->getProductCollection();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...