在Magento v1.5.0.1中,有没有人知道在system.xml中使用<frontend_type>checkbox</frontend_type>
配置指令的问题?即使是最简单的哑模块,只有一个配置变量而且没有块/模型,如果我勾选方框并点击&#34; Save&#34;它重新加载页面并取消选中复选框,即使它表示配置已成功保存。我搜索了代码,它只在几个地方使用过。大多数情况下,人们将<frontend_type>select</frontend_type>
与<source_model>adminhtml/system_config_source_yesno</source_model>
一起使用。这有效,但为什么复选框也不起作用?或者我误解了Magento复选框假定如何工作?
如果有帮助,这是我的文件。在这种情况下,我也添加了一个文本字段变量。如果我输入文本并点击保存,则会保存,但复选框不会:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Brian_Stupid>
<version>0.1.0</version>
</Brian_Stupid>
</modules>
<adminhtml>
<acl>
<resources>
<admin>
<children>
<system>
<children>
<config>
<children>
<stupid translate="title">
<title>Stupid Crap</title>
</stupid>
</children>
</config>
</children>
</system>
</children>
</admin>
</resources>
</acl>
</adminhtml>
</config>
<?xml version="1.0"?>
<config>
<sections>
<stupid translate="label">
<label>Stupid Test</label>
<tab>catalog</tab>
<frontend_type>text</frontend_type>
<sort_order>998</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<groups>
<debug translate="label">
<label>Debugging</label>
<frontend_type>text</frontend_type>
<sort_order>5</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<fields>
<debugmode translate="label">
<label>Debug Mode Enable</label>
<comment>If enabled, does not alter database. Prints debug messages and dies</comment>
<frontend_type>checkbox</frontend_type>
<sort_order>5</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</debugmode>
<texttest translate="label">
<label>Text Test</label>
<frontend_type>text</frontend_type>
<sort_order>10</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</texttest>
</fields>
</debug>
</groups>
</stupid>
</sections>
</config>
答案 0 :(得分:6)
我发布了我的解决方案,因为我面临着类似的情况
基本上问题是magento只保存db中的输入参数'value',而在输入复选框中,重要值是'Checked'。
我尝试将一些js设置为当复选框更改时根据此设置输入值以及当页面加载相反时...这不起作用。
替代解决方案:使用下拉列表
<debugmode translate="label"> <label>Debug Mode Enable</label> <comment>If enabled, does not alter database. Prints debug messages and dies</comment> <frontend_type>select</frontend_type> <source_model>adminhtml/system_config_source_yesno</source_model> <sort_order>10</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> </debugmode>
答案 1 :(得分:0)
我花了一些时间来获得解决方案,但没有一个,除了一个。
查看Mage-Folder中的PayPal模块。这是唯一使用Checkboxed的模块,但是它们设置得非常困难。
我想这就是每个人都使用带有yesno或enabledisable源的select的原因。