Encore ce soucis de TPL
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Je reviens vers vous pour un autre soucis (probablement lié au TPL) depuis hier soir je bute sur un problème.
Effectivement actuellement entrain de developpé un module de tutoriel, donc qui comprends des "Rubriques" ainsi que des chapitres,
Cela soit être comme ça
Rubrique 1
Chapitre 1
Chapitre 2
Chapitre 3
Rubrique 2
Chapitre 4
Chapitre 5
Etc
En PHP avec le echo ça fonctionne bien, mais si je fait les boucles en TPL ça me fait un petit problème de ce genre
Rubrique 1
Chapitre 1,2,3,4,5
Rubrique 2
Chapitre 1,2,3,4,5
Donc en fait ça met tous les chapitres dans toutes les rubriques
Voici mon code
Code PHP :
// On affiche d'abord les rubriques while ($partie = $liste_partie->fetch()) { // On déclare dans le TPL la liste des rubriques $tpl->assign_block_vars('parties', array( 'NOM' => $partie['nom'] )); while ($chapitre = $liste_chapitre->fetch()) { // Conditions qui associe l'id rubrique du chapitre à l'id de la rubrique if ($chapitre['id_partie'] == $partie['id']) { $tpl->assign_block_vars('chapitres', array( 'TITRE' => $chapitre['titre'] )); } } }
Et le code TPL
Code TPL :
Je sais pas vraiment d'où viens le problème vu qu'avec les balises ECHO en php ça fonctionne parfaitement
xela Membre non connecté
- Modérateur
- Voir le profil du membre xela
- Inscrit le : 26/12/2015
- Groupes :
- Equipe Rédaction
Vous travaillez avec des boucles imbriquées :
Exemple tpl de la doc
Code TPL :
# START boucle1 # Code répété dans la boucle 1: {boucle1.VARBOUCLE_1} # START boucle1.boucle2 # Code répété dans la boucle 2: {boucle1.boucle2.VARBOUCLE_2} # END boucle1.boucle2 # # END boucle1 #
Donc perso je partirai sur cette syntaxe.
Cordialement,
Xela
Édité par xela Le 20/01/2018 à 21h48
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
xela Membre non connecté
- Modérateur
- Voir le profil du membre xela
- Inscrit le : 26/12/2015
- Groupes :
- Equipe Rédaction
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Le code affiche que les titres des parties et pas le titre des chapitres
ElenWii Membre non connecté
- Administrateur
- Voir le profil du membre ElenWii
- Inscrit le : 14/08/2009
- Site internet
- Groupes :
- Equipe Graphique
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Mais même en remplacant {parties.chapitres.TITRE} par du texte le texte ne s'affiche pas
babsolune Membre non connecté
Administrateur
- Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
Citation :
Mais même en remplacant {parties.chapitres.TITRE} par du texte le texte ne s'affiche pas
il faut déclarer aussi parties.chapitres en php
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Merci à vous deux !!
Mais est-ce-que vous pouvez m'expliquer la différence du coup ? Parce que finalement c'est un peu comme j'avais fais hier, enfin je vois pas ce qui change à part les noms ?
xela Membre non connecté
- Modérateur
- Voir le profil du membre xela
- Inscrit le : 26/12/2015
- Groupes :
- Equipe Rédaction
dans votre code initial (tpl + php), votre deuxieme liste n'était pas inclus dans la 1ere d'ou vos résultats erronés.
Si on souhaite faire des boucles imbriquées, il faut récupérer le nom de votre liste parente pour linclure dans votre liste.
D'un autre coté je ne suis pas dev donc... je ne vais pas faire de long discours .
Cordialement,
Xela.
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
J'ai de nouveau une petite question,
Dans mon url j'ai un paramètre GET comment puis-je vérifier l'égalité de ce paramètre avec une autre variable, mais bien sûr en TPL, j'ai essayer ceci
Code PHP :
foreach($liste_partie as $partie){ $tpl->assign_block_vars('parties', array( 'NOM' => $partie['nom'], )); foreach($liste_chapitre as $chap){ if(chap['id'] == $id_chapitre_get){ // Assignation ici d'une variable TPL pour ajouter le selected } if ($chap['id_partie'] == $partie['id']) { $tpl->assign_block_vars('parties.chapitres', array( 'TITRE' => $chap['titre'], )); } } }
En gros j'ai un select, et quand on met le paramètre dans l'url, la page affiche directement la bonne valeur, donc le selected de la liste, mais je vois pas comment faire du coup
Merci encore
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Pour celles et ceux que ça intéresse
Code PHP :
$tpl->assign_block_vars('parties.chapitres', array( 'TITRE' => $chap['titre'], 'SELECTED' => ($chap['id'] == $id_chapitre) ? true: false, ));
Puis faire une condition dans le template du genre
Code TPL :
# IF parties.chapitres.SELECTED# MON Code # ENDIF#
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie