我正在尝试覆盖Magento平台上的核心模块。
绝对没问题。 我为它制作了一个简单的模块,它默认通过etc / modules / ... xml文件加载。但我想要的是:
仅在类别页面上调用模块。
有人知道是否可以从模板文件中调用(定义,设置)模块?
如何才能将其加载到特定模板文件中,或仅加载到该类别页面上?
我目前正在尝试解决问题,但仍然无法绕过正确的代码。 我认为if / else语句适用于核心模块currency.php,但也许你们可以帮助我。
* 这就是我的想法,看到的顺序不是代码;)*
<?php
class MyCompany_ConstPrice_Model_Currency extends Mage_Directory_Model_Currency
{
public function __A_NAME_()
if(Mage::app()->getFrontController()->getRequest()->getRouteName() == 'catalog') :
elseif:
$this->_redirectReferer(Mage::getBase());
Rest of code....
?>
答案 0 :(得分:2)
要提供覆盖,首先需要重写类别名。
<config>
<global>
<models>
<directory>
<rewrite>
<currency>MyCompany_ConstPrice_Model_Currency</currency>
</rewrite>
</directory>
</models>
</global>
</config>
现在你可以进行实际覆盖了。
<?php
class MyCompany_ConstPrice_Model_Currency extends Mage_Directory_Model_Currency
{
public function getCode()
{
if ((Mage::app()->getRequest()->getRouteName() == 'catalog')
&& (Mage::app()->getRequest()->getControllerName() == 'category')) {
// return something here...
}
// else not a category page
return parent::getCode();
}
}
注意:我使用getCode()
作为例子,因为它是第一个声明的函数。