THELIA Forum

Welcome to the THELIA support and discusssion forum

Offline

#1 Boucles imbriquées

(21-01-2007 11:47:50)


Bonjour,

J'affiche dans la page rubrique la liste des produits appartenant à la rubrique. Pour chacun de ces produits je souhaite en afficher les caractéristiques. Dans ma boucle de type produit, j'inclus donc une rubrique de type caractéristiques qui elle même inclue une boucle de type caractval. C'est cette dernière boucle qui ne fonctionne pas

  <THELIA_PRODUIT type="PRODUIT" num="6" rubrique="#RUBRIQUE_ID" >
     #TITRE
     <THELIA_CARACTERISTIQUE type="CARACTERISTIQUE" rubrique="#RUBRIQUE_ID" produit="#ID">
       #TITRE :
       <THELIA_CARACVAL type="CARACVAL" caracteristique="#ID" produit="#ID">
          #VALEUR
       </THELIA_CARACVAL>
     </THELIA_CARACTERISTIQUE>
  </THELIA_PRODUIT>

La caractéristique et le produit sont identifiés par la même variable #ID. A moins qu'il n'existe une autre solution (et que je sois passée à côté), pourrait-on envisager de suffixer les variables #ID retournées par les boucles ? Par exemple la boucle produit retournerait #ID_PRODUIT, la boucle caractéristique #ID_CARACTERISTIQUE,...

Merci !
PitchOu

Last edited by pitchou (21-01-2007 11:49:10)

  • yoan
  • Cofondateur Thelia

Offline

#2 Re: Boucles imbriquées

(21-01-2007 16:22:43)


Il faut tout simplement que je rende possible la sortie d'un #PRODUIT sur la boucle caractéristique.

En effet jusque là je n'étais jamais tombé sur ce cas. En général l'affichage des caractéristiques se passait sur une page produit et on utilisait donc un #PRODUIT_ID ( substitution ). Je vais faire la modification rapidement.

Merci pour l'info


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline

#3 Re: Boucles imbriquées

(21-01-2007 20:36:29)


En fait, j'ai apporté la modification suivante. Pour chaque boucle j'offre la possibilité de renseigner un paramètre prefixe qui permet éventuellement de préfixer les variables retournées par la boucle.

Par exemple
    <THELIA_PRODUIT type="PRODUIT" num="6" rubrique="#RUBRIQUE_ID" prefixe="B_PRODUIT_"> 
          #B_PRODUIT_TITRE
       </THELIA_PRODUIT>

Cela permet donc d'imbriquer les boucles sans difficultés (je pense qu'on y gagne aussi en lisibilité). Cela m'a egalement permis de mettre entre parenthèses dans parseur.php le code suivant :    

  if( ($profondeur == 2 && ! strstr($tab[$i], "<THELIA")) || $profondeur>2 )
    $tab[$i] = ereg_replace("#", "#THNO", $tab[$i]);

qui me posait problème dans certains cas.

Si la boucle ne contient pas de boucle imbriquée, il n'est pas utile de renseigner le préfixe et le nom des variables n'est pas modifié.

Mes modifications concernent donc le fichier boucles.php et parseur.php. Si ces modications vous interesse, pas de soucis pour vous les fournir !

Bonne soirée,
PitchOU

  • yoan
  • Cofondateur Thelia

Offline

#4 Re: Boucles imbriquées

(22-01-2007 08:18:15)


C'est une très bonne idée mais si j'intègre cela tel quel, il faudra renseigner un préfixe en plus.

J'ai que ça rende plus complexe l'utilisation des boucles par les utilisateurs.

Cependant votre modification me donne une autre idée.

Pourquoi on se préfixerait pas automatiquement avec le nom de la boucle ? Le mécanisme serait du coup automatique.

Quel est le soucis que vous pose #THNO ?

Merci pour votre participation active et pour vos bonnes idées en tous cas !


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline

#5 Re: Boucles imbriquées

(22-01-2007 09:36:39)


Ah oui, c'est vrai que le préfixer avec le nom de la boucle pourrait être une solution plus simple ! (peut être supprimer THELIA pour que cela ne soit pas trop lourd ?)

Avant d'essayer la méthode du préfixe en paramètre, j'avais préfixé certaines variable en dur. Par exemple la boucle produit me renvoyait #ID_PRODUIT à la place de #ID. Avec #THNO, ce n'etait pas #ID_PRODUIT qui était remplacé mais #ID uniquement. Je me retrouvais donc avec par exemple une valeur 2_PRODUIT, 2 etant le ID d'une autre boucle.

  • yoan
  • Cofondateur Thelia

Offline

#6 Re: Boucles imbriquées

(22-01-2007 10:37:37)


J'ai bien réfléchis à cette histoire de préfixe et ça rend plus complexe quoi qu'il en soit l'utilisation des boucles même si c'est pourtant une élégante solution.

Je vais permette la sortie du produit pour que votre boucle puisse fonctionner.
Votre boucle fonctionnera donc sans modification.

Je préfère opter pour la modification des boucles non complètes pour pouvoir maîtriser plus en détail l'utilisation générale.

Si vous avez d'autres idées, n'hésitez pas et encore merci pour votre participation.

Vous réalisez un site en ce moment avec Thelia ?


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline

#7 Re: Boucles imbriquées

(22-01-2007 14:32:29)


Ok, pas de soucis ;-)

De mon côté, je pense que je vais tout de même continuer avec la solution des préfixes !

Sinon oui je suis bien en train de developper un site avec Thelia (cela faisait longtemps que je cherchais une solution propre pour me lancer). Cela n'avance maheureusement pas aussi vite que je le souhaiterais parce que je le fais sur mon temps libre... J'en dirais plus lorsque je serais certaine que cela aboutira sur quelque chose de concret ;-)

Last edited by pitchou (22-01-2007 14:33:20)

Offline

#8 Re: Boucles imbriquées

(09-05-2007 15:59:21)


Bonjour,

Je relance le débat.
Il n'est pas possible de faire fonctionner les boucles imbriquées ou je m'y prend mal ?

Je travaille sur la 1.2.0 et je rencontre le même problème que pitchou (boucles caracteristiques imbriquées dans une boucle produit, juste un produit).
Comment faire ?
Obligé de préfixer les boucles ?

  • yoan
  • Cofondateur Thelia

Offline

#9 Re: Boucles imbriquées

(09-05-2007 16:27:26)


Non il ne faut pas
<THELIA_CARACVAL type="CARACVAL" caracteristique="#ID" produit="#ID">
mais
<THELIA_CARACVAL type="CARACVAL" caracteristique="#ID" produit="#PRODUIT">

#PRODUIT est retourné par la boucle CARACTERISTIQUE qui précède


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline

#10 Re: Boucles imbriquées

(09-05-2007 17:19:13)


ça marche !
j'ai un peu de mal à assimiler le dictionnaire des données...

Merci !

Offline

#11 Re: Boucles imbriquées

(12-04-2016 16:26:42)


Bonjour

J'ai régulièrement ce besoin et jusqu'à présent je faisais un #SET pour mémoriser la valeur pour pouvoir l'utiliser dans les boucles imbriquées.
Mais c'est vraiment lourdingue.

Depuis THELIA 1.5, ce concept avec préfixage avec le nom de boucle a t'il été implémenté ? Y'a t'il une solution plus élégante que le #SET ?


Guide, conseils et Matériaux pour construire une Terrasse en Bois

Autoconstruction, Abri et Cabane, terrasse bois, maçonnerie, ossature-bois

Offline