hängt davon ab, dass es nicht im System funktioniert.XML
-
12-12-2019 - |
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!
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.