Domanda

Ho creato il file system.xml come sotto e imposta tutti i campi dipendono dal campo active, ma alcuni di essi non funzionano e visualizzano anche il campo active è disabilitato

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>
    ....
.

Nel file sopra il file get_settings non funziona, ma anche title funziona! Cosa è diverso tra loro?

e impostazioni.php in 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;
    }
}
.

Ma non ha usato $element nei codici!

È stato utile?

Soluzione

Ho appena testato il tuo codice e sembra funzionare bene sulla configurazione title.Non funziona sulla configurazione get_settings perché il JavaScript che esegue il lavoro dietro le quinte richiede di avere un campo di immissione con l'ID corretto.

Pertanto, per far funzionare questo, dovresti aggiungere un campo di input nascosto, può essere un campo di ingresso fittizio se ti piace, ma l'ID deve seguire le impostazioni di configurazione, quindi ti suggerisco di ispezionare l'elemento su uno deiAltri campi di input e segui l'assobile

Per fare questo solo il tuo Settings.php con quanto segue:

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;
}
.

questo è.Ricorda, il tag dipende solo funziona solo quando c'è un campo di input disponibile nella sorgente con ID corretto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top