Как переопределить список продуктов по каталогу основного каталога?
-
16-10-2019 - |
Вопрос
Я пытаюсь переопределить 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>
Должен быть в одной линии без пробелов! Я стал сумасшедшим, чтобы решить подобную проблему!