2017-10-31 1 views
0

OpenCart 3 용 지불 모듈을 개발 중입니다. 업데이터 문서가 없기 때문에 제 모듈은 다른 지불 모듈 (예 : Alipay, 페이팔, 주문형 현금 등)을 기반으로합니다. .)OpenCart 3 사용자 정의 모듈이 데이터를 저장하지 않습니다

I은 ​​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>을, 지명 될해야

관련 문제