子类别中的Prestashop子类别菜单

时间:2013-04-11 01:23:59

标签: prestashop

我试图在所有子类别中显示prestashop类别的子类别菜单。默认情况下,您只能在类别中看到子类别菜单,但是您无法看到子类别的“兄弟”子类别。

我想我只需要让这段代码在子类别中工作,因为这段代码在一个类别中运作良好:

{foreach from=$subcategories item=subcategory}
<li >    <a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'htmlall':'UTF-8'}"
class="cat_name">{$subcategory.name|escape:'htmlall':'UTF-8'}</a>
</li>    {/foreach}

有什么想法吗?

非常感谢

2 个答案:

答案 0 :(得分:0)

一如既往,我不会给你一个完整的代码,但我告诉你该怎么做。 在smarty中你需要创建一个以父类别为参数的函数, 在这个函数中你需要使用Category :: getChildren($ id_category);然后在smarty中你只需要通过smarty函数循环。

问候

抱歉我的英语。

答案 1 :(得分:0)

要开始,我会在/ 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();
    }
}

?>

product-list.tpl 文件中:

<ul>
    {foreach from=$category_siblings item=elemento}
         <a href="{$link->getCategoryLink($elemento.id_category, $elemento.link_rewrite)|escape:'htmlall':'UTF-8'}" class="cat_name"> <li {if $category->id == $elemento.id_category}class="active"{/if}> {$elemento.name} </li> </a>
    {/foreach}
</ul>

通过 Get sibling categories in category.tpl for the current category in prestashop