Frage

Ich habe ein Problem mit einem Umschreiben in Magento Onepage -Kasse, da ich ein benutzerdefiniertes Modul im lokalen Codepool und eine Erweiterung von Drittanbietern im Community -Code -Pool habe, die beide dieselbe Klasse erweitern ...

Ich habe versucht, einen abhängigen Knoten zum hinzuzufügen Modulea_name.xml Datei eines Moduls dann die Klasse von erweitern Moduleb in dem Onepage.php Datei, aber das hat nicht funktioniert.

Könnte mir jemand die Möglichkeit geben, wie es das tut. Ich weiß, dass es einen anderen Weg gibt, dies mit einem Beobachter zu tun, aber ich könnte im Moment wirklich nur eine Lösung brauchen? Wäre es auch für mich gefährlich, eine Abhängigkeit zu verwenden Moduleb Darf nur für verschiedene Speicher/Ansichten aktiviert werden. Würde dies bedeuten, dass das abhängige Modul nicht mehr funktionieren würde?

Vielen Dank im Voraus für die Hilfe ...

Modulea

<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>
War es hilfreich?

Lösung

Sie haben 3 Auswahlmöglichkeiten zur Lösung von Konflikten:

  • Führen Sie den Code von einer widersprüchlichen Datei in eine andere zusammen und schreiben Sie das Umschreiben aus config.xml in Eins
  • Schreiben Sie die Umschreibung in einer config.xml aus und lassen
  • Verwenden Sie das <depends> Fähigkeit, eine Erweiterung von einer anderen abhängig zu machen. Sie werden dann in dieser Reihenfolge umschreiben

Beispiel (Option 2)

class A_Extension_Model_Type_Onepage extends Mage_Checkout_Model_Type_Onepage

Sie würden es ändern in:

class A_Extension_Model_Type_Onepage extends B_Extension_Model_Type_Onepage

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top