GAGA Template

XLetter

foreachelse: si un bloc n'existe pas

une chtite amélioration

Sujet résolu

Vous devez être inscrit et connecté pour pouvoir écrire dans les forums

Page : 1
mseymour Posté le 20/04/2008 20:54 - #

Membre
7 messages
Voila une petite amélioration aux gagatemplates, très facile à implémenter:

une condition si une boucle qu'on essaye de parcourir dans un fichier .tpl n'existe pas.

Voila comment ça s'utilise:

<foreach var="$news" as="new">
        <div class="news">
                <h4>{new[titre]}</h4>
                <div>{new[contenu]}</div>
        </div>
<foreachelse/>
        <p>Il n'y a aucune new sur le site pour l'instant.</p>
</foreach>
 


Et pour le faire marcher, il suffit de rajouter à la fonction "parse_array()" la ligne de code suivante:

$c = str_replace('<foreachelse/>', '<?php }} else { if (true) {?>', $c);


ce qui donne:


private function parse_array($c) {
        for($i = 0; ($i < 10) && (strpos($c, '</foreach') !== FALSE); ++$i){
                $c = preg_replace('`<(foreach)\s*var="(.+)"\s*as="(.+)"\s*>((?:.(?!<foreach>))*)</foreach>`sU', '<?php if(isset(\2)){ foreach(\2 as $\3) { ?>\4 <?php }} ?>', $c);
        }

        //DEBUT DU RAJOUT
        $c = str_replace('<foreachelse/>', '<?php }} else { if (true) {?>', $c);
        //FIN DU RAJOUT

        return $c;
}
 


A méditer pour la prochaine version...

Edité par mseymour le 20/04/2008 20:57

gaga26 Posté le 21/04/2008 18:30 - #



741 messages
18 ans
J'aime bien, je note.

Tibo Posté le 22/04/2008 19:09 - #


Membre
22 messages
J'avoue que c'est une très bonne idée

Page : 1

Vous devez être inscrit et connecté pour pouvoir écrire dans les forums

Retour au forum Suggestions, à la liste des forums, ou au haut de page