Frage

Ich habe geschaffen system.xml datei wie unten und setze alle Felder abhängig von active feld, aber einige von ihnen funktionieren nicht und werden sogar angezeigt active feld ist Behinderte

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

in der obigen Datei get_settings funktioniert aber nicht title arbeite auch !Was ist zwischen ihnen anders?

und Einstellungen.php im 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;
    }
}

aber nicht benutzt $element in Codes!

War es hilfreich?

Lösung

Ich habe gerade Ihren Code getestet und er scheint auf dem gut zu funktionieren title konfig.Es funktioniert nicht auf der get_settings konfiguration, weil das Javascript, das die Arbeit hinter den Kulissen erledigt, erfordert, dass Sie ein Eingabefeld mit der richtigen ID haben.

Damit dies funktioniert, müssten Sie ein verstecktes Eingabefeld hinzufügen, das auf Wunsch ein Dummy-Eingabefeld sein kann, aber die ID muss Ihren Konfigurationseinstellungen entsprechen. Daher würde ich vorschlagen, dass Sie das Element in einem der anderen überprüfen Eingabefelder und folge nach

Um dies zu tun, nur Ihre Settings.php mit den folgenden:

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

Das war's.Denken Sie daran, dass das depends-Tag nur funktioniert, wenn in der Quelle ein Eingabefeld mit den richtigen IDs verfügbar ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top