Как переопределить список продуктов по каталогу основного каталога?

magento.stackexchange https://magento.stackexchange.com/questions/10748

Вопрос

Я пытаюсь переопределить Core/Catalog/Block/Product/list.php с следующим

Ref:http://www.magentocommerce.com/boards/viewthread/14692/

файл: Ziva/customcatalog/etc/config.xml

<config>
    <modules>
        <Ziva_CustomCatalog>
            <version>1.0.0</version>
        </Ziva_CustomCatalog>
    </modules>
    <global>
        <blocks>
            <catalog>
                <class>Ziva_CustomCatalog_Block</class> <!--this is a new block page for that custom module-->
                <rewrite>
                    <product_list>Ziva_Customcatalog_Block_Product_List</product_list>
                </rewrite>
            </catalog>
        </blocks>
    </global>
</config>

файл: Ziva/customcatalog/block/product/list.php

class Ziva_Customcatalog_Block_Product_List extends Mage_Catalog_Block_Product_List {

    public function __construct() {
        parent::__construct();
    }

    protected function _getProductCollection() { // trying to override this method
        echo __CLASS__;
        return parent::_getProductCollection();
    }

    public function holdthis() {
        echo __METHOD__;
    }

}

В журнале исключений я получаю

exception 'Mage_Core_Exception' with message 'Invalid block type: Ziva_CustomCatalog_Block_Product_Compare_Sidebar' in C:\wamp\www\magento2\app\Mage.php:594

с последующим

Invalid block type: Ziva_CustomCatalog_Block_Product_Price_Template
Invalid block type: Ziva_CustomCatalog_Block_Layer_View
Invalid block type: Ziva_CustomCatalog_Block_Category_View
Invalid block type: Ziva_CustomCatalog_Block_Product_List_Toolbar

И не отображаются продукты

РЕДАКТИРОВАТЬ:

Я решил проблему

<class>Ziva_Customcatalog_Block</class>

Теперь я перефразирую вопрос.

В пользовательском модуле у вас может быть только один блок -класс? Но в ядро/каталог/блок, мы можем увидеть много.

Это было полезно?

Решение

Если вы обновите свой config.xml следующим образом, вы сможете добавить несколько уникальных ручек:

<config>
    <modules>
        <Ziva_CustomCatalog>
            <version>1.0.0</version>
        </Ziva_CustomCatalog>
    </modules>
    <global>
        <blocks>
            <ziva_customcatalog>
                <class>Ziva_CustomCatalog_Block</class> <!--this is a new block page for that custom module-->
            </ziva_customcatalog>
            <catalog>
                <rewrite>
                    <product_list>Ziva_Customcatalog_Block_Product_List</product_list>
                </rewrite>
            </catalog>
        </blocks>
    </global>
</config>

Затем вы можете позвонить 'ziva_customcatalog/layer_view' для вашего нового блока.

Другие советы

Обращать внимание:

<product_list>Ziva_Customcatalog_Block_Product_List</product_list>

Должен быть в одной линии без пробелов! Я стал сумасшедшим, чтобы решить подобную проблему!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top