2017-03-14 10 views
0

私は現在、prestashop用のモジュールを開発していますが、データベース内のデータの登録に関する情報は見つかりません。これをどうやって行うのか考えていますか?モジュール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)); 
} 

は、実際には、フォーム自身からの応答を処理する必要があなたに

答えて

0

ありがとうございます。設定:: updateValue($キー、$値)DBでは単純な文字列を格納し

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'); 
    } 
    } 

: 短い答えは、「あなたのモジュールPHPメインファイルにこのような何かを行う」です。いくつかの機能を追加することができます(Configuration.phpクラスを参照してください)。 これを処理する最良の方法は、modules/mailalerts/mailalerts.phpで行ったことを確認して、それを行う方法をよりよく理解することです。これは良い例です。

0

Matt Loyeはデータを簡単に保存できました。しかし、独自のテーブルを作成する場合は、インストールプロセス中にそれを実行する必要があります。さらに多くの例が必要な場合は、既定で既にインストールされているモジュールを調べることができます。

PS 1.6とPS 1.7のモジュールが少し違うので、使用しているバージョンを教えてください。

以下の例は、私がPS 1.7で書いたカスタムモジュールの一部です。データの

インストール

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 
     ); 
    } 
} 
関連する問題