Magento1: নতুন এক্সটেনশনের এক্সএমএল সিস্টেমের মধ্যে কীভাবে নির্ভরতা সেট করবেন


11

আমি তৃতীয় পক্ষের এক্সটেনশানটি সংশোধন করতে চাই এবং নতুন এক্সটেনশনের সাথে এর কার্যকারিতা ওভাররাইড করতে চাই। তবে আমার প্রধান উদ্বেগটি হল যদি তৃতীয় পক্ষের এক্সটেনশন সক্ষম না হয় বা আমার ম্যাজেন্টো ফোল্ডারে উপস্থিত না হয়? আমি system.xml বা config.xml এ ifconfig ব্যবহার করে নির্ভরতা নির্ধারণ করতে চাই তবে এক্সটেনশন স্তরে আমি নিশ্চিত নই যে কীভাবে এক্সটেনশানটি ফোল্ডারে উপস্থিত রয়েছে তা কীভাবে পরীক্ষা করতে হবে। টিয়া।

সম্পাদনা: নির্ভরতা উত্তরের জন্য @ স্যান্ডার ম্যানজেলকে ধন্যবাদ এখন আমাকে আরও পরিষ্কার করা যাক।

আমি অ্যাপ্লিকেশন / ইত্যাদি / মডিউলগুলি / মাইনেমস্পেস_মাইমোডিউল.এক্সএমএল ব্যবহার করে সহজেই নির্ভরতা নির্ধারণ করতে পারি তবে যখন আমার তৃতীয় পক্ষের এক্সটেনশনটি সিস্টেম থেকে সরানো হয় তখন ত্রুটি প্রতিবেদন তৈরি হয় এবং এর "মডিউল" মাইনেমস্পেস_মাইমডিউল " দেখানো মডিউল" 3 য় পার্ট এক্সটেনশন "প্রয়োজন এবং এর ফলে আরও কার্যকর করা বন্ধ করে দেয় ব্যতিক্রম উত্পন্ন হয়েছে তবে আমি কীভাবে ব্যতিক্রম উত্পন্ন না করে আরও কার্যকর করতে চাই? যদি থার্ড পার্ট এক্সটেনশনটি কার্যকর না করে ম্যাজেন্টো বন্ধ না করেই উপস্থিত থাকে তবে মাই এক্সটেনশন কার্যকর হবে না। সুতরাং আমি জিজ্ঞাসা করছি যে লেআউট ফাইলগুলিতে আমরা যেমন করেছি তেমন কোনও সুবিধা রয়েছে এখানে নোট ifconfig।

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

দ্বিতীয় সম্পাদনা: জ্যাভা ধন্যবাদ। আমি যা করতে চাই তা করেছি তবে বলছি কি হয় তা দেখার জন্য যদি আমি আমার ২ য় পক্ষের এক্সটেনশনটি মুছে ফেলি তবে .. আমি আমার সিস্টেম তৈরি করেছি ml

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

সুতরাং আপনি দেখতে পাচ্ছেন যে আমি তৃতীয় পক্ষের এক্সটেনশন সক্রিয়করণের ভিত্তিতে কেবল একটি ট্যাব নির্দিষ্ট করেছি specified তবে আমি আমার সিস্টেম থেকে তৃতীয় পক্ষের এক্সটেনশানটি পুরোপুরি মুছে ফেলেছি কিন্তু তবুও এটি তৃতীয় পক্ষের এক্সটেনশনের অন্যান্য বিকল্পগুলি দেখায়? আমি আমার ক্যাশে সাফ করে দিলেও কেন এটি প্রদর্শিত হচ্ছে?

উত্তর:


14

আপনার যা প্রয়োজন আমি যতদূর বুঝতে পেরেছি, আপনার <dependsট্যাগ ব্যবহার করা উচিত , উদাহরণস্বরূপ 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>

আপনাকে অনেক ধন্যবাদ ... আমি এটি মুল এক্সএমএলে খুঁজে পেতে পারি তবে এটি কী করে ঠিক তা জানি না।
কামাল জোশী

দয়া করে আমার দ্বিতীয় সম্পাদনাটি উল্লেখ করুন ...
কামাল যোশি

হতে পারে কিভাবে payment_actionক্ষেত্র নির্বাচন Order, ক্ষেত্র authorization_honor_periodদৃশ্যমান হয়।
Dmytro জাভালকিন

1

নির্ভরতা আপনার অ্যাপ্লিকেশন / ইত্যাদি / মডিউলগুলিতে এক্সএমএল সেট করা যেতে পারে। Magento এক্সটেনশন উপলব্ধ কিনা তা পরীক্ষা করবে।

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

অথবা কোনও এক্সটেনশন সক্ষম রয়েছে কিনা তা পরীক্ষা করতে নীচের কোডটি ব্যবহার করুন। নেমস্পেস / মডিউল / হেল্পার / ডেটা.এফপিএলে একটি সহায়ক পদ্ধতি তৈরি করে এটি করা যায়

class Namespace_Module_Helper_Data extends Mage_Core_Helper_Abstract 
{

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

আপনার উত্তরের জন্য ধন্যবাদ .. আমাকে কি এক্সটেনশন সক্ষম করা আছে কিনা তা পরীক্ষা করতে হবে কিনা?
কামাল যোশি

আরে কামাল, আপনি Mage :: getStoreConfig ('উন্নত / মডিউল_ডিজিবল_আউটপুট / নেমস্পেস_মডিউল') ব্যবহার করতে পারেন; আমি আমার আনসারটিতে কোডটি যুক্ত করেছি
স্যান্ডার

হ্যাঁ এটি সত্য তবে আমি যদি if.figfig ব্যবহার করে সাধারণত থিমের লেআউট.এক্সএমএল পরীক্ষা করতে পারি তবে সিস্টেম.এক্সএমএল চেক করতে চাইলে কী হয়?
কামাল যোশি

সুতরাং কেবলমাত্র আপনার কনফিগারেশন ক্ষেত্রগুলি যুক্ত করে যদি সিস্টেম> কনফিগারেশনে 3 য় পক্ষের ট্যাব উপস্থিত থাকে?
স্যান্ডার মঙ্গেল

নির্বাচনের উপর ভিত্তি করে কোনও বিকল্পই আর বিকল্পগুলি সরবরাহ করতে চায় না ..
কামাল জোশী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.