在Prestashop中保存(并检索)模块配置

时间:2016-07-06 12:41:41

标签: php module prestashop

美好的一天。 我在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

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题,我不知道为什么,但是用这种方式写这个功能会让一切都成为一种魅力。

true

请注意,我已删除了返回数组的第二个参数,即Array.init