質問

Magento OnePageチェックアウトでクラスの書き換え問題があります。ローカルコードプールにカスタムモジュールがあり、コミュニティコードプールには同じクラスを拡張しているため、サードパーティの拡張機能があります。

依存ノードをに追加しようとしました modulea_name.xml 1つのモジュールのファイルがクラスを拡張します moduleb の中に OnePage.php ファイルですが、これは機能していません。

誰かが私にこれを行う方法について私に頭を上げてもらえますか?また、それ以来、私が依存関係を使用することは危険でしょうか moduleb さまざまなストア/ビューに対してのみ有効になる可能性があります。それは、従属モジュールが機能しなくなることを意味しますか?

援助をお願いします...

モジュリア

<global>
  <rewrite>
      <moduleA>
          <from><![CDATA[#^/checkout/onepage/#]]></from>
          <to>/moduleA/onepage/</to>
      </moduleA>
      <moduleA>
          <from><![CDATA[#^/checkout/cart/add/#]]></from>
          <to>/moduleA/cart/add/</to>
      </moduleA>
  </rewrite>

moduleb

<global>
    <models>
      <salesrep>
        <class>ModuleB_SalesRep_Model</class>
        <resourceModel>salesrep_mysql4</resourceModel>
      </salesrep>

      <salesrep_mysql4>
        <class>ModuleB_SalesRep_Model_Mysql4</class>
        <entities>
          <salesrep>
            <table>salesrep</table>
          </salesrep>
        </entities>
      </salesrep_mysql4>

      <checkout>
        <rewrite>
          <type_onepage>ModuleB_SalesRep_Model_Type_Onepage</type_onepage>
        </rewrite>
      </checkout>

      <modulebadminthemecontroller>
        <class>LucidPath_SalesRep_Controller</class>
      </modulebadminthemecontroller>
    </models>
</global>
役に立ちましたか?

解決

競合を解決するための3つの選択肢があります。

  • 競合するファイルからコードを別のファイルにマージし、書き換えます config.xml 1つ
  • 1つのconfig.xmlで書き換えをオフにしてから、競合する拡張機能PHPファイルを他の拡張子拡張にします
  • 使用 <depends> ある拡張機能を作成する機能は、別の拡張機能に依存します。その後、その順序で書き直します

例(オプション#2)

class A_Extension_Model_Type_Onepage extends Mage_Checkout_Model_Type_Onepage

あなたはそれを次のように変更します:

class A_Extension_Model_Type_Onepage extends B_Extension_Model_Type_Onepage

見る https://stackoverflow.com/questions/14815717/multiple-modules-overriding-same-core-file in-magento

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top