Показывать товары с пользовательским атрибутом на домашней странице
В моем магазине я создаю атрибут, код которого admin_rating для каждого продукта, и он имеет три значения: Отличное, Хорошее и Среднее. Затем на домашней странице у меня есть окно, в котором я хочу показать продукты, чья цена превосходна.
Я искал об этом, я протестировал это решение , но оно показало мне следующее: "Нет продуктов, соответствующих выбранному. Это статический блок CMS, отображаемый, если категория пуста. Вы можете разместить свой собственный контент здесь".
То, что я делаю, это:
В app/code/local/Mage
Я добавил папку Catalog
и создал в ней этот файл:
app/code/local/Mage/Catalog/Block/Product/Featured.php
Затем я добавил этот код в Featured.php
:
<?php
class Mage_Catalog_Block_Product_Featured extends Mage_Catalog_Block_Product_List {
protected function _getProductCollection() {
if (is_null($this->_productCollection)) {
$collection = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
->addStoreFilter()
->addPriceData()
->addTaxPercents()
->addUrlRewrite()
->addAttributeToFilter('admin_rating', array('eq' => 'Excellent'))
->addFieldToFilter('sku', array('like', '10'))
->setPageSize($this->get_prod_count())
->setCurPage($this->get_cur_page());
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
$this->setProductCollection($collection);
}
return $collection;
}
}
И в app\design\frontend\base\default\layout\cms.xml
добавил в него этот код:
<cms_index_index translate="label">
<label>CMS Home Page</label>
<reference name="content">
<block type="catalog/product_featured" name="product_featured" template="catalog/product/list.phtml">
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
</block>
<action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
<action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
<action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
<action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
<action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
<action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
</block>
</reference>
</cms_index_index>
Затем, поскольку я хочу показать продукты на домашней странице, я добавил код ниже в home cms page
в серверной части:
<reference name="content">
<block type="catalog/product_featured" name="product_featured" template="catalog/product/list.phtml">
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
</block>
<action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
<action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
<action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
<action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
<action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
<action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
</block>
</reference>
Почему в нем не отображаются продукты? Где я ошибаюсь?
1 answers
Если вы хотите показывать их только на домашней странице, почему бы не использовать другой подход? Просто создайте три категории - Отличные, Хорошие и Средние. Соответствующим образом распределите необходимые продукты по этим категориям.
В CMS -Страницы - Домашняя страница просто добавьте это:
{block type="catalog/product_list" category_id="8" template="catalog/product/custom.phtml"}}
Измените category_id
на идентификатор категории "Отлично". Настройте catalog/product/custom.phtml
в соответствии с вашими потребностями.
Вот и все.