2012-07-11 73 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