Как ограничить продукты на главной странице magento и показать все свойства?

Я использую тему magento rwd.

Я хочу ограничить количество отображаемых продуктов до 4. Также я хочу показать все такие вещи, как кнопка «Добавить в корзину», раздел отзывов и цена.

В настоящее время я пробовал и тестировал следующий код, но он не работает.

 {{block type="catalog/product_list" name="product_list" category_id="19"  mode="grid" template="catalog/product/list.phtml" column_count="4" limit="4" }}

Как это сделать?

Я прилагаю скриншот вывода, который я получаю. Выходной скриншот


person Bhargav Mehta    schedule 29.04.2015    source источник


Ответы (1)


Вы не можете установить «лимит» для блока catalog/product_list таким образом.

Лучшее место (пожалуйста, поправьте меня, если есть лучшее место/событие) через событие 'core_block_abstract_prepare_layout_before'.

Это позволит вам создать панель инструментов и изменить ограничение.

Код простой и понятный. Ваш файл наблюдателя,

class Test_Module_Controller_Router
{
public function homeProductCollection($observer)
    {
        try{
            $block=$observer->getEvent()->getBlock();
            if($block instanceof Mage_Catalog_Block_Product_List){
                if($block->getProductLimit()){
                    $toolbar=$block->getToolbarBlock();
                    $block->setToolbarBlockName($toolbar->getNameInLayout());
                    $toolbar->setData('_current_limit',$block->getProductLimit());
                }   
            }
        }catch (Exception $e){
            Mage::logException($e);
        }
        return $this;
    }
}

Ваш xml-файл,

<config>
    ...
    <global>
        ...
        <events>
            <core_block_abstract_prepare_layout_before>
                <observers>
                    <test_module>
                        <class>Test_Module_Controller_Router</class>
                        <method>homeProductCollection</method>
                    </test_module>
                </observers>
            </core_block_abstract_prepare_layout_before>
        </events>
        ...
    </global>
    ...
</config>

Блок CMS, используемый для его создания, будет выглядеть так:

{{block type="catalog/product_list" category_id="3" product_limit="2" template="catalog/product/list.phtml"}}

Для получения дополнительной информации см. здесь

person Dushyant Joshi    schedule 29.04.2015
comment
Извините, я не полностью разбираюсь в magento (я новичок в magento). Так что шаги, которые вы сказали выше, просто не в моей голове. Не могли бы вы объяснить мне, что вы говорите мне создать новое расширение? (Если да, то можете ли вы предоставить мне шаги). Спасибо - person Bhargav Mehta; 29.04.2015
comment
Шаги уже есть в приведенной ссылке. и для проверки наблюдателя здесь technet.weblineindia.com/ веб/ - person Dushyant Joshi; 29.04.2015
comment
Создайте простой модуль с config.xml и классом модели. это можно поискать в гугле. Скоро будет обновление с полным модулем, но вам нужно попробовать перед этим - person Dushyant Joshi; 29.04.2015
comment
Все еще в замешательстве. Нет ли более простого способа сделать это? - person Bhargav Mehta; 29.04.2015
comment
Постараюсь ответить в ближайшие 24 часа - person Bhargav Mehta; 29.04.2015
comment
Есть и другие решения, но они не являются правильными и осуществимыми. - person Dushyant Joshi; 29.04.2015
comment
Привет, я попробовал приведенный выше код, указанный вами, но я получаю сообщение об ошибке, которое не позволяет мне открыть даже панель администратора. пожалуйста, проверьте прикрепленную ссылку gist.github.com/bhargavmehta/88e1921f419a1fcc784a - person Bhargav Mehta; 30.04.2015