Jump to content

problème code [Resolu]


Recommended Posts

Bonjour,
j'ai un problème au niveau de mon code, je voudrais assigner une valeur de hauteur à mon menu déroulant mais je n'arrive pas à insérer le code me permettant cela.
Voici l'idée que j'avais pour le code, le problème est l'insertion des nouvelles variables, du if dans le for, et enfin affectation de l'affectation de la valeur du height à mon ul.
Si quelqu'un peut me donner la solution ou quelques conseils??



>
<!-- variable-->
{ $i=0;$nbrline=0}       

                       {foreach from=$blockCategTree.children item=child name=blockCategTree}leur de height a mon ul 

{$child.name}   

</pre>
<ul>
                                   {foreach from=$child.children item=children name=categoryTreeBranch} 

{$children.name}

                                                  {foreach from=$children.children item=childreni name=categoryTreeBranch} 

{$childreni.name}
                                                             {$i++}
                                                  {/foreach}   

  <!-- récupération du nomre de fils max -->
                                           {if $nbrline<$i}
                                             {$nbrline =$i;
                                            {/if}         
                                   {/foreach}

</ul>
<br><br>                    {/foreach}<br>               <!-- affecttaion de la taille au menu-->  <br>                  ulMenu.heigt=$nbrline *10 +20



Merci

Link to comment
Share on other sites

Y a vraiment personne qui peut me dire pourquoi ce code ne marche pas et fait planter mon site ????
Je vais essayer de préciser mon problème.
Mon menu doit avoir une hauteur maximale proportionnelle au plus grands nombre de fils de la catégories en cours et non une taille fixe.
Pour cela je pensais simplement récupérer le plus grand nombre de fils lors de la boucle et assigné à la hauteur de mon menu.
Le problème est qu'avec le code ci-dessus cela plante (page blanche), je pense que mon algorithme est correct. Le problème viendrais plutôt de l'insertion ou la syntaxe de mon code dans le fichier.
Si vous voulez plus de précision afin de m'aider à résoudre ce problème n'hésitez pas.
Merci,

Link to comment
Share on other sites

Bonsoir,

Si tu es dans un fichier .tpl, essai de ne pas greffer de PHP de manière à conserver la séparation entre les fichiers PHP où tu développes et les fichiers de vues(.tpl) (modèle MVC )

Smarty t'autorise à déclarer des variables à l'aide de la directive :

{assign var ='nomvariable' value='valeur'}



plutôt que $variable = valeur.

Ensuite tu peux utiliser ta variable en faisant :

{$nomvariable}

.

En espérant que cela te donne une première piste.

Bonne soirée

Link to comment
Share on other sites

Je suis d'accord pour ne pas greffer de php dans mon code.
faut que j'utilise ton code dans le header.php par exemple ou je peux quand l'utiliser dans le tpl??
je te remercie je vais essayer de progresser avec ça.

Link to comment
Share on other sites

j'ai un souci pour affecter une valeur ensuite genre faire {$i=0;} ou {$nbrline=$i} dans le .tpl.

{foreach from=$children.children item=childreni name=categoryTreeBranch} 

{$childreni.name}
                                                   {$i++}
                                                  {/foreach}
                                             {if $nbrline<$i}
                                              {$nbrline = $i}
                                               {assign var ='$i' value='0'}
                                                  }
                                             {/if}



Pourquoi la valeur du i++ s'affiche?
Comment affecter les valeurs ou faire appel à une fonction php.

Link to comment
Share on other sites

Bonjour,

En smarty, quand tu fais

{$i++}


Tu n'incrémentes pas la variable mais tu affiches la valeur de i++.

Il faut encore une fois utiliser la directive assign pour incrementer ta variable

//Déclarer et initialiser une variable i à 0
{assign var='i' value="0" }
//Incrémenter la variable i 
{assign var='i' value="{$i+1}" }

//Affiche la variable i
{$i}


Après c'est comme cela que je fais c'est peut-être pas la meilleure mais ça marche ;)

J'espère que ça t'aidera

Bon courage

Link to comment
Share on other sites

J'ai régler mon problème comme ceci :

>
</pre>
<ul> 0} style="height: {math equation="height * nbline"                                nbline=$blockCategTree.children.children|@count}px"{/if}>
                                   {foreach from=$child.children item=children name=categoryTreeBranch} 

{$children.name}

                                                  {foreach from=$children.children item=childreni name=categoryTreeBranch}                                                    
{$childreni.name}
                                                  {/foreach}
                                           <!--  {if $nbrline < count($children.children)  }
                                              {$nbrline = $children.children|@count }
                                               {$nbrline++}
                                             {/if}-->

                                   {/foreach}

</ul>

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...