epe*_*leg 1 php xml magento magento-1.4
我知道我可以在我的模块的config.xml中使用以下语法覆盖/重写模块中的模型类:
<config>
<global>
<models>
<moduletooverride>
<rewrite>
<modeltooverride>Mycompany_Mymodule_Model_Myfolder_Myclass</customer>
</rewrite>
</moduletooverride>
</models>
</global>
</config>
Run Code Online (Sandbox Code Playgroud)
但是,如果我希望这是有条件的(例如,基于我的模块adminhtml配置部分中的一些设置?)
这有什么语法吗?
或者,有没有办法让我的重写课程能够在重写之前进入课堂?(允许它称其为"前任".
没有内置的配置选项,允许您有条件地重写这样的类.
但是,重写的类只是一个扩展类,因此所有标准的OOP规则都适用,包括使用parent:: 类似的东西
class My_Rewritten_Class extends Class_I_Rewrote
{
public function theMethodIRewrote($param, $options)
{
$original_results = parent::theMethodIRewrote($param, $options);
if(!Mage::getStoreConfigFlag('path/to_my/on_or_off_flag'))
{
return $original_results
}
//continue with the rewrite
}
}
Run Code Online (Sandbox Code Playgroud)
最后,虽然我从未尝试过,但您应该能够获得对已解析的配置选项的引用
$config->Mage::getConfig();
Run Code Online (Sandbox Code Playgroud)
然后使用其setOptions方法手动设置或取消设置重写选项.
| 归档时间: |
|
| 查看次数: |
2193 次 |
| 最近记录: |