Question

J'ai un problème de réécriture de classe dans Magento OnePage Commander comme j'ai un module personnalisé dans la piscine de code local et une extension tierce partie dans la piscine de code communautaire à la fois l'extension de la même classe ...

J'ai essayé d'ajouter un noeud dépend du ModuleA_Name.xml fichier d'un module puis étendre la classe de ModuleB Onepage.php fichier mais cela n'a pas fonctionné.

Quelqu'un pourrait-il me donner tête sur la façon de le faire, je sais qu'il ya une autre façon de le faire en utilisant un observateur mais je ne pouvais vraiment juste besoin d'une solution à l'heure actuelle? Aussi, serait-il dangereux pour moi d'utiliser une dépendance depuis ModuleB ne peut être activé pour différents magasins / vues que cela voudrait dire le module à charge ne serait plus le travail?

Merci d'avance pour l'aide ...

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>
Était-ce utile?

La solution

Vous avez 3 choix pour résoudre les conflits:

  • Fusionner le code d'un fichier dans un autre conflit et couper le rewrite config.xml dans un
  • Désactiver la réécriture dans un config.xml puis faire l'extension en conflit fichier PHP étendre l'autre extension
  • Utilisez la capacité de <depends> pour faire une extension de dépendre d'une autre. Ils seront ensuite réécrire dans cet ordre

Exemple (option 2)

class A_Extension_Model_Type_Onepage extends Mage_Checkout_Model_Type_Onepage

Vous changerait à:

class A_Extension_Model_Type_Onepage extends B_Extension_Model_Type_Onepage

Voir https://stackoverflow.com/questions/14815717/ plusieurs modules-remplaçant-même-core-file-in-magento

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top