THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

Thelia sait compter les produits dans les catégories, sous-catégories, les sous sous-catégories... bref avec différents niveaux grâce au paramètre d'entrée "depth".
Thelia sait aussi compter les sous-catégories d'une catégorie, en précisant en entrée "need_count_child" et en utilisant en sortie {$CHILD_COUNT}

Fabuleux ! :-)

Mais je ne trouve pas comment compter simplement l'ensembles des sous-catégories (avec plusieurs niveaux) ?

Je suis passé à côté ou faut-il compter manuellement avec une boucle ou un module ?

Last edited by anti-conformiste (20-09-2018 14:04:39)

Offline


Ma problématique est la suivante : dans mon site, 1catégorie = 1 produit.
Je dois donc modifier le comportement par défaut de ma page include/menu.html

La solution c'est un count sur la boucle category-tree

Je mets le code qui va bien :

{loop name="cat-parent-$level" type="category" parent=$parent need_count_child="1" not_empty="1"}
                {if $CHILD_COUNT > 0}
                    {if in_array($ID, $parent_cat_ids)}
                        {assign var="collapsed" value=""}
                    {else}
                        {assign var="collapsed" value="collapsed"}
                    {/if}

                    <li>
                    
                        
                        <a href="{$URL nofilter}">
                            {$TITLE}
                            
                            {* item de menu parent *}
                            {if $PARENT == 0}
                                
                                {* Si 2 niveaux *}
                                {if {count type="product" category=$ID depth=2} > 0}
                                    {$CHILD_COUNT}
                                {else}
                                {* Si 3 niveaux *}
                                    {* On compte les sous-catégories (rappel : ici une catégorie = 1 produit) *}
                                    {* On exclut l'item de menu parent pour afficher la somme des sous-catégories du menu *}
                                    ({{count type="category-tree" category=$ID depth="3"} - {$CHILD_COUNT}})
                                {/if}
                            {* item de menu enfant *}
                            {else}
                                ({$CHILD_COUNT})
                            {/if}

                        </a>
                        {* N'affiche dans le menu déroulant que les categories avec 2 sous-niveaux *}
                        {if {count type="product" category=$ID depth=2} == 0}
                            <a href="#collapse{$ID}" class="accordion-toggle {$collapsed}" data-toggle="collapse" data-parent="#collapse{$ID}"></a>
                        {menu parent=$ID level=$level+1}{/if}
                        
                    </li>
                {else}
                    <li>
                        <a href="{$URL nofilter}">
                            {$TITLE} {$CHILD_COUNT}
                        </a>
                    </li>
                {/if}
{/loop}

Ça fonctionne, mais je me demande s'il y a une solution plus 'naturelle'...

Last edited by anti-conformiste (20-09-2018 19:29:40)