dependencias system.xml entre grupos / conjuntos de campos


12

System.xml nos permite hacer que la visibilidad de los campos individuales dependa de los valores de otros campos. El artículo de goto es, por supuesto, de Alan Storm: In Depth Magento System Configuration

Se parece a esto (estoy tomando prestado su código de ejemplo aquí):

Location: app/code/local/Alanstormdotcom/Helloworld/etc/system.xml

<config>
<tabs>
    <helloconfig translate="label" module="helloworld">
        <label>Hello Config</label>
        <sort_order>99999</sort_order>
    </helloconfig>
</tabs>
<sections>
    <helloworld_options translate="label" module="helloworld">
        <label>Hello World Config Options</label>
        <tab>helloconfig</tab>
        <frontend_type>text</frontend_type>
        <sort_order>1000</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
        <groups>
            <notes translate="label">
                <label>Demo Of Config Fields NOTES</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>
                    <enabled translate="label">
                        <label>Enabled</label>
                        <frontend_type>select</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>
                    </enabled>
                    <hello_note>
                        <label>Message</label>
                        <frontend_type>text</frontend_type>
                        <sort_order>2</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>1</show_in_store>
                        <depends>
                            <enabled>1</enabled>
                        </depends>
                    </hello_note>
                </fields>
            </notes>
            <messages translate="label">
                <label>Demo Of Config Fields MESSAGES</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>
                    <hello_message>
                        <label>Message</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>
                    </hello_message>
                    <hello_time>
                        <label>Time to Say Hello</label>
                        <frontend_type>time</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>
                    </hello_time>
                </fields>
            </messages>
        </groups>
    </helloworld_options>
</sections>

Como parece que esto solo funciona con campos dentro del mismo grupo / conjunto de campos ( <notes>en este ejemplo), quiero saber: ¿hay alguna forma de hacer que <hello_message>el <messages>grupo dependa <enabled>del <notes>grupo?

Respuestas:


10

Después de consultar el archivo central apropiado, un grupo cruzado / conjunto de campos se <depends>ve así:

<!-- … -->
<hello_message>
    <label>Message</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>
    <depends>
        <enabled>
            <fieldset>notes</fieldset>
            <value>1</value>
        </enabled>
    </depends>
</hello_message>
<!-- … -->
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.