Principio generale
Questo esempio mostra come pubblicare una una miscela di articoli e rubriche.
Il problema per visualizzare assieme rubriche e articoli è che è che non si può fare un ciclo che seleziona alllo stesso tempo stesso i due tipi di elementi.
È possibile creare un ciclo o di ARTICOLI o di RUBRICHE
Siamo quindi obbligati a utilizzare due cicli diversi, il che complica un po la pubblicazione dei due tipi di oggetti in una unica lista ordinata.
Qui è un ciclo che offre una soluzione per la visualizzazione in ordine di data :
Ecco un ciclo che offre una soluzione per la visualizzazione in ordine di data :
<BOUCLE_rubriques(RUBRIQUES) {par date} {inverse}>
<BOUCLE_articles(ARTICLES) {par date} {inverse} {doublons} {date>#DATE}>
Article: #DATE #TITRE<br>
</BOUCLE_articles>
Rubrique: #DATE #TITRE<br>
</BOUCLE_rubriques>
<BOUCLE_article_fin(ARTICLES) {par date} {inverse} {doublons}>
Article: #DATE #TITRE<br>
</BOUCLE_article_fin>
Il cui risultato sarà :
Rub: 2005-07-21 16:55:59 Blog
Art: 2005-07-21 16:39:54 And you, where are you?
Art: 2005-07-08 17:12:38 Resta politici brillanti (almeno 1)
Art: 2005-07-04 16:33:58 Déménagement
Rub: 2005-07-01 16:08:12 Computing
Rub: 2005-07-01 16:08:12 Out There
Art: 2005-07-01 16:08:12 Easy Personal Podcasting
Art: 2005-07-01 15:38:30 Ecole Polytechnique de ???
La soluzione è in realtà facile da capire :
- si comincia con un ciclo su tutte le rubriche (BOUCLE_rubriques)
- per ogni rubrica si controlla se ci sono articoli che devono essere pubblicati prima grazie al criterio
{date>#DATE}
- poi si pubblica la rubrica
- dopo aver pubblicato tutte le rubriche si pubblicano gli articoli restanti. Quelli più vecchi di tutte le rubriche del sito
Il criterio {doublons}
permette di non stampare gli articoli più di una volta.
Altri ordinamenti
Se si desidera cambiare il criterio di ordinamento bisogna modificare i criteri di conseguenza per i campi desiderati.
Per esempio se uno vuole ordinare attraverso i numeri nei titoli si può modificare il codice così :
-
{par date} {inverse}
con{par num titre}
-
{date>#DATE}
con{titre<#TITRE}
Sottigliezze con id_rubrique
Fate attenzione : questo ciclo selezionava tutti gli articoli e le rubriche del sito.
Se si desidera pubblicare solo gli articoli e le sottorubriche di una rubrica data è necessario modificare opportunamente il criterio id_rubrique nel ciclo degli articoli
_articles.
EImmaginiamo di essere dentro al seguente ciclo :
<BOUCLE_principale(RUBRIQUES) {id_rubrique}>
{id_rubrique}
nel ciclo _articles, si selezioneranno solo gli articoli dellla rubrica del ciclo _rubriques e non quelli della rubrica del ciclo _principale
.
Dovremo dunque utilizzare questo criterio :
{id_rubrique = #_principale:ID_RUBRIQUE}
che specifica che si devono prendere gli articoli della rubrica principale.
Si avrà dunque :
<BOUCLE_principale(RUBRIQUES) {id_rubrique}>
...
<BOUCLE_rubriques(RUBRIQUES) {id_parent} {par date} {inverse}>
<BOUCLE_articles(ARTICLES) {id_rubrique=#_principale:ID_RUBRIQUE} {par date} {inverse} {doublons} {date>#DATE}>
Article: #DATE #TITRE<br>
</BOUCLE_articles>
Rubrique: #DATE #TITRE<br>
</BOUCLE_rubriques>
<BOUCLE_article_fin(ARTICLES) {id_rubrique} {par date} {doublons}>
Article: #DATE #TITRE<br>
</BOUCLE_article_fin>
...
</BOUCLE_principale>
Altre miscele
Si possono mescolare tra loro allo stesso modo anche altri elementi di spip. Ad esempio articoli e brevi.
<BOUCLE_breves(BREVES) {par date} {inverse}>
<BOUCLE_articles(ARTICLES) {par date} {inverse} {doublons} {date>#DATE}>
Article: #DATE #TITRE<br>
</BOUCLE_articles>
Rubrique: #DATE #TITRE<br>
</BOUCLE_breves>
<BOUCLE_article_fin(ARTICLES) {par date} {inverse} {doublons}>
Article: #DATE #TITRE<br>
</BOUCLE_article_fin>
Ci si può spingere oltre e mescolare tre elementi differenti :
<BOUCLE_rubriques(RUBRIQUES) {par date} {inverse}>
<BOUCLE_articles(ARTICLES) {par date} {inverse} {doublons} {date>#DATE} {lang}>
<BOUCLE_breves(BREVES) {par date} {inverse} {doublons} {date>#DATE} {lang}>
Brev: #DATE #TITRE<br>
</BOUCLE_breves>
Art: #DATE #TITRE<br>
</BOUCLE_articles>
<BOUCLE_breves2(BREVES) {par date} {inverse} {doublons} {date>#DATE} {lang}>
Brev: #DATE #TITRE<br>
</BOUCLE_breves2>
Rub: #DATE #TITRE<br>
</BOUCLE_rubriques>
<BOUCLE_article_fin(ARTICLES) {par date} {inverse} {doublons} {lang}>
<BOUCLE_breves_fin1(BREVES) {par date} {inverse} {doublons} {date>#DATE} {lang}>
Brev: #DATE #TITRE<br>
</BOUCLE_breves_fin1>
Art: #DATE #TITRE<br>
</BOUCLE_article_fin>
<BOUCLE_breves_fin2(BREVES) {par date} {inverse} {doublons} {date>#DATE} {lang}>
Brev: #DATE #TITRE<br>
</BOUCLE_breves_fin2>
In questo modo si mescolano rubriche articoli e brevi. Si è aggiunto un ciclo BREVES che sono considerate prima di tutto il resto.
Si ha dunque :
- il ciclo _breves nel ciclo _articles che trova le brevi più giovani dell’articolo corrente,
- il ciclo _breves2 nel ciclo _rubriques che trova tutte le brevi più giovani della rubrica ma più vecchi dell’articolo più giovane della rubrica,
- il ciclo _breves_fin1 nel ciclo _article_fin che trova le brevi più giovani dell’articolo più vecchio di tutta la rubrica.
- il ciclo _breves_fin2 che trova le brevi più di tutti gli articoli e rubriche
Non è bello tutto questo ?
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |