Попытка переписать коллекцию продуктов каталога
Я пытаюсь переписать коллекцию продуктов каталога Magento - в основном у меня есть определенное правило фильтрации, которое должно применяться каждый раз при загрузке коллекции продуктов, поэтому я полагаю, что лучше всего поместить ее непосредственно в коллекцию.
Однако я никогда по-настоящему не играл с этим раньше, и до сих пор мне не удавалось заставить его работать.
Соответствующая часть моего config.xml является
<global>
<models>
<catalog>
<rewrite>
<resource_product_collection>Lw_Restrict_Model_Resource_Product_Collection</resource_product_collection>
</rewrite>
</catalog>
И для тестирования, мой app/code/local/Lw/Restrict/Model/Resource/Product/Collection.php просто содержит:
<?php
die("??");
class Lw_Restrict_Model_Resource_Product_Collection extends Mage_Catalog_Model_Resource_Product_Collection {
protected function _beforeLoad() {
echo "Load!!";
parent::_beforeLoad();
}
}
Поэтому, если я, например, перейду на страницу категории, я бы на самом деле ожидал, что страница умрет, а это не так!
Не мог бы кто-нибудь указать на какую-нибудь очевидную вещь, которую я явно пропустил, пожалуйста!!
Спасибо!
2 answers
После некоторого дополнительного чтения я понял, что XML должен выглядеть так:
<catalog_resource>
<rewrite>
<product_collection>Lw_Restrict_Model_Resource_Product_Collection</product_collection>
</rewrite>
</catalog_resource>
Ваша проблема в wrong calling
для типа ресурса в config.xml
Это должно быть catalog_resource
из catalog
.
Согласно as, класс типа ресурсов magento catalog_resource
является Mage_Catalog_Model_Resource
Смотрите в config.xml
модуля Mage_Catalog
:
<catalog_resource>
<class>Mage_Catalog_Model_Resource</class>