2012-07-11 51 views
1

我创建了一个新的钩子,我想添加一个现有的模块(blocktopmenu)到该钩子。Prestashop - 如何将现有模块显示为新钩子?

钩的名字是:顶部菜单

香港专业教育学院已将此添加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'); 
    } 
  • 伊夫添加的模块,新的钩子模块 - >位置。

  • 然后加入伊夫借此覆盖/类/ FrontController.php:

    功能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') 
         )); 
        } 
    

最后在主题/ mytheme的/ header.tpl我:

<div class="my_top_menu">{$HOOK_TOP_MENU}</div> 

但没有任何反应......输出:

<div class="my_top_menu"></div> 

任何想法如何得到它 ?

谢谢!

回答

2

您还需要更改安装功能模块中添加钩:

public function install(){ 
    if (!parent::install() OR 
     !$this->registerHook('header') OR 
     !$this->registerHook('topMenu')) 
     return false; 
    return true; 
} 

当然,你需要卸载后重新安装该模块。

+0

我很抱歉,但不是这样: 'return(parent :: install()&& $ this-> registerHook('header')&& $ this-> registerHook('topMenu')); '? 更紧凑,更易于阅读.. – diynevala 2015-05-12 07:47:30