THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline

#1 synfony....

(31-07-2014 08:49:35)


Bonjour,

je debute avec synfony (et thelia tongue )
j'essaie de faire un foreach
d'apres la doc on utilise {%for ... in ...%}

mais cela ne marche pas.
comment l'ecrit on sous thelia ?

Last edited by zzuutt (31-07-2014 08:50:10)

Offline

#2 Re: synfony....

(31-07-2014 08:54:07)


Thelia n'est pas un bundle Symfony, il est juste basé sur un certain nombre (mais pas tous) de composants Symfony. En particulier, Thelia utilise le moteur de template Smarty 3, et non pas Twig.

La doc de Smarty est ici : http://www.smarty.net/docs/en


OpenStudio Toulouse

Offline

#3 Re: synfony....

(31-07-2014 08:57:38)


oups en plus je le savais ma memoire devient defaillante  ( un debut d'alzheimer ....)
on va dire la fatigue wink

grand Merci

Offline

#4 Re: synfony....

(31-07-2014 12:45:45)


bon la je bug smile
dans mon template j'ai une fonction de test qui m'assigne une variable
mon pb c'est qu'elle reste local meme si je mets scope global

            {function searchpresent}
              {assign var="id_present" value="false" scope="global"}
              {foreach $parents_category_id as $all_parent}
                {if $parent == $all_parent}
                    {assign var="id_present" value="true" scope="global"}
                {/if}
                <span>{$all_parent}{$id_present}</span>
              {/foreach}
            {/function}

            {searchpresent parent=$parent}
            <span>{$id_present}</span>
             {if $id_present == "true"}
              .....
             {/if}

Sortie:

5false 3true false

ou est mon erreur ?

Last edited by zzuutt (31-07-2014 13:00:15)

Offline

#5 Re: synfony....

(31-07-2014 15:44:43)


Il y a sans doute confusion de types : true <> "true"

1) tu simplifie les assignations, genre {assign var="id_present" value="false" scope="global"} en {$id_present = false scope="global"}
2) tu utilises le même type dans le test : {if $id_present == true}

Et ça marchera.

Il faut garder à l'esprit que le code Smarty est transformé en code PHP, et que en PHP, la valeur booléenne true n'est pas la même valeur que la chaine de caractère "true".


OpenStudio Toulouse

Offline

#6 Re: synfony....

(31-07-2014 16:11:46)


merci

j'ai fait aussi cette simplification
mais helas ca ne fonctionne pas
$id_present n'est pas transmis, il reste en local dans la fonction

la seule solution que j'ai trouve c'est de supprimer la fonction et de repeter la boucle foreach a la place des appels de la fonction
ca me plait pas mais ca marche

je continue a chercher qu'en meme pour comprendre

Offline

#7 Re: synfony....

(31-07-2014 16:17:54)


Si, ça marche. Parce que ça, ça fonctionne :

            {function searchpresent}
                {$id_present = 'yoyo' scope="global"}
            {/function}

            {searchpresent}
            <span>result: {$id_present}</span>

Don $id_present est bien dans le scope global. Vérifie ton code.


OpenStudio Toulouse

Offline

#8 Re: synfony....

(31-07-2014 16:34:53)


je fais un appel a cette fonction dans une autre fonction
cela vient peut etre de la

ce que je ne comprends pas c'est que j'ai un autre fonction qui me rempli un array et la ca fonctionne
vu que le tableau passe bien a la fonction qui bug