【发布时间】:2015-12-08 21:38:06
【问题描述】:
我使用的是 magento 企业版 1.14.2。我想重写以下类和函数。
Mage_Catalog_Model_Product_Url
public function formatUrlKey($str)
{
$urlKey = preg_replace('#[^0-9a-z]+#i', '-', Mage::helper('catalog/product_url')->format($str));
$urlKey = strtolower($urlKey);
$urlKey = trim($urlKey, '-');
return $urlKey;
}
这是我的重写模块配置文件,
<?xml version="1.0"?>
<config>
<modules>
<Mypackage_Mymodule>
<version>0.1.0</version>
</Mypackage_Mymodule>
</modules>
<global>
<helpers>
<mymodule>
<class>Mypackage_Mymodule_Helper</class>
</mymodule>
</helpers>
<models>
<mymodule>
<class>Mypackage_Mymodule_Model</class>
<resourceModel>mymodule_mysql4</resourceModel>
</mymodule>
<catalog>
<rewrite>
<product_url>Mypackage_Mymodule_Model_Catalog_Product_Url</product_url>
</rewrite>
</catalog>
</models>
</global>
</config>
这是我的课,
app/code/local/Mypackage/Mymodule/Model/Catalog/Product
class Mypackage_Mymodule_Model_Catalog_Product_Url extends Mage_Catalog_Model_Product_Url
{
public function formatUrlKey($str)
{
//my stuffs
}
}
我认为一切看起来都很好。但我不能重写这门课。但是同一个类在后续类的企业部分扩展,
Enterprise_Catalog_Model_Product_Url
所以这就是为什么它不起作用..?如果我扩展这个类,那么我可以访问该函数
public function formatUrlKey($str)
{
//my stuffs
}
任何解决方案或提示都会对我有所帮助..
【问题讨论】: