2014-11-03 2 views
0

Я пытаюсь создать модуль. У меня есть язык, диспетчер файлов просмотра в модулях администратора и категории. Я скопировал административную часть из модуля категории по умолчанию, установка модуля из администратора выглядит нормально, я добавляю его на свою страницу и не вижу его на реальной странице.Не могу увидеть мой модуль

Что я забыл сделать или проверить?

/catalog/controller/module/product_list.php

<?php 
class ControllerModuleProductsList extends Controller { 

    public function index($setting) { 
     if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/products_list.tpl')) { 
      return $this->load->view($this->config->get('config_template') . '/template/module/products_list.tpl' $data); 
     } else { 
      return $this->load->view('default/template/error/not_found.tpl', $data); 
     } 
    } 
} 

/catalog/controller/module/products_list.tpl =)

<h1>test</h1> 

/admin/controller/module/product_list.php

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

    public function index() { 
     $this->load->language('module/products_list'); 

     $this->document->setTitle($this->language->get('heading_title')); 

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

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

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

      $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); 
     } 

     $data['heading_title'] = $this->language->get('heading_title'); 

     $data['text_edit'] = $this->language->get('text_edit'); 
     $data['text_enabled'] = $this->language->get('text_enabled'); 
     $data['text_disabled'] = $this->language->get('text_disabled'); 

     $data['entry_status'] = $this->language->get('entry_status'); 

     $data['button_save'] = $this->language->get('button_save'); 
     $data['button_cancel'] = $this->language->get('button_cancel'); 

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

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

     $data['breadcrumbs'][] = array(
      'text' => $this->language->get('text_home'), 
      'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], 'SSL') 
     ); 

     $data['breadcrumbs'][] = array(
      'text' => $this->language->get('text_module'), 
      'href' => $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL') 
     ); 

     $data['breadcrumbs'][] = array(
      'text' => $this->language->get('heading_title'), 
      'href' => $this->url->link('module/products_list', 'token=' . $this->session->data['token'], 'SSL') 
     ); 

     $data['action'] = $this->url->link('module/products_list', 'token=' . $this->session->data['token'], 'SSL'); 

     $data['cancel'] = $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'); 

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

     $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('module/products_list.tpl', $data)); 
    } 

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

     return !$this->error; 
    } 
} 

/admin/controller/module/products_list.tpl

<?php echo $header; ?><?php echo $column_left; ?> 
<div id="content"> 
    <div class="page-header"> 
    <div class="container-fluid"> 
     <div class="pull-right"> 
     <button type="submit" form="form-category" data-toggle="tooltip" title="<?php echo $button_save; ?>" class="btn btn-primary"><i class="fa fa-save"></i></button> 
     <a href="<?php echo $cancel; ?>" data-toggle="tooltip" title="<?php echo $button_cancel; ?>" class="btn btn-default"><i class="fa fa-reply"></i></a></div> 
     <h1><?php echo $heading_title; ?></h1> 
     <ul class="breadcrumb"> 
     <?php foreach ($breadcrumbs as $breadcrumb) { ?> 
     <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li> 
     <?php } ?> 
     </ul> 
    </div> 
    </div> 
    <div class="container-fluid"> 
    <?php if ($error_warning) { ?> 
    <div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> <?php echo $error_warning; ?> 
     <button type="button" class="close" data-dismiss="alert">&times;</button> 
    </div> 
    <?php } ?> 
    <div class="panel panel-default"> 
     <div class="panel-heading"> 
     <h3 class="panel-title"><i class="fa fa-pencil"></i> <?php echo $text_edit; ?></h3> 
     </div> 
     <div class="panel-body"> 
     <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form-category" class="form-horizontal"> 
      <div class="form-group"> 
      <label class="col-sm-2 control-label" for="input-status"><?php echo $entry_status; ?></label> 
      <div class="col-sm-10"> 
       <select name="products_list" id="input-status" class="form-control"> 
       <?php if ($products_list) { ?> 
       <option value="1" selected="selected"><?php echo $text_enabled; ?></option> 
       <option value="0"><?php echo $text_disabled; ?></option> 
       <?php } else { ?> 
       <option value="1"><?php echo $text_enabled; ?></option> 
       <option value="0" selected="selected"><?php echo $text_disabled; ?></option> 
       <?php } ?> 
       </select> 
      </div> 
      </div> 
     </form> 
     </div> 
    </div> 
    </div> 
</div> 
<?php echo $footer; ?> 

ответ

0

Проблема заключается в вашем контроллере модуля администратора при сохранении настроек модуля.

Вы должны сохранить настройки для своего нового модуля products_list, но вместо этого (из-за копирования и не уделяя достаточного внимания) вы по-прежнему сохраняете его для модуля category.

В вашей admin/controller/module/products_list.php найти эту строку:

$this->model_setting_setting->editSetting('category', $this->request->post); 

и изменить category для products_list, поэтому

$this->model_setting_setting->editSetting('products_list', $this->request->post); 

Кроме того, обратите внимание на этот блок кода в контроллере:

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

и убедитесь, что в вашей (для этого модуля) у вас также есть поле формы с именем category_status (должен быть элемент формы <select> для установки статуса Enabled/Disabled).

+0

Да, спасибо, я был очень невнимателен. Но я изменил эту часть, и она все еще не работает. – arkhy

+0

ОК, теперь вам нужно перейти к компоновке и дизайну (где-то в администрации), выбрать желаемый макет (например, страницу категории, домашняя страница и т. Д.) И назначить этот модуль этому макету. После сохранения он должен отображаться на вашем интерфейсе. Я не понимал, что мы говорим о OC 2.0 раньше. – shadyyx

+0

@shadyyx i уже сделал это – arkhy

Смежные вопросы