3

Prestashopテーマのカテゴリページに兄弟カテゴリをリストする必要があります。現在、兄弟カテゴリではなく、サブカテゴリが表示されます。

簡単な答えをいただければ幸いです。ありがとう。

4

2 に答える 2

5

開始するには、CategoryController.phpという名前のオーバーライドファイルを/ override /controllers/に作成します。

そしてこれを追加します:

<?php

class CategoryController extends CategoryControllerCore
{
    public function displayContent()
    {
        // Get the global smarty object.
        global $smarty;

        // Get current category's parent.
        $parent_category = new Category($this->category->id_parent, self::$cookie->id_lang);

        // Get parent category's subcategories (which is current category's siblings, including it self).
        $category_siblings = $parent_category->getSubCategories((int)self::$cookie->id_lang)

        /* Assign your siblings array to smarty. */
        $smarty->assign(
            array(
                "category_siblings" => $category_siblings
            )
        );

        /* This we run the normal displayContent, but pass the siblings array to
           category.tpl */
        parent::displayContent();
    }
}

?>

私はこれを行うための基本的な方法です、私はそれを取得することをテストしていません。兄弟のリストに現在のカテゴリをリストしない方法を見つける必要があります。

コードが機能する場合は、category_siblingsという名前のcategory.tplに配列があります。たとえば、サブカテゴリを出力するcategory.tplのコードをコピーし、サブカテゴリarraをcategory_siblings配列に置き換える必要があります。

于 2012-07-02T18:01:00.577 に答える
2

ありがとう-うまくいきます!

配列から現​​在のカテゴリを削除する必要はありません。アクティブとしてマークするだけです。category.tplを編集し、foreachサブカテゴリでループ挿入する必要があります。

<li {if $category->id == $subcategory.id_category}class="active"{/if}>

その非常に素晴らしいナビゲーションハック!もう一度ありがとう

于 2013-07-15T18:08:57.403 に答える