system.xml las dependencias a través de grupos/conjuntos de campos
-
13-12-2019 - |
Pregunta
El system.xml nos permite hacer la visibilidad de los campos individuales dependen de los valores de otros campos.El goto artículo es, por supuesto, de Alan Tormenta: En La Profundidad De Magento De Configuración Del Sistema
Se ve algo como esto (estoy usando 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 esto parece sólo trabajar con campos en el interior del mismo grupo/fieldset (<notes>
en este ejemplo), quiero saber:es allí una manera de hacer <hello_message>
a partir de la <messages>
grupo depende de <enabled>
a partir de la <notes>
grupo?
Solución
Después de consultar el correspondiente archivo de núcleo un grupo de las cruces/fieldset <depends>
se parece a esto:
<!-- … -->
<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>
<!-- … -->
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange