-1

私は次のように「newdiv」の列divの外に家の注目の製品を移動しようとしています:

<header>
    hook header
</header> 
<container>
    <div central_column>
    .
    <!-- here is the featured products block -->
    .
    </div>
    <div right_column>
        hook right column
    </div>
</container>

<newdiv><--! here where i want to show featured products --></newdiv>

<footer>
    hook footer
</footer>

これを行うには、FrontController.phpを編集して、フッターを表示するためのフックを追加しました('HOOK_FEATURED_HOME' => Module :: hookExec('homeFeatured')):

public function displayFooter()
    {

        if (!self::$initialized)
            $this->init();

        self::$smarty->assign(array(
            'HOOK_RIGHT_COLUMN' => Module::hookExec('rightColumn', array('cart' => self::$cart)),
            'HOOK_FEATURED_HOME' => Module::hookExec('homeFeatured'),
            'HOOK_FOOTER' => Module::hookExec('footer'),
            'content_only' => (int)(Tools::getValue('content_only'))));
        self::$smarty->display(_PS_THEME_DIR_.'footer.tpl');
        //live edit
        if (Tools::isSubmit('live_edit') AND $ad = Tools::getValue('ad') AND  (Tools::getValue('liveToken') == sha1(Tools::getValue('ad')._COOKIE_KEY_)))
    {
        self::$smarty->assign(array('ad' => $ad, 'live_edit' => true));
        self::$smarty->display(_PS_ALL_THEMES_DIR_.'live_edit.tpl');
    }
    else
        Tools::displayError();
}

ファイルfooter.tplにフックを追加しました:

           <!-- featured products -->
            {if $page_name == 'index'}
                <div id="homeFeatured">
                    {$HOOK_FEATURED_HOME}
                </div>
            {/if}

DBに追加しました

id     name           title                     descritption             position       live_edit

97    homeFeatured    Home Featured Products    NULL                     0                  0

module / homefeatured / homefeatured.phpに追加しました:

function install()
    {
        if (!Configuration::updateValue('HOME_FEATURED_NBR', 8) OR !parent::install() OR !$this->registerHook('home') OR !$this->registerHook('homeFeatured'))
            return false;
        return true;
    }

そしてクラスの終わりに

function homeFeatured($params)
    {
    //    return $this->hookHome($params);
        echo 'hook test';

    }

divnewdivには何も表示されませんでした。

モジュールをバックオフィスの新しいフックに移植しようとすると、次のようになります。

This module cannot be transplanted to this hook.
4

1 に答える 1

0

コメントで解決策を示しましたが、他の誰かがそれを必要とする場合に備えて、私は答えを書きます:

モジュールの機能を編集するときはinstall()、後でアンインストールして再インストールする必要があります

于 2012-07-27T08:17:05.427 に答える