我试图用本地代码池中的另一个插件覆盖本地代码池中的插件,但是我需要覆盖的块不会覆盖。我的配置xml中的帮助程序覆盖得很好。关于我的问题可能是什么?
我还使用了模块冲突检测器,并确保我们的magento实例中没有任何冲突。
模块我试图覆盖
应用程序/代码/本地/ IDEV / OneStepCheckout的/ etc / config.xml中
<blocks>
<onestepcheckout>
<class>Idev_OneStepCheckout_Block</class>
</onestepcheckout>
</blocks>
应用程序/代码/本地/ IDEV / OneStepCheckout /砌块/ Checkout.php
class Idev_OneStepCheckout_Block_Checkout extends Mage_Checkout_Block_Onepage_Abstract {
public function getBillingFieldsOrder($fields = array()){
....
}
}
我的模块
应用程序的/ etc /模块/ 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 /砌块/ Checkout.php
class KNG_OneStepCheckout_Block_Checkout extends Idev_OneStepCheckout_Block_Checkout {
public function getBillingFieldsOrder($fields = array()) {
....
}
}
答案 0 :(得分:2)
我发现他们的模块已经有另一个类覆盖了我试图覆盖的类。当我检查冲突时,不确定为什么它没有显示为冲突。
他们的班级已经超越
应用程序/代码/本地/ IDEV / OneStepCheckout /砌块/ Fields.php
class Idev_OneStepCheckout_Block_Fields extends Idev_OneStepCheckout_Block_Checkout
{
....
}
为了使我的覆盖工作,我只是覆盖了字段类而不是结帐类,它就像一个魅力。
工作代码
应用程序的/ etc /模块/ 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 /砌块/ Fields.php
class KNG_OneStepCheckout_Block_Fields extends Idev_OneStepCheckout_Block_Fields {
public function getBillingFieldsOrder($fields = array()) {
....
}
}