获取category.tpl中的兄弟类别,以获取prestashop中的当前类别

时间:2012-06-26 12:01:07

标签: categories prestashop

我需要在Prestashop主题的类别页面中列出兄弟类别。目前确实显示子类别(如果有),但兄弟类别。

快速回答真的很感激!感谢。

2 个答案:

答案 0 :(得分:5)

为了开始,我会在/ override / controllers /中创建一个覆盖文件,名为CategoryController.php

并添加:

<?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.tpl中有一个名为category_siblings的数组,你现在需要复制category.tpl中输出子类别的代码,并用category_siblings数组替换子类别arra。

答案 1 :(得分:2)

谢谢 - 效果很好!

您不必从数组中删除当前类别,只需将其标记为活动。你必须编辑category.tpl并在foreach子类别循环插入:

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

非常好的导航黑客!再次感谢