Я хочу изменить стороннее расширение и переопределить его функциональность новым расширением. Но моя главная проблема в том, что, если стороннее расширение не включено или отсутствует в моей папке Magento? Я хочу установить зависимость, используя ifconfig в system.xml или config.xml, но я не уверен на уровне расширения, как проверить, присутствует ли расширение в папке. ТИА.
РЕДАКТИРОВАТЬ: Спасибо @Sander Mangel за ответ зависимости. Теперь позвольте мне быть более ясным.
Я легко могу установить зависимость, используя app / etc / modules / MyNameSpace_MyModule.xml, но когда мое стороннее расширение удаляется из системы, генерируется отчет об ошибке, и для его показа «Module» MyNameSpace_MyModule »требуется модуль« 3rdPartyExtension » и прекращается дальнейшее выполнение, поскольку оно имеет сгенерированное исключение, но что, если я захочу выполнить дальше без генерации исключения? Просто MyExtension не вступит в силу, если не будет 3-й части расширения без остановки magento для выполнения. Поэтому я спрашиваю, есть ли какие-либо средства, которые мы использовали для файлов макета для проверьте. ПРИМЕЧАНИЕ ifconfig здесь.
<reference name="sales.order.print">
<action method="setTemplate" ifconfig="3rdparty/config">
<template>mytemplate.phtml</template>
</action>
</reference>
Второе редактирование: благодаря Zyava. Я сделал то, что хотел, но сказал, что если я удалил стороннее расширение для ознакомительной цели, чтобы посмотреть, что произойдет ... Я создал свой system.xml, как показано ниже
<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>
Итак, вы можете видеть, что я просто указал одну вкладку на основе активации стороннего расширения. Но я полностью удалил стороннее расширение из моей системы, но все еще отображаются другие варианты сторонних расширений? Почему это показывает их, хотя я очистил свой кеш?
источник
payment_action
поле вы выбираетеOrder
, полеauthorization_honor_period
становится видимым.Зависимости могут быть установлены в вашем приложении / etc / modules XML. Magento проверит, доступно ли расширение.
Или используйте следующий код, чтобы проверить, включено ли расширение. Это можно сделать, создав вспомогательный метод в пространстве имен / Module / Helper / Data.php
источник