美好的一天。 我在prestashop上有一个简单的模块,我想添加一个配置标志,一个用户可以启用/禁用配置模块的布尔值。真的很容易 我已经用“vikings”的方式完成了它,通过在tpl中使用一个表单然后用php读取POST变量。
但现在我想以适当的方式做到这一点。
到目前为止,我的形式是在模块中创建的:
protected function getConfigForm()
{
return array(
'form' => array(
'legend' => array(
'title' => $this->l('Settings'),
'icon' => 'icon-cogs',
),
'input' => array(
array(
'type' => 'switch',
'label' => $this->l('a label'),
'name' => 'MULTISHOP_LANGUAGE_MODE',
'is_bool' => true,
'desc' => $this->l('use any language on every shop'),
'values' => array(
array(
'id' => 'active_on',
'value' => true,
'label' => $this->l('Enabled')
),
array(
'id' => 'active_off',
'value' => false,
'label' => $this->l('Disabled')
)
)
)
),
'submit' => array(
'title' => $this->l('Save'),
),
),
);
}
然后我得到了设置和获取值的函数:
protected function getConfigFormValues()
{
return array(
'MULTISHOP_LANGUAGE_MODE' => Configuration::get('MULTISHOP_LANGUAGE_MODE', true)
);
}
/**
* Save form data.
*/
protected function postProcess()
{
Configuration::updateValue('MULTISHOP_LANGUAGE_MODE', Tools::getValue('MULTISHOP_LANGUAGE_MODE'));
}
我忘了什么?因为表单上的切换,永远不会改变,每次我重新加载表单时,开关都是“假”。
在提交(保存)表单后,db永远不会改变。
提前感谢。
更新:
数据库实际更改,在提交表单时,该字段的值变为NULL
答案 0 :(得分:0)
我设法解决了这个问题,我不知道为什么,但是用这种方式写这个功能会让一切都成为一种魅力。
true
请注意,我已删除了返回数组的第二个参数,即Array.init