Le parole chiave nelle rubriche

Ritorniamo al file "rubrique.html". L’avevamo lasciato con un misero ciclo BOUCLE_articoli, inutile per il nostro sito poiché non ordinava gli articoli per categoria.

La vita è bella: abbiamo appena finito di programmare tale funzionalità per i nostri articoli!

È sufficiente copiare e incollare il blocco che ci interessa, inserirlo al posto del ciclo BOUCLE_articoli (che quindi scompare), e di vedere se è necessaria qualche modifica. Il risultato è il seguente:

	<BOUCLE_gli_articoli(RUBRIQUES){id_rubrique}>
		<B_test><p>I test di questo gioco:
		<ul>
		<BOUCLE_test(ARTICLES){id_rubrique}{titre_mot=Test}>
			<li>
			<BOUCLE_test_piattaforme(MOTS){id_article}{type=Piattaforme}>
				[(#LOGO_MOT)]
			</BOUCLE_test_piattaforme>
			<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
		</BOUCLE_test>
		</ul>
		</B_test>
		
		<B_anteprime><p>Le anteprime di questo gioco:
		<ul>
		<BOUCLE_anteprime(ARTICLES){id_rubrique}{titre_mot=Anteprima}>
			<li>
			<BOUCLE_anteprime_piattaforme(MOTS){id_article}{type=Piattaforme}>
				[(#LOGO_MOT)]
			</BOUCLE_anteprime_piattaforme>
			<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
		</BOUCLE_anteprime>
		</ul>
		</B_anteprime>

		<B_soluzioni><p>Le soluzioni di questo gioco:
		<ul>
		<BOUCLE_soluzioni(ARTICLES){id_rubrique}{titre_mot=Soluzione}>
			<li>
			<BOUCLE_soluzioni_piattaforme(MOTS){id_article}{type=Piattaforme}>
				[(#LOGO_MOT)]
			</BOUCLE_soluzioni_piattaforme>
			<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
		</BOUCLE_soluzioni>
		</ul>
		</B_soluzioni>

		<B_trucchi><p>I trucchi e i suggerimenti di questo gioco:
		<ul>
		<BOUCLE_trucchi(ARTICLES){id_rubrique}{titre_mot=Trucchi}>
			<li>
			<BOUCLE_trucchi_piattaforme(MOTS){id_article}{type=Piattaforme}>
				[(#LOGO_MOT)]
			</BOUCLE_trucchi_piattaforme>
			<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
		</BOUCLE_trucchi>
		</ul>
		</B_trucchi>
		
		<BOUCLE_news(ARTICLES){id_rubrique}{titre_mot=News}{par date}{inverse}{0,1}>
		<p><a href="news_gioco.php3?id_rubrique=#ID_RUBRIQUE">Le news di questo gioco</a> - ultimo aggiornamento: [(#DATE|affdate)]
		</BOUCLE_news>
	</BOUCLE_gli_articoli>

Le modifiche effettuate sono:
-  inutile cambiare la richiesta {id_rubrique}, poiché negli articoli ci basavamo già su questa rubrica;
-  cancelliamo tutti i criteri {doublons}, perché in questa sede non sono utili (non ci sono articoli già mostrati); inoltre si evita il rischio di conflitti con gli sviluppi futuri della nostra pagina;
-  il tutto viene inserito in un ciclo principale BOUCLE_gli_articoli. Cosa fa questo ciclo? Sinceramente parlando, nulla: esso rinvia la rubrica nella quale già ci troviamo. Ma ci sarà utile in seguito...

L’altro punto debole della nostra pagina era il ciclo BOUCLE_giochi, nel quale il ciclo BOUCLE_con_articoli approfittava del suo passaggio per mostrare l’elenco degli articoli della sotto-rubrica senza effettuare un ordinamento. Ora, ordinare gli articoli di una rubrica è quel che abbiamo appena fatto sopra.

Quindi, modifichiamo il ciclo BOUCLE_giochi nel modo seguente:

	<BOUCLE_giochi(RUBRIQUES){id_parent}{par titre}>

		<B_con_articoli>
		<h4><a href="#URL_RUBRIQUE">#TITRE</a></h4>
		[(#LOGO_RUBRIQUE|right)]
		<ul>
		<BOUCLE_con_articoli(ARTICLES){id_rubrique}{0,1}>
			<BOUCLE_ricorsivo(boucle_gli_articoli)></BOUCLE_ricorsivo>
		</BOUCLE_con_articoli>
		</ul>
		</B_con_articoli>
		
	</BOUCLE_giochi>

Adesso il ciclo BOUCLE_con_articoli è effettuato una sola volta (su di un solo articolo), e ciò è sufficiente per sapere se esso contiene un articolo. Vediamo apparire un ciclo BOUCLE_ricorsivo: si tratta di un ciclo che riproduce esattamente il comportamento del ciclo BOUCLE_gli_articoli, a partire dal luogo in cui si trova (cioè, che esso si avvia non più dalla rubrica principale, ma dalla sotto-rubrica). L’utilità di limitare il ciclo BOUCLE_con_articoli a un unico elemento è ora chiara: senza tale limite, il ciclo BOUCLE_ricorsivo sarebbe eseguito tante volte quanti sono gli articoli nella sotto-rubrica.

Ovviamente, il risultato grafico di questo esempio è ignobile: troppo carico e poco chiaro. Diciamo che sarebbe interessante utilizzare un "ciclo ricorsivo" in questo tutorial...

Autore Fausto Barbarito Publié le : Mis à jour : 21/03/23

Traductions : عربي, català, Español, français, italiano