12
Indiquez l’intérêt que vous portez à cette question
0

Trier les éléments d’une boucle avec #ARRAY pour un affichage de type pinterest

Bonjour... Après de longues recherches sur l’utilisation d’#ARRAY pour filtrer les éléments d’une boucle selon des critères ajoutés dans un tableau, je viens demander de l’aide.

Je souhaite afficher les vignettes de mes articles par date sur deux ou trois colonnes façon pinterest, c’est à dire par ordre chronologique inverse de gauche à droite, avec des boîtes de hauteur différentes, sans qu’il y est des vides disgracieux...

Solutions tentées

  • La solution avec un float en deux colonnes, avec le fameux column, présente l’inconvénient de remplir d’abord la première colonne, puis la deuxième... etc... ce qui fait que les articles qui se trouvent en tête de la deuxième ou la troisième... ne sont pas les deux avant-derniers postés.
  • J’ai tenté une ruse avec le filtre [(#COMPTEUR_BOUCLE|alterner{gauche, droite})], permettant d’attribuer à une vignette sur deux, dans l’ordre de la boucle, la classe CSS gauche ou droite. Puis d’attribuer à la classe "gauche" un float:left ; clear: left; et l’inverse à la classe "droite". Cela fonctionne presque... avec encore, de temps en temps, des "vides". Enfin, avec les float, cela se limite à deux colonnes.

Solution envisagée : avec #ARRAY

La logique envisagée :

  1. Stocker les id des articles voulus, par ordre chronologique inverse, dans un tableau avec #ARRAY, en leur ajoutant au passage une référence de colonne de destination (par exemple "gauche" ou "droite")
  2. Récupérer dans une première boucle ceux de la colonne "gauche"
  3. Récupérer dans une seconde boucle ceux de la colonne "droite"

Chaque colonne sera ainsi indépendante l’une de l’autre et il n’y aura pas de problème de "vides" entres les boîtes.

Le problème, c’est que je n’ai jamais utilisé #ARRAY... et surtout que je n’ai pas trouvé comment faire sur le web pour utiliser les éléments du tableau comme critères de tri.

J’ai uniquement la piste du début, sans même savoir si elle est bonne :

Est-ce la bonne démarche ? Si oui, comment récupérer ensuite dans une première boucle, les articles "gauche" puis dans une deuxième les articles "droite" ?

Merci !