dependen no de trabajo en system.xml
-
12-12-2019 - |
Pregunta
He creado system.xml
archivo como el de abajo, y el conjunto de todos los campos dependen de active
campo, pero algunos de ellos no funciona y la pantalla active
campo movilidad
system.xml
<fields>
<active translate="label">
<label>Enabled</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_yesno</source_model>
<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>
</active>
<get_settings translate="label">
<label>Account Info</label>
<frontend_type>label</frontend_type>
<frontend_model>module/adminhtml_settings</frontend_model>
<sort_order>3</sort_order>
<show_in_default>1</show_in_default>
<depends><active>1</active></depends>
</get_settings>
<title translate="label">
<label>Title</label>
<frontend_type>text</frontend_type>
<sort_order>4</sort_order>
<show_in_default>1</show_in_default>
<depends><active>1</active></depends>
</title>
....
en el archivo de arriba get_settings
no funciona, pero title
trabajar así !Lo que es diferente entre ellos?
y Settings.php en module/adminhtml_settings
class Name_Module_Block_Adminhtml_Settings extends Mage_Adminhtml_Block_System_Config_Form_Field
{
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
{
....
....
return $html;
}
}
pero no los uso $element
en los códigos!
Solución
Sólo probado el código y parece que funciona bien en el title
config.No funciona en el get_settings
config porque el Javascript que hace el detrás de las escenas de trabajo requiere que usted tenga un campo de entrada con el ID correcto.
Así que para conseguir que esto funcione, habría que añadir un oculto campo de entrada, puede ser un maniquí de campo de entrada, si te gusta, pero el id debe seguir su configuración, por lo que sugiero que inspeccionar elemento en uno de los otros campos de entrada y seguir su ejemplo
Para ello, basta con que su Settings.php
con la siguiente:
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
{
$html = $element->getElementHtml();
$html .= '<input id="name_module_get_settings" name="groups[module_name][fields][titles][value]" value="" class=" input-text" type="hidden">';
/** do what ever you want here **/
return $html;
}
Eso es todo.Recuerda, el que depende de la etiqueta sólo funciona cuando hay un campo de entrada disponible en la fuente con la correcta identificación.