Magento 2: Bidang tergantung pada system.xml saat bidang tidak dalam grup yang sama

10

Bagaimana Anda bisa mengatur <depends>bidang yang tidak berada dalam grup bidang yang sama

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
    <system>
        <section id="section" translate="label" type="text" sortOrder="200" showInDefault="1" showInWebsite="1" showInStore="1">
            <label>Name</label>
            <tab>tabname</tab>
            <resource>Namespace_ModuleName::method</resource>
            <group id="group" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
                <label>General Configuration</label>
                <field id="field" translate="label" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
                    <label>Enable</label>
                    <source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
                </field>
            </group>
            <group id="connection" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1">
                <label>Connection Configuration</label>
                <field id="disable_certificate_check" translate="label" type="select" sortOrder="30" showInDefault="1" showInWebsite="1" showInStore="1">
                    <label>Check</label>
                    <source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
                    <depends>
                        <field id="field">1</field>
                    </depends>
                </field>
            </group>
        </section>
    </system>
</config>
St3phan
sumber

Jawaban:

40

Field id dari depend node harus mengandung id bagian, grup dan field dari bidang yang ingin Anda andalkan

<depends>
    <field id="section_id/group_id/field_id">1</field>
</depends>
St3phan
sumber
Ya, coba dengan cara yang sama, tetapi ketika di pilih "Tidak" dari grup pertama lalu sembunyikan kedua grup, bisakah Anda menjelaskan jawaban Anda lebih lanjut.
Dhrumin
1
@ St3phan, Bagaimana kita bisa menyembunyikan seluruh grup?
mshakeel
@ mshakeel , saya tidak tahu apakah itu bisa tetapi biarkan saya punya sedikit waktu untuk menguji.
St3phan
1
@ St3phan, apakah itu menggunakan Javascript (dijawab). Bagikan jika Anda menemukan cara yang tepat.
mshakeel
Anda dapat menggunakan kode jQuery Anda, tentu saja.
St3phan
1

Sembunyikan Grup Konfigurasi

Untuk magento 2.1.x, Anda dapat menggunakan jQuery berikut untuk beralih Grup Konfigurasi bergantung:

<comment><![CDATA[
<script type="text/javascript">//<![CDATA[
    require(['jquery'], function(){
        if (jQuery('#field_id').val() == 'value_to_compare') {
            toggleDependantGroups(true);
        }

        jQuery('#field_id').change(function() {
            if (jQuery(this).val() == 'value_to_compare') {
                toggleDependantGroups(true);
            } else {
                toggleDependantGroups(false);
            }
        });

        function toggleDependantGroups(hide=true)
        {
            if (hide) {
                jQuery('#section-id').closest('div.section-config').hide();
                jQuery('#section-id').closest('div.section-config').hide();
                jQuery('#last-visible-section-id').closest('div.section-config').css('border-bottom-width', '0px');
            } else {
                jQuery('#section-id').closest('div.section-config').show();
                jQuery('#section-id').closest('div.section-config').show();
                jQuery('#last-visible-section-id').closest('div.section-config').css('border-bottom-width', '1px');
            }
        }
    });
</script>]]>

Ganti id jika perlu.

mshakeel
sumber
1
<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
    <system>
        <tab id="your_id" translate="label" sortOrder="1000">
            <label>your_label</label>
        </tab>
        <section id="your_id" translate="label" type="text" sortOrder="340" showInDefault="1" showInWebsite="1" showInStore="1">
            <label>your_label</label>
            <tab>your_tab</tab>
            <resource>Your_Module::config</resource>
            <group id="your_id" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
                <label>your_label</label>
                <field id="your_id" translate="label" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
                    <label>your_label</label>
                    <source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
                </field>
                <field id="your_id" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1">
                    <label>your_label</label>
                    <depends>
                        <field id="*/*/active">1</field>
                    </depends>
                </field>
                <field id="your_id" translate="label" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
                    <label>your_label</label>
                    <source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
                     <depends>
                        <field id="*/*/active">1</field>
                    </depends>
                </field>
            </group>
            <group id="your_id" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
                <label>your_label</label>
                <field id="your_id" translate="label" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
                    <label>your_label</label>
                    <source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
                </field>               
                <depends>
                    <field id="section_id/group_id/field_id">1</field>
                </depends>
            </group>



        </section>
    </system>
</config>
alex
sumber