jo wrote:
Bonjour
Je voudrais garder le résultat d'une boucle dans un tableau pour la
réutiliser dans une autre boucle.
L'idée est donc de remplir un tableau
J'ai essayé :
#SET{mes_articles,#ARRAY}
<BOUCLE_art(ARTICLES){id_article=1}>
[(#SET{mes_articles,[(#GET{mes_articles}|push{#ID_ARTICLE})]})]
</BOUCLE_art>
test de récupération de mes articles
<BOUCLE_art_recup(ARTICLES){id_article IN #GET{mes_articles}}>
#ID_ARTICLE
</BOUCLE_art_recup>
avec le filtre push :
function push($array, $val) {
if($array == '' OR !array_push($array, $val)) return '';
return $array;
}
Et bien çà fonctionne; mais quand la première boucle est dans un
inclure on ne récupère pas le tableau dans le squelette appelant.
Comment faire remonter l'info sur le tableau?
_______________________________________________
Pour ce qui est de faire remonter c'est une autre chose...
Mais pour la première partie il y a plus simple.
C'est d'utiliser le doublons "négatif".
Le doublons étant un critère négatif par défaut, en dissant {!doublons},
dans ta seconde boucle, au lieu d'exclure les articles lister dans le doublons,
tu sélectionne ces derniers.
<BOUCLE_art(ARTICLES){id_article=1} {doublons} >
</BOUCLE_art>
<BOUCLE_art_recup(ARTICLES){!doublons}}>
#ID_ARTICLE
</BOUCLE_art_recup>
C'est utile par ce que tu peux, par exemple sélectionner des articles dans plusieurs boucles différentes,
par exemple pour sélectionner le plus récent dans 4 rubriques différentes.
Puis, ensuite trier dans une nouvelle boucle ces derniers selon un autre critère.
Par exemple ne garder que les 4 plus récents des 8.
Tu peux même faire plusieurs listes différentes en utilisant les doublons nommés.
Si ça peut t'aider...
iago