我正在尝试扩展:Mage_Catalog_Model_Product_Visibility
我正在修改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);
}
设置为“不可见”的过期产品仍会显示其直接网址(默认情况下,Magento会显示404)。
我通过修改核心文件进行了测试,但它确实有效。但我想创建一个小扩展,到目前为止,我无法让它工作。这就是我到目前为止所做的:
应用程序的/ etc /模块/ CustomCode_InvisibleProducts.xml
<?xml version="1.0"?>
<config>
<modules>
<CustomCode_InvisibleProducts>
<active>true</active>
<codePool>local</codePool>
</CustomCode_InvisibleProducts>
</modules>
</config>
应用程序/代码/本地/ 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 /型号/目录/产品/ Visibility.php
class CustomCode_InvisibleProducts_Model_Catalog_Product_Visibility extends Mage_Catalog_Model_Product_Visibility
{
.....
不知怎的,我没有正确扩展模型,因为似乎没有发生/改变。
感谢您的帮助!
答案 0 :(得分:2)
我已将CustomCode_InvisibleProducts的扩展名更改为CustomCode_Visible,因为我不知道还能做什么。
不知何故,扩展程序立即开始工作。
最终代码:
应用程序的/ etc /模块/ CustomCode_Visible.xml
<?xml version="1.0"?>
<config>
<modules>
<CustomCode_Visible>
<active>true</active>
<codePool>local</codePool>
</CustomCode_Visible>
</modules>
</config>
应用程序/代码/本地/ CustomCode /可见光的/ 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>
应用程序/代码/本地/ CustomCode /型号/目录/产品/ Visibility.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);
}
答案 1 :(得分:0)
您没有在config.xml中声明您的模块
<modules>
<CustomCode_InvisibleProducts>
<version>0.1.0</version>
</CustomCode_InvisibleProducts>
</modules>
在全局节点之前插入此内容。