Module 预冲模

Module 预冲模,module,prestashop,Module,Prestashop,我目前正在为prestashop开发一个模块,但我找不到有关在数据库中注册数据的信息。你知道怎么做吗 我开始在控制器中创建表单,如下所示: /** * Assign template vars related to page content * @see FrontController::initContent() */ public function initContent() { parent::initContent(); $this->setTemplate

我目前正在为prestashop开发一个模块,但我找不到有关在数据库中注册数据的信息。你知道怎么做吗

我开始在控制器中创建表单,如下所示:

/**
 * Assign template vars related to page content
 * @see FrontController::initContent()
 */
public function initContent()
{
    parent::initContent();

    $this->setTemplate('upload.tpl');
}

public function renderForm()
{
    $fields_form = array(
        'form' => array(
            'input' => array(
                array(
                    'type' => 'file',
                    'label' => $this->l('Insert file here.'),
                    'name' => 'FILE_NAME',
                    'required' => true
                ),
            ),
            'submit' => array(
                'title' => $this->l('Save'),
            )
        ),
    );

    $helper = new HelperForm();
    $helper->show_toolbar = false;
    $helper->table = $this->table;
    $lang = new Language((int)Configuration::get('PS_LANG_DEFAULT'));
    $helper->default_form_language = 1;
    $helper->fields_value['FILE_NAME'] = "";
    $this->fields_form = array();
    $helper->submit_action = 'btnSubmit';

    return $helper->generateForm(array($fields_form));
}

谢谢

实际上,您必须自己处理表单的响应。 简短的回答是“在模块PHP主文件中执行类似操作”:

updateValue($key,$value)在数据库中存储简单字符串。您可以添加一些特性(请参见Configuration.php类)。
最好的处理方法是检查他们在modules/mailalerts/mailalerts.php中做了什么,以便更好地了解如何做。这是一个很好的例子。

实际上,您必须自己处理表单的响应。 简短的回答是“在模块PHP主文件中执行类似操作”:

updateValue($key,$value)在数据库中存储简单字符串。您可以添加一些特性(请参见Configuration.php类)。
最好的处理方法是检查他们在modules/mailalerts/mailalerts.php中做了什么,以便更好地了解如何做。这是一个很好的例子。

Matt Loye为您提供了一种保存数据的简单方法。但是,如果要创建自己的表,必须在安装过程中创建。如果需要更多示例,可以浏览默认情况下已安装的模块

您可能想告诉我们您使用的版本,因为PS1.6和PS1.7之间的模块有点不同

下面的示例是我为PS1.7编写的自定义模块的一部分

装置 拆卸 数据登记
Matt Loye为您提供了一种保存数据的简单方法。但是,如果要创建自己的表,必须在安装过程中创建。如果需要更多示例,可以浏览默认情况下已安装的模块

您可能想告诉我们您使用的版本,因为PS1.6和PS1.7之间的模块有点不同

下面的示例是我为PS1.7编写的自定义模块的一部分

装置 拆卸 数据登记
 protected function postProcess()
 {
    $errors = array();

    if (Tools::isSubmit('submitFormName'))
    {
        if (!Configuration::updateValue('FORM_INPUT_NAME', Tools::getValue('FORM_INPUT_NAME')))
            $errors[] = $this->l('Cannot update settings');
    } 
  }
public function install()
{
    if (!parent::install() || !$this->createTables()
    ) {
        return false;
    }
    return true;
}

protected function createTables()
{
    $res = (bool)Db::getInstance()->execute('
        CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'my_table` (
            `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
            `column1` varchar(255) NOT NULL,
            `column2` varchar(255) NOT NULL,
            PRIMARY KEY (`id`)
        ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=UTF8;
    return $res;
}
public function uninstall()
{
    if (!parent::uninstall() || !$this->deleteTables()){
        return false;
    }
    return true;
}

protected function deleteTables()
{
    return Db::getInstance()->execute('
        DROP TABLE IF EXISTS `'._DB_PREFIX_.'my_table`;
    ');
}
 protected function postProcess()
 {

    if (Tools::isSubmit('submitFormName'))
    {
        //INSERT
        Db::getInstance()->execute('
            INSERT INTO `'._DB_PREFIX_.'my_table'` (`column1`, `column2`)
            VALUES('.$column1.', '.$column2.')'
        );
        //OR DELETE DATA
        Db::getInstance()->execute('
            DELETE FROM `'._DB_PREFIX_.'my_table' `
            WHERE `id` = '.(int)$id
        );
    } 
}