1

新しいフックを作成しました。そのフックに既存のモジュール(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(){parent :: 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>

それを取得する方法はありますか?

ありがとう!

4

1 に答える 1

2

また、フックを追加するには、モジュールのインストール関数を変更する必要があります。

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

もちろん、その後、モジュールをアンインストールして再インストールする必要があります。

于 2012-07-12T10:14:09.960 に答える