stevent Posted March 23, 2017 Share Posted March 23, 2017 Bonjour à tous, Dans un module sur le site suivant qui se trouve ICI , un tpl est utilisé pour lister des catégories : {if isset($catalog_tree) && $catalog_tree.children|@count} {if $catalog_tree.children|@count >= 3} {assign var='col' value=4} {else} {math equation='round(12 / x)' x=$catalog_tree.children|@count assign='col'} {/if} <div id="ukoocompat_catalog_block"> <ul class="root" id="menu"> {foreach from=$catalog_tree.children item=child name=catalog_tree} {if $smarty.foreach.catalog_tree.last} {include file="$catalog_branche_tpl_path" node=$child last='true'} {else} {include file="$catalog_branche_tpl_path" node=$child} {/if} {/foreach} </ul> </div> {/if} Jusque là tout va bien. donc pour tester, choisissez on choisis un véhciules ( VOLKSWAGEN, GOLF 4 ( 1998 - 2004 ), 3.2 ) On obtient le menu rouge qui est généré par le code indiqué ci -dessus. Mon soucis : Je souhaite afficher EN DESSOUS de cette liste d'autres catégories avec un ID PRECIS . Donc je voudrais ajouter {if $category->id == '43'} tout simplement donc comme ceci : <div id="ukoocompat_catalog_block"> <ul class="root" id=""> {foreach from=$catalog_tree.children item=child name=catalog_tree} {if $category->id == '43'} {if $smarty.foreach.catalog_tree.last} {include file="$catalog_branche_tpl_path" node=$child last='true'} {else} {include file="$catalog_branche_tpl_path" node=$child} {/if} {/if} {/foreach} </ul> </div> Ce qui me semble logique..... ? mais un message d'erreur s'affiche : Notice: Undefined index: category in /home/autosporxq/new/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 80Notice: Trying to get property of non-object in /home/autosporxq/new/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 80Notice: Trying to get property of non-object in /home/autosporxq/new/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 80 Quelqu'un saurait il svp me faire savoir ou est mon erreur ?? Merci d'avance ! Link to comment Share on other sites More sharing options...
BeComWeb Posted March 24, 2017 Share Posted March 24, 2017 Et si tu var_dumpes ce que contient child dans la boucle ?... Link to comment Share on other sites More sharing options...
stevent Posted March 24, 2017 Author Share Posted March 24, 2017 Et si tu var_dumpes ce que contient child dans la boucle ?... Merci beaucoup pour ta réponse, saurais tu stp m'en dire un peu plus sur cette solution ? Elle ne me parle pas du tout.. :/ Suite à quelques recherches il semble que je dois ajouter ceci dans un php ? var_dump($var); merci, Link to comment Share on other sites More sharing options...
BeComWeb Posted March 24, 2017 Share Posted March 24, 2017 Non tu peux invoquer des fonctions PHP directement via Smarty. Donc ça donne quelque chose comme <div id="ukoocompat_catalog_block"> <ul class="root" id="menu"> {foreach from=$catalog_tree.children item=child name=catalog_tree} {$child|@var_dump} {if $smarty.foreach.catalog_tree.last} {include file="$catalog_branche_tpl_path" node=$child last='true'} {else} {include file="$catalog_branche_tpl_path" node=$child} {/if} {/foreach} </ul> </div> Attention ça va te debugger le contenu de la variable $child à chaque tour de boucle donc tu vas te retrouver avec des gros pavé d'informations. Donc déjà met ta boutique en maintenance pendant que tu fais ça. Et même avec ça si tu n'as pas de notion de programmation PHP tu ne vas pas être plus avancé... Link to comment Share on other sites More sharing options...
stevent Posted March 24, 2017 Author Share Posted March 24, 2017 En effet mais je suis débrouillard donc merci déjà pour ton aide... En résultat de première boucle j'ai : array(8) { ["id"]=> string(2) "50" ["category_link"]=> string(56) "http://new.monsite.com/50-accessoires-competition" ["link"]=> string(126) "http://new.monsite.com/module/ukoocompat/listing?id_search=1&id_category=50&filters1=11749&filters4=11773&filters5=6920" ["name"]=> string(23) "ACCESSOIRES COMPETITION" ["link_rewrite"]=> string(23) "accessoires-competition" ["desc"]=> string(0) "" ["level_depth"]=> int(1) ["children"]=> array(6) { [0]=> Link to comment Share on other sites More sharing options...
BeComWeb Posted March 24, 2017 Share Posted March 24, 2017 (edited) Alors vraisemblablement là où tu avais mis {if $category->id == '43'} dans ton 1er post, il faudrait que tu remplaces par {if $child->id == '43'} et ça devrait faire le taf Edit : ou plutôt {if $child.id == '43'} Edited March 24, 2017 by BeComWeb (see edit history) 1 Link to comment Share on other sites More sharing options...
stevent Posted March 25, 2017 Author Share Posted March 25, 2017 Au top ! Merci c'est la solution !! 1 Link to comment Share on other sites More sharing options...
BeComWeb Posted March 25, 2017 Share Posted March 25, 2017 De rien. N'oublie pas de passer le topic sur "[Résolu]" et bon week-end Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now