我为prestashop 1.5.6创建了一个新模块,并且我遇到了一些问题。
模块必须向客户发送短信,并且必须是后台菜单的选项。
我创建了带有安装和卸载功能的模块,并将标签添加到back-office
菜单,但我是prestashop
中的新手,所以我不知道如何制作{{1}当我尝试单击模块的标签AdminMyModuleController.php
时,我不知道如何解决这个问题,因为我不太了解安全性。
如果有人可以加我在facebook或其他什么来帮助我会很棒。
以下是mymodule.php的代码:
私有函数_createTab() {
"INVALID SECURITY TOKEN"
//定义选项卡多语言数据 $ data_lang = array( 'id_tab'=> $ id_tabP, 'id_lang'=>配置::得到( 'PS_LANG_DEFAULT'), 'name'=> 'SMS a clientes' );
// Tab Raiz
$data = array(
'id_tab' => '',
'id_parent' => 0,
'class_name' => 'Empty',
'module' => 'mymodule',
'position' => 14, 'active' => 1
);
/* Insert the data to the tab table*/
$res = Db::getInstance()->insert('tab', $data);
//Get last insert id from db which will be the new tab id
$id_tabP = Db::getInstance()->Insert_ID();
}
由于
答案 0 :(得分:0)
这是创建模块选项卡的错误方法。您应该在install()中使用此函数:
$this->installModuleTab('AdminMyModule', array(1 => 'Attribute description'), $idTabParent = 9);
然后在模块文件夹/ controllers / admin / AdminMyModuleController.php中创建一个AdminMyModuleController.php
但你需要设置一些功能才能看到显示的内容,我会为此做一个教程,但在我这样做之前,你可以从prestashop核心查看另一个admincontroller并做同样的事情。
答案 1 :(得分:0)
正如Lliw所说,你必须使用InstallModuleTab函数。
private function installModuleTab($tabClass, $tabName, $idTabParent)
{
$pass = true;
$tab = new Tab();
$tab->name = $tabName;
$tab->class_name = $tabClass;
$tab->module = $this->name; // defined in __construct() function
$tab->id_parent = $idTabParent;
$pass = $tab->save();
return($pass);
}
您可以将所有内容放入Install功能中。例如,您的第一个标签:
public function install()
{
if(!parent::install()
|| !$this->installModuleTab('Empty', array(1 => 'SMS a clientes'), $idTabParent = 0))
return false;
return true;
}
您可以使用以下数组设置语言:
array(1 => 'SMS a clientes', 2 => 'Language 2', 3 => 'Language 3')
然后您必须创建AdminMyModuleController.php文件