2017-10-31 16 views
0

私はOpenCart 3の支払いモジュールを開発しています。アップデータのドキュメントはありませんので、私のモジュールは他の支払いモジュール(Alipay、paypal、 。)OpenCart 3カスタムモジュールはデータを保存しません

私は単に

としてadmin /ビュー/テンプレート/拡張/支払/ mipago.twig上のモジュールのビューを作成した
{{ header }}{{ column_left }} 
{% if error_warning %} 
    {{ error_warning }} 
{% endif %} 
<div id="content"> 
    <div class="page-header"> 
    <div class="container-fluid"> 
     <div class="pull-right"> 
     <button type="submit" form="form-mipago" data-toggle="tooltip" title={{ button_save }} class="btn btn-primary"><i class="fa fa-save"></i></button> 
     <a href={{ cancel }} data-toggle="tooltip" title={{ button_cancel }} class="btn btn-default"><i class="fa fa-reply"></i></a></div> 
     <h1>{{ heading_title }}</h1> 
     <ul class="breadcrumb"> 
     {% for breadcrumb in breadcrumbs %} 
      <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> 
     {% endfor %} 
     </ul> 
    </div> 
    </div> 
    <div class="container-fluid"> 
    {% if error_warning %} 
    <div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i>{{ error_warning }} 
     <button type="button" class="close" data-dismiss="alert">&times;</button> 
    </div> 
    {% endif %} 
    <div class="panel panel-default"> 
     <div class="panel-heading"> 
     <h3 class="panel-title"><i class="fa fa-pencil"></i>{{ text_edit }}</h3> 
     </div> 
     <div class="panel-body"> 
     <form action="{{ action }}" method="post" enctype="multipart/form-data" id="form-mipago" class="form-horizontal"> 


       <div class="form-group"> 
        <label class="col-sm-2 control-label" for="input-status">{{ entry_status }}</label> 
        <div class="col-sm-10"> 
         <select name="mipago_status" id="input-status" class="form-control"> 
          {% if paygol_status %} 
          <option value="1" selected="selected">{{ text_enabled }}</option> 
          <option value="0">{{ text_disabled }}</option> 
          {% else %} 
          <option value="1">{{ text_enabled}}</option> 
          <option value="0" selected="selected">{{ text_disabled }}</option> 
          {% endif %} 
         </select> 
        </div> 
       </div> 
     </form> 
     </div> 
    </div> 
    </div> 
</div> 
{{ footer }} 

とコントローラの管理/コントローラ/拡張/支払い/ mipago.php

<?php 
class ControllerExtensionPaymentMiPago extends Controller { 
    private $error = array(); 

    public function index() { 
     $this->document->setTitle('Mi Pago'); 

     $this->load->model('setting/setting'); 

     if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { 
      $this->model_setting_setting->editSetting('payment_mipago', $this->request->post); 

      $this->session->data['success'] = $this->language->get('text_success'); 

      $this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=payment', true)); 
     } 

     if (isset($this->error['warning'])) { 
      $data['error_warning'] = $this->error['warning']; 
     } else { 
      $data['error_warning'] = "''; 
     } 

     $data['breadcrumbs'] = array(); 

     $data['breadcrumbs'][] = array(
      'text' => 'Inicio', 
      'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) 
     ); 

     $data['breadcrumbs'][] = array(
      'text' => 'Extensiones', 
      'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=payment', true) 
     ); 

     $data['breadcrumbs'][] = array(
      'text' => 'Mi Pago', 
      'href' => $this->url->link('extension/payment/mipago', 'user_token=' . $this->session->data['user_token'], true) 
     ); 

     $data['action'] = $this->url->link('extension/payment/mipago', 'user_token=' . $this->session->data['user_token'], true); 

     $data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=payment', true); 

     if (isset($this->request->post['mipago_status'])) { 
      $data['mipago_status'] = $this->request->post['mipago_status']; 
     } else { 
      $data['mipago_status'] = $this->config->get('mipago_status'); 
     } 

     if (isset($this->request->post['paygol_order_status_id'])) { 
      $data['mipago_order_status_id'] = $this->request->post['mipago_order_status_id']; 
     } else { 
      $data['mipago_order_status_id'] = $this->config->get('mipago_order_status_id'); 
     } 

     $this->load->model('localisation/order_status'); 
     $data['order_statuses'] = $this->model_localisation_order_status->getOrderStatuses(); 

     if (isset($this->request->post['mipago_geo_zone_id'])) { 
      $data['mipago_geo_zone_id'] = $this->request->post['mipago_geo_zone_id']; 
     } else { 
      $data['mipago_geo_zone_id'] = $this->config->get('mipago_geo_zone_id'); 
     } 

     $data['header'] = $this->load->controller('common/header'); 
     $data['column_left'] = $this->load->controller('common/column_left'); 
     $data['footer'] = $this->load->controller('common/footer'); 

     $this->response->setOutput($this->load->view('extension/payment/mipago', $data)); 
    } 

    protected function validate() { 
     if (!$this->user->hasPermission('modify', 'extension/payment/mipago')) { 
      $this->error['warning'] = $this->language->get('error_permission'); 
     } 
     return !$this->error; 
    } 
} 

これはモックアップですが、現在の問題です。フォームのデータをビューに保存できません。私のコードは、G2APayやCash on Demandなどの他の支払いモジュールに基づいていますが、同じ行のコード(パラメータの変更のみ)を使用しても、何も保存しません。

答えて

0

解決済み!

モジュール名とその型とすべての変数とフィールドの間に不一致がありました。例えば

は、私のプラグインがpaymentモジュールをする必要がありますので、すべての変数は、データベースへの挿入をopencartフィールドを含むpayment_mipago_<field>、代わりのmipago_<field>を、命名されるべき

関連する問題