El criteri fusion
permet reagrupar els resultats d’un bucle SPIP segons els diferents valors d’un camp.
Si el bucle sense el criteri {fusion champ_sql}
porta diversos registres que tenen el mateix valor de champ_sql
, llavors, el bucle amb el criteri {fusion champ_sql}
només en presentarà un d’aquests.
Per això, la petició SQL generada integra una instrucció GROUP BY
.
Exemple ’pedagògic’
El següent bucle mostrarà els títols de tots els articles del lloc:
<BOUCLE_tous(ARTICLES)>
#TITRE
</BOUCLE_tous>
El bucle següent, amb un criteri fusion
que porti a la secció, partirà igualment de tots els articles, però els reagruparà per id_rubrique idèntica, i presentarà al final només un únic article per secció.
<BOUCLE_extrait(ARTICLES){fusion id_rubrique}>
#TITRE
</BOUCLE_extrait>
Exemples ’aplicats’
El següent bucle mostra els 10 missatges més recents del fòrum, escollits per data i procedents d’una IP diferent:
<BOUCLE_comment(FORUMS){plat}{par date}{inverse}{0,10}{fusion ip}>
<INCLURE{fond=inc/intro_commentaire}{id_forum}>
</BOUCLE_comment>
També és possible utilitzar expressions SQL en paràmetres del criteri. El següent bucle mostrarà la llista d’anys en els que, com a mínim, hi ha un article:
<BOUCLE_annees_avec_articles(ARTICLES){par date}{inverse}{fusion YEAR(date)}>
[(#DATE|annee)]
</BOUCLE_annees_avec_articles>
Una contribució mostra com fer servir aquest criteri per llistar els articles per any i, després, per mesos. Vegeu
Atenció
Un criteri de classificació {par xxx}
combinat amb el criteri {fusion champ_sql}
no ens retornarà necessàriament els resultats esperats.
- <BOUCLE_a1(ARTICLES){tout}{par id_article}>
torna els articles classificats per id_article (de l’1 al 10000 per exemple).
- <BOUCLE_a2(ARTICLES){par id_article}{fusion id_rubrique}>
torna els articles, classificats per id_article després d’agrupar-los per id_rubrique, però aquests reagrupaments estan fets desordenadament i, a priori, sense cap classificació especial!
Vegeu també
- el criteri {doublons}
- el filtre |unique