Расширение базовой модели в Magento
Я пытаюсь расширить: Mage_Catalog_Model_Product_Visibility
Я изменяю следующее В видимости.php файл:
public function getVisibleInSiteIds()
{
return array(self::VISIBILITY_IN_SEARCH, self::VISIBILITY_IN_CATALOG, self::VISIBILITY_BOTH);
}
В:
public function getVisibleInSiteIds()
{
return array(self::VISIBILITY_IN_SEARCH, self::VISIBILITY_IN_CATALOG, self::VISIBILITY_BOTH, self::VISIBILITY_NOT_VISIBLE);
}
Устаревшие продукты, для которых установлено значение "не видно", все равно будут отображаться по их прямому URL (по умолчанию Magento будет показывать 404).
Я проверил это, изменив основной файл, и он работает. Но я хотел бы создать небольшое расширение, и пока я не могу заставить его работать. Вот что я сделал. далеко:
App / etc / modules / CustomCode_InvisibleProducts.xml
<?xml version="1.0"?>
<config>
<modules>
<CustomCode_InvisibleProducts>
<active>true</active>
<codePool>local</codePool>
</CustomCode_InvisibleProducts>
</modules>
</config>
App / code / local/CustomCode/InvisibleProducts/etc / config.xml
<?xml version="1.0"?>
<config>
<modules>
<CustomCode_InvisibleProducts>
<version>0.1.0</version>
</CustomCode_InvisibleProducts>
</modules>
<global>
<models>
<customcode_invisibleproducts>
<class>CustomCode_InvisibleProducts_Model</class>
</customcode_invisibleproducts>
<catalog>
<rewrite>
<product_visibility>CustomCode_InvisibleProducts_Model_Catalog_Product_Visibility</product_visibility>
</rewrite>
</catalog>
</models>
</global>
</config>
Приложения/код/местные/CustomCode/InvisibleProducts/модель/каталог/продукт/видимость.php
class CustomCode_InvisibleProducts_Model_Catalog_Product_Visibility extends Mage_Catalog_Model_Product_Visibility
{
.....
Каким-то образом я неправильно расширяю модель, потому что ничего не происходит/не меняется.
Спасибо за помощь!
2 ответа:
Я изменил имя расширения с CustomCode_InvisibleProducts на CustomCode_Visible, потому что не знал, что еще можно сделать.
И так или иначе, расширение начало работать сразу же.
Окончательный код:
App / etc / modules / CustomCode_Visible.xml
<?xml version="1.0"?> <config> <modules> <CustomCode_Visible> <active>true</active> <codePool>local</codePool> </CustomCode_Visible> </modules> </config>
App / code / local/CustomCode/Visible/etc / config.xml
<?xml version="1.0"?> <config> <modules> <CustomCode_Visible> <version>0.2.0</version> </CustomCode_Visible> </modules> <global> <models> <customcode_visible> <class>CustomCode_Visible_Model</class> </customcode_visible> <catalog> <rewrite> <product_visibility>CustomCode_Visible_Model_Catalog_Product_Visibility</product_visibility> </rewrite> </catalog> </models> </global> </config>
Приложение / код / локальный / пользовательский код / модель / каталог / продукт / видимость.php
class CustomCode_Visible_Model_Catalog_Product_Visibility extends Mage_Catalog_Model_Product_Visibility { .... public function getVisibleInSiteIds() { return array(self::VISIBILITY_IN_SEARCH, self::VISIBILITY_IN_CATALOG, self::VISIBILITY_BOTH, self::VISIBILITY_NOT_VISIBLE); }