我正在写一个prestashop模块。在安装功能中,我想创建一个后台选项卡来管理我的模块操作。是否可以使用Prestashop类并且不直接在数据库中创建错误?
答案 0 :(得分:5)
Prestashop上课了。
这是Tab类,使用函数add
。
见:
$tab = new Tab();
$tab->class_name = 'your_class';
$tab->id_parent = 0;
$tab->module = 'Your module';
$tab->name[(int)(Configuration::get('PS_LANG_DEFAULT'))] = $this->l('Module name');
return $tab->add();
答案 1 :(得分:4)
您无需在admin / tab中创建admintap文件
仅下载此模块并查看其工作原理 Prestashop Autoupgrade module
它是一个标准的prestashop模块,为自己创建新标签
答案 2 :(得分:1)
答案 3 :(得分:1)
是的,你可以做到。创建类object model
的表数据库,并将您的类插入表数据库tab
。
例如,我修改了模块mymodule
文档1.4:
public function install()
{
if (parent::install() == false OR
!$this-registerHook('leftColumn') OR
!Db::getInstance()-Execute('
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'test` (
`id_test` int(6) NOT NULL AUTO_INCREMENT,
`test` varchar(255) NOT NULL,
PRIMARY KEY(`id_test`)
) ENGINE='._MYSQL_ENGINE_.' default CHARSET=utf8') OR
!$this-setTab()
)
return false;
return true;
}
public function setTab() {
if (!Db::getInstance()-Execute(
"INSERT INTO `"._DB_PREFIX_."tab`
(`class_name`, `position`, `id_parent`)
VALUES ('AdminTest', '10', '1')"
))
return false;
$id = Db::getInstance()-insert_id();
$count = (int)Db::getInstance()-getValue('SELECT COUNT(*) FROM '._DB_PREFIX_.'lang');
while ($count 0) {
if (!Db::getInstance()-Execute(
"INSERT INTO `"._DB_PREFIX_."tab_lang`
(`id_tab`, `id_lang`, `name`)
VALUES (".$id.", ". $count.", 'Test Tab')"
))
return false;
$count--;
}
if (!TabCore::initAccess($id))
return false;
return true;
}
尝试修改install
功能并添加setTab
功能。您可以修改模块。