我有一个覆盖Magento核心类的小问题:Core / Rule / Model / Rule.php。
我想我做的一切都正确,但是代码只是行不通(什么都没改变)。
我的[命名空间] /Rule/etc/config.xml:
<?xml version="1.0"?>
<config>
<modules>
<[namespace]_Rule>
<version>0.1.0</version>
</[namespace]_Rule>
</modules>
<global>
<models>
<rule>
<rewrite>
<rule>[namespace]_Rule_Model_Rule</rule>
</rewrite>
</rule>
</models>
</global>
</config>
我的[命名空间] /Rule/Model/Rule.php:
class [namespace]_Rule_Model_Rule extends Mage_Rule_Model_Rule
{
protected function _beforeSave()
{
if ($this->getConditions()) {
$this->setConditionsSerialized(serialize($this->getConditions()->asArray()));
$this->unsConditions();
}
if ($this->getActions()) {
$this->setActionsSerialized(serialize($this->getActions()->asArray()));
$this->unsActions();
}
$this->_prepareWebsiteIds();
if (is_array($this->getCustomerGroupIds())) {
$this->setCustomerGroupIds(join(',', $this->getCustomerGroupIds()));
}
parent::_beforeSave();
}
我的app / etc / [namespace] _All.xml:
<?xml version="1.0"?>
<config>
<modules>
<[namespace]_Rule>
<active>true</active>
<codePool>local</codePool>
</[namespace]_Rule>
</modules>
</config>
我非常感谢您的帮助。
最佳答案
我设法通过覆盖SalesRule(Mage / SalesRule / Model / Rule)而不是Rule来解决它。您只能在静态执行时覆盖Rule模块(通过创建local / Mage / Rule / Model / Rule.php文件)。
关于magento - Magento规则模型覆盖,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3205617/