Mam problem z przepisem klasy w Magento Onepage Checkout, ponieważ mam niestandardowy moduł w lokalnej puli kodów i rozszerzenie strony trzeciej w puli kodów społeczności, które rozszerzają tę samą klasę ...
Próbowałem dodać węzeł zależny do pliku ModuleA_Name.xml jednego modułu, a następnie rozszerzyć klasę ModuleB w pliku Onepage.php , ale to nie zadziałało.
Czy ktoś mógłby mi powiedzieć, jak to zrobić? Wiem, że istnieje inny sposób, aby to zrobić za pomocą Obserwatora, ale w tej chwili naprawdę potrzebuję rozwiązania? Ponadto, czy używanie przeze mnie zależności byłoby niebezpieczne, ponieważ moduł B można włączyć tylko dla różnych sklepów / widoków, czy oznaczałoby to, że moduł zależny przestałby działać?
Z góry dziękuję za pomoc ...
Moduł A.
<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>
Moduł B.
<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>
źródło
Onepage
klasa konkretnie, blok czy model?Odpowiedzi:
Masz 3 możliwości rozwiązania konfliktów:
<depends>
możliwości uzależnienia jednego rozszerzenia od drugiego. Następnie przepiszą w tej kolejnościPrzykład (opcja nr 2)
Zmieniłbyś to na:
Zobacz /programming/14815717/multiple-modules-overriding-same-core-file-in-magento
źródło
section allow