Quero modificar a extensão de terceiros e substituir sua funcionalidade pela nova extensão. Mas minha principal preocupação é se a extensão de terceiros não estiver ativada ou presente na minha pasta Magento? Eu quero definir a dependência usando ifconfig no system.xml ou config.xml, mas não tenho certeza no nível da extensão de como verificar se a extensão está presente na pasta. TIA.
EDIT: Obrigado a @Sander Mangel pela resposta de dependência. Agora, deixe-me ser mais claro.
Posso definir facilmente a dependência usando app / etc / modules / MyNameSpace_MyModule.xml, mas quando minha extensão de terceiros é removida do sistema, um relatório de erro é gerado e sua exibição "Module" MyNameSpace_MyModule "requer o módulo" 3rdPartyExtension " e interrompeu a execução posterior, pois exceção gerada, mas e se eu quiser executar mais sem gerar exceção? Simplesmente MyExtension não terá efeito se 3rdpartyextension não estiver presente sem interromper a execução do magento. É por isso que estou perguntando se existe algum tipo de instalação, como fizemos nos arquivos de layout para NOTA: ifconfig aqui.
<reference name="sales.order.print">
<action method="setTemplate" ifconfig="3rdparty/config">
<template>mytemplate.phtml</template>
</action>
</reference>
Segunda Edição: Agradecimentos a Zyava. Fiz o que quero, mas digo: Se eu excluí minha extensão de terceiros para fins de avaliação, para ver o que acontece .. Criei meu system.xml como abaixo
<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>
Então você pode ver que eu simplesmente especifiquei uma guia com base na ativação da extensão de terceiros. Mas excluí totalmente as extensões de terceiros do meu sistema, mas ainda está mostrando outras opções de extensões de terceiros? Por que está mostrando a eles que eu limpei meu cache?
fonte
payment_action
campo selecionadoOrder
, o campoauthorization_honor_period
se torna visível.Dependências podem ser definidas no XML do aplicativo / etc / modules. Magento irá verificar se a extensão está disponível.
Ou use o código a seguir para verificar se uma extensão está ativada. Isso pode ser feito criando um método auxiliar em Namespace / Module / Helper / Data.php
fonte