2017-10-31 4 views
0

Ich entwickle ein Zahlungsmodul für OpenCart 3. Da es keine Updater-Dokumentation gibt, basiert mein Modul auf dem anderen Zahlungsmodul (wie Alipay, Paypal, Cash on Demand, etc ...) .)OpenCart 3 benutzerdefiniertes Modul speichert keine Daten

ich habe als einfach

{{ 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 }} 

Und der Controller admin/Controller/Erweiterung/Zahlung/mipago.php die Modulansicht auf admin/Ansicht/template/Erweiterung/Zahlung/mipago.twig erstellt

<?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; 
    } 
} 

Dies ist ein Mockup, aber das Problem ist vorhanden, ich kann die Daten nicht aus dem Formular in der Ansicht speichern. Mein Code basiert auf anderen Zahlungsmodulen wie G2APay und Cash-on-Demand, aber mit den gleichen Codezeilen (nur die Parameter ändern) spart es nichts.

Antwort

0

Gelöst!

Es war nur ein Missverhältnis zwischen dem Modulnamen, seinem Typ und allen Variablen und Feldern.

Zum Beispiel mein Plugin benötigt ein payment Modul sein, so dass alle Variablen payment_mipago_<field> benannt werden sollte, statt mipago_<field>, einschließlich der Felder, die Einsätze in die Datenbank Opencart

Verwandte Themen