system.xmlでは機能しないように依存します
-
12-12-2019 - |
質問
私は以下のようなsystem.xml
ファイルを作成し、すべてのフィールドをactive
フィールドに依存しますが、それらの一部が機能しないため、active
フィールドでも表示されず表示されていません disabled
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>
....
.
上記のファイルにget_settings
が機能しませんが、title
が機能します。
それらの間で何が異なりますか?
とsettings.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;
}
}
.
コードで$element
を使用していませんでした!
解決
コードをテストしたばかりで、title
設定でうまく機能するようです。シーンの背後にあるJavaScriptは正しいIDを持つ入力フィールドが必要なJavaScriptであるため、get_settings
設定では機能しません。
その機能を得るためには、隠された入力フィールドを追加する必要があります。その他の入力フィールドとフォロースーツ
これを使用してSettings.php
だけを行うには:
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;
}
.
それは。require descentsタグは、正しいIDのソースで利用可能な入力フィールドがある場合にのみ機能します。
所属していません magento.stackexchange