您好我尝试创建一个管理模块prestashop 1.6但我发现了一些问题。
我会在主菜单中创建(在模块安装后)一个新选项卡,点击它之后我会显示一个模板(.tpl),管理员用户可以在Db上做一些事情。
我已创建一个文件夹并将其插入模块文件夹中,在此文件夹中有以下文件:
gcbulk.php:
<?php
if (!defined('_PS_VERSION_'))
exit;
require(dirname(__FILE__) . '/gcbulk_header.class.php');
class gcbulk extends Module {
private $page_name = '';
public function __construct() {
$this->name = 'gcbulk'; // il nome del modulo (lo stesso del file principale)
$this->tab = 'others'; // sezione in cui va inserito
$this->version = 0.1;
$this->author = 'Autore';
$this->need_instance = 0;
/*
* need_instance specifica se un istanza del modulo deve essere caricata
* quando viene visualizzata la lista dei moduli
(di norma può essere lasciato a 0)
*/
parent::__construct();
$this->displayName = $this->l('Bulk');
$this->description = $this->l('Modulo Bulk');
$this->context->controller->addCSS(($this->_path).'gcbulk.css', 'all');
//$this->context->controller->addJS(($this->_path).'js/gc_bulk_script.js');
}
public function install() {
// Install Tabs
$parent_tab = new Tab();
// Need a foreach for the language
$parent_tab->name[$this->context->language->id] = $this->l('Bulk tab');
$parent_tab->class_name = 'AdminGcbulk';
$parent_tab->id_parent = 0; // Home tab
$parent_tab->module = $this->name;
$parent_tab->add();
if (!parent::install()
|| !$this->registerHook('admingc')
);
}
public function uninstall() {
// Uninstall Tabs
$tab = new Tab((int)Tab::getIdFromClassName('AdminGcbulk'));
$tab->delete();
// Uninstall Module
if (!parent::uninstall())
return false;
return true;
}
public function hookadmingc(){
$this->smarty->assign(array(
'ciao' => 'hola'
));
return $this->display(__FILE__, 'gcbulk.tpl');
}
}
?>
控制器&gt;管理员&gt; AdminGcbulkController.php
<?php
class AdminGcbulkController extends ModuleAdminController
{
}
gcbulk.tpl包含简单的html。
tab的创建工作正常,但我不知道如何在clik之后显示.tpl。 Actualy在管理内容右侧返回一个空白页面(左边是menù)
感谢您的帮助!
答案 0 :(得分:2)
控制器应该实现renderList,如下所示:
public function renderList() {
$return = $this->context->smarty->fetch(_PS_MODULE_DIR_ . '/gcbulk/gcbulk.tpl');
return $return;
}
我建议你将你的tpl移到这个文件夹中:/gcbulk/views/templates/admin/gcbulk.tpl
答案 1 :(得分:0)
class AdminGcbulkController extends ModuleAdminController {
public function __construct() {
$this->bootstrap = true;
$this->lang = (!isset($this->context->cookie) || !is_object($this->context->cookie)) ? intval(Configuration::get('PS_LANG_DEFAULT')) : intval($this->context->cookie->id_lang);
parent::__construct();
}
public function display() {
parent::display();
}
public function renderList() {
$return = $this->context->smarty->fetch(PS_MODULE_DIR . '\adminyourmodule.tpl');
return $return;
}
}