Les paraules clau en les seccions

Tornem al fitxer «rubrique.html». Ho havíem deixat amb un malèvol BOUCLE_articles, sense interès pel nostre lloc Web, ja que no classificava els articles per categories.

El món és perfecte: acabem de programar una funció com aquesta pels articles!

N’hi ha prou, per tant, en copiar i enganxar el bloc que ens interessa, inserir-lo al lloc del BOUCLE_articles (que d’aquesta manera desapareix), i veure si cal fer-hi modificacions. Això el que ens dóna és:

	<BOUCLE_les_articles(RUBRIQUES){id_rubrique}>
		<B_tests><p>Les proves d'aquest joc:
		<ul>
		<BOUCLE_tests(ARTICLES){id_rubrique}{titre_mot=Test}>
			<li>
			<BOUCLE_tests_machines(MOTS){id_article}{type=Machines}>
				[(#LOGO_MOT)]
			</BOUCLE_tests_machines>
			<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
		</BOUCLE_tests>
		</ul>
		</B_tests>
		
		<B_previews><p>Les prèvies d'aquest joc:
		<ul>
		<BOUCLE_previews(ARTICLES){id_rubrique}{titre_mot=Preview}>
			<li>
			<BOUCLE_previews_machines(MOTS){id_article}{type=Machines}>
				[(#LOGO_MOT)]
			</BOUCLE_previews_machines>
			<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
		</BOUCLE_previews>
		</ul>
		</B_previews>

		<B_soluces><p>Les solucions d'aquest joc:
		<ul>
		<BOUCLE_soluces(ARTICLES){id_rubrique}{titre_mot=Soluce}>
			<li>
			<BOUCLE_soluces_machines(MOTS){id_article}{type=Machines}>
				[(#LOGO_MOT)]
			</BOUCLE_soluces_machines>
			<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
		</BOUCLE_soluces>
		</ul>
		</B_soluces>

		<B_astuces><p>Els trucs i astúcies d'aquest joc:
		<ul>
		<BOUCLE_astuces(ARTICLES){id_rubrique}{titre_mot=Astuces}>
			<li>
			<BOUCLE_astuces_machines(MOTS){id_article}{type=Machines}>
				[(#LOGO_MOT)]
			</BOUCLE_astuces_machines>
			<a href="#URL_ARTICLE">#TITRE</a> - [(#DATE|affdate)]
		</BOUCLE_astuces>
		</ul>
		</B_astuces>
		
		<BOUCLE_news(ARTICLES){id_rubrique}{titre_mot=News}{par date}{inverse}{0,1}>
		<p><a href="news_jeu.php3?id_rubrique=#ID_RUBRIQUE">Les notícies d'aquest joc</a> - última actualització: [(#DATE|affdate)]
		</BOUCLE_news>
	</BOUCLE_les_articles>

Les modificacions que aporta:
-  inútil canviar la petició id_rubrique, donat que era ja sobre aquesta secció que ens basàvem en els articles;
-  eliminem tots els {doublons}, no tenen aquí cap utilitat (no hi ha cap article que ja s’hagi mostrat); per tant, no cal arriscar-nos a tenir conflictes amb els futurs desenvolupaments de la nostra pàgina si no serveixen per a res;
-  el conjunt està instal·lat en un gran BOUCLE_les_articles. Què fa aquest bucle? Estrictament res: retorna la secció en la que ja ens trobem. Però ens serà útil a continuació...

L’altre punt feble de la nostra pàgina era el BOUCLE_jeux, en el qual el BOUCLE_avec_articles aprofitava el seu pas per mostrar la llista dels articles de la subsecció sense efectuar cap tria. Per això, triar els articles d’una secció, és el que acabem de fer més amunt.

Per tant, modifiquem el BOUCLE_jeux d’aquesta manera:

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

		<B_avec_articles>
		<h4><a href="#URL_RUBRIQUE">#TITRE</a></h4>
		[(#LOGO_RUBRIQUE|right)]
		<ul>
		<BOUCLE_avec_articles(ARTICLES){id_rubrique}{0,1}>
			<BOUCLE_rec(boucle_les_articles)></BOUCLE_rec>
		</BOUCLE_avec_articles>
		</ul>
		</B_avec_articles>
		
	</BOUCLE_jeux>

El BOUCLE_avec_articles s’executa a partir d’ara un sol cop (sobre un únic article), donat que en té prou per saber si conté un article. Veiem aparèixer un BOUCLE_repeter_articles: es tracta d’un bucle que reprodueix exactament el comportament del BOUCLE_les_articles, a partir de l’indret on es troba (és a dir que s’inicia a partir de la secció principal, sinó de la subsecció). A partir d’ara l’interès de limitar el BOUCLE_avec_articles a un element únic està clar: sense aquesta limitació, el BOUCLE_repeter_articles s’executarà tantes vegades com articles hi hagi a la subsecció.

Evidentment, el resultat gràfic d’aquest exemple és espantós: massa recarregat, poc clar. Però, diguem que era interessant utilitzar un «bucle recursiu» en aquest tutorial...

Autor merce Publié le : Mis à jour : 21/03/23

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