Magento1: Yeni uzantının sistem XML'sinde bağımlılık nasıl ayarlanır


11

Üçüncü taraf uzantısını değiştirmek istiyorum ve yeni uzantı ile işlevselliğini geçersiz kılmak istiyorum. Ama benim asıl endişem, 3. taraf uzantı Magento klasörümde etkinleştirilmemişse veya yoksa? System.xml veya config.xml dosyasında ifconfig kullanarak bağımlılığı ayarlamak istiyorum ancak uzantı düzeyinde, uzantının klasörde olup olmadığını nasıl kontrol edeceğimi bilmiyorum. TIA.

EDIT: bağımlılık cevabı için @Sander Mangel teşekkürler. Şimdi daha açık olalım.

Kolayca app / etc / modules / MyNameSpace_MyModule.xml kullanarak bağımlılığı ayarlayabilirsiniz, ancak 3. taraf uzantı sistemden kaldırıldığında, hata raporu oluşturulur ve onun "Modül" MyNameSpace_MyModule "modül" 3rdPartyExtension "gerektirir ve daha fazla yürütme durdu neden olur oluşturulan istisna ama istisna oluşturmadan daha fazla yürütmek istiyorsam? 3.partiextension yürütmek için magento durdurmadan mevcut değilse sadece MyExtension etkili olmayacaktır.Bu yüzden düzen dosyaları üzerinde yaptığımız gibi herhangi bir tesis var soruyorum NOT ifconfig burada.

<reference name="sales.order.print">
        <action method="setTemplate" ifconfig="3rdparty/config">
            <template>mytemplate.phtml</template>
        </action>
    </reference>

İkinci Düzenleme: Zyava'ya teşekkürler. Ne istediğimi yaptım ama ne olduğunu görmek için deneme amacıyla 3. taraf uzantımı sildiysem söyledim .. system.xml'i aşağıdaki gibi oluşturdum

<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>

Böylece, üçüncü taraf uzantısının etkinleştirilmesine dayalı olarak bir sekme belirlediğimi görebilirsiniz. Ancak 3. taraf uzantıyı sistemimden tamamen sildim, ancak yine de 3. taraf uzantılarının diğer seçeneklerini gösteriyor mu? Önbelleğimi temizlememe rağmen neden onları gösteriyor?

Yanıtlar:


14

İhtiyacınız olanı anladığım kadarıyla, <dependsetiketi kullanmalısınız app/code/core/Mage/Paypal/etc/system.xml:

<payment_action translate="label">
    <label>Payment Action</label>
    <config_path>payment/paypal_express/payment_action</config_path>
    <frontend_type>select</frontend_type>
    <source_model>paypal/system_config_source_paymentActions_express</source_model>
    <sort_order>30</sort_order>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <shared>1</shared>
</payment_action>

<authorization_honor_period translate="label comment">
    <label>Authorization Honor Period (days)</label>
    <comment>Specifies what the Authorization Honor Period is on the merchant’s PayPal account. It must mirror the setting in PayPal.</comment>
    <config_path>payment/paypal_express/authorization_honor_period</config_path>
    <frontend_type>text</frontend_type>
    <sort_order>50</sort_order>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <shared>1</shared>
    <depends><payment_action>Order</payment_action></depends> <!-- see this line -->
</authorization_honor_period>

Çok teşekkür ederim ... Bunu çekirdek xml'de bulabilirim ama ne yaptığını tam olarak bilmiyorum.
Kamal Joshi

Lütfen ikinci düzenlememe bakın ...
Kamal Joshi

Varsa payment_actionbu alanda seçtiğiniz Order, alan authorization_honor_periodgörünür hale gelir.
Dmytro Zavalkin

1

Bağımlılıklar uygulamanızın / etc / module XML'inizden ayarlanabilir. Magento, uzantının mevcut olup olmadığını kontrol edecektir.

<?xml version="1.0"?>
<config>
    <modules>
        <Your_Extension>
            <active>true</active>
            <codePool>community</codePool>
            <depends>
                <3thparty_Extension/>
            </depends>
        </Your_Extension>
    </modules>
</config>

Veya bir uzantının etkin olup olmadığını kontrol etmek için aşağıdaki kodu kullanın. Bu, Namespace / Module / Helper / Data.php içinde bir yardımcı yöntem oluşturularak yapılabilir

class Namespace_Module_Helper_Data extends Mage_Core_Helper_Abstract 
{

   public function extensionEnabled()
   {
      return Mage::getStoreConfig('advanced/modules_disable_output/Namespace_Module');
   }
}

Cevabınız için teşekkürler .. Uzantıyı etkinleştirip etkinleştirmemek için ne yapmam gerekir?
Kamal Joshi

Hey Kamal, Mage :: getStoreConfig ('advanced / modules_disable_output / Namespace_Module'); kullanabilirsiniz. Kodu awnser'ım içine ekledim
Sander Mangel

evet bu doğru ama normalde olduğu gibi system.xml'i kontrol etmek istersem ifconfig kullanarak theme.xml temasını kontrol edebilir miyiz?
Kamal Joshi

Yapılandırma alanlarınızı yalnızca sistem> yapılandırmasındaki 3. taraf sekmesi varsa eklensin mi?
Sander Mangel

Hiçbir actaully seçime dayalı daha fazla seçenek sunmak istiyorum ..
Kamal Joshi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.