У меня есть проблема переписывания классов в Magento Onepage Checkout, так как у меня есть пользовательский модуль в локальном пуле кода и стороннее расширение в пуле кода сообщества, оба расширяющие один и тот же класс ...
Я попытался добавить зависимый узел в файл ModuleA_Name.xml одного модуля, а затем расширить класс ModuleB в файле Onepage.php, но это не сработало.
Может ли кто-нибудь дать мне понять, как это сделать, я знаю, что есть другой способ сделать это с помощью Обозревателя, но мне действительно может понадобиться решение в данный момент? Кроме того, было бы опасно для меня использовать зависимость, так как ModuleB может быть включен только для разных хранилищ / представлений, что будет означать, что зависимый модуль больше не будет работать?
Заранее спасибо за помощь ...
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>
источник
Onepage
конкретно класс, блок или модель?Ответы:
У вас есть 3 варианта разрешения конфликтов:
<depends>
возможность сделать одно расширение зависимым от другого. Затем они перепишут в таком порядкеПример (вариант № 2)
Вы бы изменили его на:
См. Https://stackoverflow.com/questions/14815717/multiple-modules-overriding-same-core-file-in-magento
источник
section allow
но он не становится активным ...