Jump to content

blockcategories.php - ne sélectionner qu'une catégorie


kimweb

Recommended Posts

Bonjour,

que faut-il modifier dans la requête du block categories pour n'en sélectionner qu'une seule ?
j'arrive à sélectionner toutes les catégories sauf une en ajoutant

WHERE c.id_category <> 11 


mais si ma condition devient

WHERE c.id_category = 11 

plus rien ne s'affiche...

merci d'avance

Link to comment
Share on other sites

Voici ce que je te propose :

Dans le fichier modules/blockcategories/blockcategories.tpl :

Modifier :

              {foreach from=$blockCategTree.children item=child name=blockCategTree}
               {if $smarty.foreach.blockCategTree.last}
                       {include file=$branche_tpl_path node=$child last='true'}
               {else}
                       {include file=$branche_tpl_path node=$child}
               {/if}
       {/foreach}



Par :

               {foreach from=$blockCategTree.children item=child name=blockCategTree}
           {if $child.id == 2}
               {if $smarty.foreach.blockCategTree.last}
                       {include file=$branche_tpl_path node=$child last='true'}
               {else}
                       {include file=$branche_tpl_path node=$child}
               {/if}
           {/if}
       {/foreach}



Exemple donné pour l'affichage de la catégorie n°2 -> {if $child.id == 2}

A modifier selon. Vous pouvez aussi faire un choix sur le nom, genre : {if $child.name == 'Portables'} .

les différentes propriété pour la variable $child sont indiqué dans le fichier blockcategories.php dans la methode getTree()

Link to comment
Share on other sites

Merci Mambe.
je pense que je vais faire comme ça effectivement. Et rester avec ma frustration de ne pas comprendre pourquoi cela ne marche pas avec la requête. Si quelqu'un a une explication...

Merci encore

Link to comment
Share on other sites

Si tu veut le faire depuis le fichier blockcategories.php, il faut que tu modifie le traitement de la requete.

La fonction foreach() marque une erreur si le résultat n'est pas un array.

Pour ce faire, il faut modifier la fonction qui execute la requete -> remplacement de ExecuteS() par getRow() par exemple.

Ensuite supprimer la boucle foreach();

Voila, en espérant que ça t'a éclairer un peu

Link to comment
Share on other sites

  • 5 months later...

Déterrage de post ... :)

C'est exactement ce que je cherchais a une petite différence près ...

J'aimerai ne pas afficher la catégorie parente !

car si je teste avec le {if $child.id == 2} alors je vois apparaitre dans le block le catégorie numéro 2, or cela me gène !
je souhaite n'afficher que les enfants de la catégorie 2 ...

Une idée sivouplé ? :)

Merci et bonne journée !

Link to comment
Share on other sites

j'ai trouvé quelque chose qui marche mais je ne sais pas si c'est la meilleure solution

Dans category-tee-branch.tpl il faut remplacer


 {$node.name|escape:htmlall:'UTF-8'}



Par


   {if $node.id != 2} <!-- c est ici qu il faut indiquer le catégorie que vous ne voulez pas voir apparaitre -->

 {$node.name|escape:htmlall:'UTF-8'}

   {/if}

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...