我正在尝试用本地代码池中的另一个插件覆盖本地代码池中的一个插件,但是我需要覆盖的块没有被覆盖。我的config xml中的帮助程序覆盖得很好。有什么关于我的问题的想法吗?
我还使用了模块冲突检测器,并确保我们的magento实例中没有任何冲突。
我正在尝试覆盖的模块
应用程序/代码/本地/Idev/OneStepCheckout/etc/config.xml
<blocks>
<onestepcheckout>
<class>Idev_OneStepCheckout_Block</class>
</onestepcheckout>
</blocks>
应用程序/代码/本地/Idev/OneStepCheckout/Block/Checkout.php
class Idev_OneStepCheckout_Block_Checkout extends Mage_Checkout_Block_Onepage_Abstract {
public function getBillingFieldsOrder($fields = array()){
....
}
}
我的模块
app / etc / modules / KNG_OneStepCheckout.xml
<config>
<modules>
<KNG_OneStepCheckout>
<active>true</active>
<codePool>local</codePool>
<depends>
<Idev_OneStepCheckout />
</depends>
</KNG_OneStepCheckout>
</modules>
</config>
应用程序/代码/本地/KNG/OneStepCheckout/etc/config.xml
<global>
<blocks>
<onestepcheckout>
<rewrite>
<checkout>KNG_OneStepCheckout_Block_Checkout</checkout>
</rewrite>
</onestepcheckout>
</blocks>
<helpers>
<onestepcheckout>
<rewrite>
<checkout>KNG_OneStepCheckout_Helper_Checkout</checkout>
</rewrite>
</onestepcheckout>
</helpers>
</global>
应用程序/代码/本地/KNG/OneStepCheckout/Block/Checkout.php
class KNG_OneStepCheckout_Block_Checkout extends Idev_OneStepCheckout_Block_Checkout {
public function getBillingFieldsOrder($fields = array()) {
....
}
}
我发现他们的模块已经有另一个类覆盖了我试图覆盖的类。不知道为什么当我检查冲突时它没有显示为冲突。
他们的班级已经被压倒了
应用程序/代码/本地/Idev/OneStepCheckout/Block/Fields.php
class Idev_OneStepCheckout_Block_Fields extends Idev_OneStepCheckout_Block_Checkout
{
....
}
为了使我的覆盖工作正常进行,我只是覆盖了fields类而不是checkout类,它的工作原理很吸引人。
工作守则
app / etc / modules / KNG_OneStepCheckout.xml
<config>
<modules>
<KNG_OneStepCheckout>
<active>true</active>
<codePool>local</codePool>
<depends>
<Idev_OneStepCheckout />
</depends>
</KNG_OneStepCheckout>
</modules>
</config>
应用程序/代码/本地/KNG/OneStepCheckout/etc/config.xml
<global>
<blocks>
<onestepcheckout>
<rewrite>
<fields>KNG_OneStepCheckout_Block_Fields</fields>
</rewrite>
</onestepcheckout>
</blocks>
<helpers>
<onestepcheckout>
<rewrite>
<checkout>KNG_OneStepCheckout_Helper_Checkout</checkout>
</rewrite>
</onestepcheckout>
</helpers>
</global>
应用程序/代码/本地/KNG/OneStepCheckout/Block/Fields.php
class KNG_OneStepCheckout_Block_Fields extends Idev_OneStepCheckout_Block_Fields {
public function getBillingFieldsOrder($fields = array()) {
....
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句