Chcę zmodyfikować rozszerzenie innej firmy i zastąpić jego funkcjonalność nowym rozszerzeniem. Ale moim głównym problemem jest to, czy rozszerzenie trzeciej strony nie jest włączone lub obecne w moim folderze Magento? Chcę ustawić zależność za pomocą ifconfig w pliku system.xml lub config.xml, ale nie jestem pewien na poziomie rozszerzenia, jak sprawdzić, czy rozszerzenie jest obecne w folderze. TIA
EDYCJA: Dzięki @Sander Mangel za odpowiedź zależności. Teraz pozwól mi być bardziej zrozumiały.
Mogę łatwo ustawić zależność za pomocą aplikacji / etc / modules / MyNameSpace_MyModule.xml, ale gdy moje rozszerzenie innej firmy zostanie usunięte z systemu, generowany jest raport o błędzie, a jego komunikat „Moduł” MyNameSpace_MyModule ”wymaga modułu„ 3rdPartyExtension ” i zatrzymał dalsze wykonywanie, ponieważ wygenerowany wyjątek, ale co jeśli chcę wykonać dalej bez generowania wyjątku? Po prostu MyExtension nie zadziała, jeśli nie będzie trzeciego rozszerzenia partycji bez zatrzymania wykonywania programu magento. Dlatego pytam, czy istnieje jakakolwiek ułatwienie, jak w przypadku plików układu sprawdź UWAGA UWAGA tutaj.
<reference name="sales.order.print">
<action method="setTemplate" ifconfig="3rdparty/config">
<template>mytemplate.phtml</template>
</action>
</reference>
Druga edycja: Dzięki Zyava. Zrobiłem, co chcę, ale powiedz, że jeśli usunąłem rozszerzenie innej firmy w celu przetestowania, aby zobaczyć, co się stanie .. Utworzyłem system.xml jak poniżej
<config>
<sections>
<payment>
<groups>
<3rdparty extension translate="label" module="payment">
<label>3rd Party</label>
<frontend_type>text</frontend_type>
<sort_order>1</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<fields>
<disallowedcustomergroups translate="label comment">
<label>Disallowed Customer Groups</label>
<frontend_type>multiselect</frontend_type>
<sort_order>120</sort_order>
<source_model>adminhtml/system_config_source_customer_group</source_model>
<config_path>mymodule/disallowed_customer_groups</config_path>
<comment><![CDATA[Press control and select multiple groups]]></comment>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<depends><active>1</active></depends>
</disallowedcustomergroups>
</fields>
</3rdpartyextension>
</groups>
</payment>
</sections>
</config>
Możesz więc zobaczyć, że po prostu określiłem jedną kartę na podstawie aktywacji rozszerzenia innej firmy. Ale usunąłem rozszerzenie trzeciej strony całkowicie z mojego systemu, ale nadal wyświetla inne opcje rozszerzeń innych firm? Dlaczego pokazuje je, mimo że wyczyściłem pamięć podręczną?
źródło
payment_action
wybierzeszOrder
pole, pole stanieauthorization_honor_period
się widoczne.Zależności można ustawić w pliku XML aplikacji / etc / modułów. Magento sprawdzi, czy rozszerzenie jest dostępne.
Lub użyj następującego kodu, aby sprawdzić, czy rozszerzenie jest włączone. Można to zrobić, tworząc metodę pomocniczą w Namespace / Module / Helper / Data.php
źródło