Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I need to list sibling categories in the category page in a Prestashop theme. Currently it does show the sub-categories if any but not the sibling categories.

A quick answer would really be appreciated! Thanks.

like image 457
rashid Avatar asked Dec 05 '25 20:12

rashid


2 Answers

For to start i would have created a override file in /override/controllers/, named CategoryController.php

And add this:

<?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();
    }
}

?>

I this the basic way to do it, i have not tested it get. You need to find a way to not list current category in the list of siblings.

If the code works you will now have an array in category.tpl named category_siblings, you now need to for example copy the code in category.tpl that outputs the subcategories and replace the subcategories arra with the category_siblings array.

like image 165
Niclas Larsson Avatar answered Dec 11 '25 09:12

Niclas Larsson


Thank you - works great!

You don't have to remove current category from array, intead just mark it as active. You have to edit category.tpl and in foreach subcategories loop insert:

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

Its very nice navigation hack! Thanks one more time

like image 31
Koko Avatar answered Dec 11 '25 10:12

Koko



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!