我是prestashop模块开发的新手。目前我已经开发了一个模块。它在后端工作正常(如更新和删除插入的值)。但是当我试图从前端检查模块的功能时它没有显示。我安装模块的代码如下所示
public function install()
{
if(!parent::install())
return false;
if (!$this->registerHook('leftColumn'))
return false;
if (!$this->registerHook('header'))
return false;
if (!$this->registerHook('rightColumn'))
return false;
return true;
}
钩子的代码就像这样
public function hookHome($params)
{
global $cookie, $smarty;
$value=array();
.....................
............
return $this->display(__FILE__, 'filename.tpl');
}
我尝试过很多方法在页面的左栏和右栏显示模块但是没有在那里显示。
但是当我尝试从admin->modules->positions->transplant a module->hook into->displayHome (Homepage content)
移植模块时。它在主页内容中起作用。但是我想在左右列中显示它们。我试图使用实时编辑,但模块根本没有显示在左右列中。所以有人能告诉我这里有什么不对吗?任何帮助和建议都会非常明显。感谢。
答案 0 :(得分:1)
在模块中注册挂钩时,必须定义一个方法,以便在触发挂钩时调用。在您的情况下,您必须定义以下方法:
public function hookLeftColumn($params)
{
// Do your stuff on left column
}
public function hookRightColumn($params)
{
// Do your stuff on right column
}
public function hookHeader($params)
{
// Do your stuff in the header
}
答案 1 :(得分:0)
对于每个注册的钩子,你必须创建一个非静态的公共方法,以“hook”关键字开头,后跟要使用的钩子的名称(以“display”或“action”开头)。< /p>
<?php
public function hookDisplayLeftColumn($params)
{
// Your code.
return $this->display(__FILE__, 'filename.tpl');
}
public function hookDisplayRightColumn($params)
{
// Your code.
return $this->display(__FILE__, 'filename.tpl');
}
public function hookActionOtherHook($params)
{
// Your code.
}
祝你好运!