ne dépendent pas de travail dans system.xml
-
12-12-2019 - |
Question
J'ai créé system.xml
fichier comme ci-dessous et de définir tous les champs dépendent active
mais certains d'entre eux ne fonctionne pas et l'écran, même active
le terrain est désactivé
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>
....
dans le fichier ci-dessus get_settings
ne fonctionne pas, mais title
travaillent ainsi !Quelle est la différence entre eux?
et Settings.php dans 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;
}
}
mais ne l'utilisez pas $element
dans les codes!
La solution
Viens de tester ton code et il semble fonctionner sur le title
config.Il ne fonctionne pas sur le get_settings
config car le Javascript qui ne le derrière de la scène de travail exige que vous ayez un champ de saisie avec l'ID correct.
Donc, pour obtenir que cela fonctionne, vous devez ajouter un champ caché, peut être un mannequin champ de saisie si vous le souhaitez, mais l'id doit suivre vos paramètres de configuration, donc je vous suggère d'inspecter l'élément sur l'un des autres champs de saisie et emboîter le pas
Pour ce faire, votre Settings.php
avec les éléments suivants:
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;
}
Thats it.Rappelez-vous, dépend de la balise ne fonctionne que quand il y a un champ de saisie disponibles dans la source avec le bon id.