可以';我看不到我的模块


Can't see my 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);
        }
    }
}

/目录/控制器/模块/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; ?>

保存模块设置时,问题出现在管理模块控制器中。

您应该为新的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的表单字段(应该是用于设置Enabled/Disabled状态的<select>表单元素)。