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!

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top