我创建了一个新的钩子,我想将一个现有模块(blocktopmenu)添加到该钩子。
钩子的名字是:topMenu
我已将此添加到blocktopmenu.php:
public function hookTopMenu($param)
{
global $smarty;
$this->makeMenu();
$smarty->assign('MENU_SEARCH', Configuration::get('MOD_BLOCKTOPMENU_SEARCH'));
$smarty->assign('MENU', $this->_menu);
$smarty->assign('this_path', $this->_path);
return $this->display(__FILE__, 'blocktopmenu.tpl');
}
我已将模块添加到模块中的新挂钩 - >位置。
然后我将其添加到override / classes / FrontController.php:
function displayHeader(){ 父:: displayHeader();
self::$smarty->assign(array(
'HOOK_HEADER' => Module::hookExec('header'),
'HOOK_TOP' => Module::hookExec('top'),
'HOOK_TOP_MENU' => Module::hookExec('topMenu'),
'HOOK_LEFT_COLUMN' => Module::hookExec('leftColumn')
));
}
最后在themes / mytheme / header.tpl中我有:
<div class="my_top_menu">{$HOOK_TOP_MENU}</div>
但没有任何反应......输出是:
<div class="my_top_menu"></div>
知道如何获得它吗?
谢谢!
答案 0 :(得分:2)
您还需要更改模块中的安装功能以添加钩子:
public function install(){
if (!parent::install() OR
!$this->registerHook('header') OR
!$this->registerHook('topMenu') )
return false;
return true;
}
当然,您需要在此之后卸载并重新安装模块。