Une première version du sommaire

Nous commençons à avoir une idée plus précise de la navigation de notre site. Réalisons une première version du sommaire.

<html>
<head>
<title>[#NOM_SITE_SPIP] Sommaire</title>
</head>
<body>

<center>
<a href="sorties.php3">Les prochaines sorties</a>
| <a href="notes.php3">Les meilleurs jeux du moment</a>
</center>

	<BOUCLE_secteurs(RUBRIQUES){id_parent=0}{par titre}>
		<p><b><a href="#URL_RUBRIQUE">#TITRE</a></b>
		
		<B_sous_rubriques>
		<ul>
		<BOUCLE_sous_rubriques(RUBRIQUES){id_parent}>
			<li><a href="#URL_RUBRIQUE">#TITRE</a>
		</BOUCLE_sous_rubriques>
		</ul>
		</B_sous_rubriques>
		
	</BOUCLE_secteurs>	

</body>
</html>

Avant de placer les boucles qui permettront d’afficher les nouveautés du site, nous nous contentons de créer (à la main) les liens vers les deux sommaires alternatifs, et d’afficher la structure du site (uniquement les grandes rubriques et leurs sous-rubriques).

Installons la liste des cinq plus récents tests publiés sur le site. Pour chacun, nous afficherons (en plus du logo, du titre du test, et son descriptif) :
-  une boucle (RUBRIQUES) pour récupérer le titre du jeu ;
-  une boucle (MOTS) avec pour type de mot « note » pour afficher la note ;
-  une seconde boucle (MOTS) avec pour type « machines » pour afficher le logo des machines concernées.

Rien que nous ne sachions déjà faire.

<BOUCLE_tests(ARTICLES){titre_mot=test}{par date}{inverse}{0,5}>
	<p><div style="border:1px solid black">
	[(#LOGO_ARTICLE_RUBRIQUE|left|#URL_ARTICLE)]

	<BOUCLE_rub_tests(RUBRIQUES){id_rubrique}>
	<h3>#TITRE</h3>
	</BOUCLE_rub_tests>

	<h4>#TITRE</h4>
	
	<BOUCLE_note_tests(MOTS){id_article}{type=Note}>
	<b>NOTE : #TITRE/10</b><p>
	</BOUCLE_note_tests>
	
	<BOUCLE_mac_tests(MOTS){id_article}{type=Machines}>
	[(#LOGO_MOT|left)]
	</BOUCLE_mac_tests>
		
	[(#DESCRIPTIF)]
	<p align="right"><a href="#URL_ARTICLE">Lire ce test...</a>
	</div>
</BOUCLE_tests>

Ajoutons maintenant les cinq dernières previews, cinq soluces et cinq astuces. Les présentations sont différentes à chaque fois, mais le principe est rigoureusement similaire à la boucle précédente (dans des versions simplifiées, puisque nous voulons afficher moins d’informations) :

<B_previews>
<p><b>Previews :</b>
<ul>
<BOUCLE_previews(ARTICLES){titre_mot=preview}{par date}{inverse}{0,5}>
	
	<BOUCLE_rub_previews(RUBRIQUES){id_rubrique}>
	<li><b>#TITRE</b> /
	</BOUCLE_rub_previews>

	<a href="#URL_ARTICLE">#TITRE</a>
	
	<BOUCLE_mac_previews(MOTS){id_article}{type=Machines}>
	[(#LOGO_MOT)]
	</BOUCLE_mac_previews>

</BOUCLE_previews>
</ul>
</B_previews>

<B_soluces>
<p><b>Soluces :</b>
<ul>
<BOUCLE_soluces(ARTICLES){titre_mot=soluce}{par date}{inverse}{0,5}>
	
	<BOUCLE_rub_soluces(RUBRIQUES){id_rubrique}>
	<li><b><a href="#URL_ARTICLE">#TITRE</a></b>
	</BOUCLE_rub_soluces>
	
	<BOUCLE_mac_soluces(MOTS){id_article}{type=Machines}>
	(#TITRE)
	</BOUCLE_mac_soluces>

</BOUCLE_soluces>
</ul>
</B_soluces>


<B_astuces>
<p><b>Astuces :</b>
<ul>
<BOUCLE_astuces(ARTICLES){titre_mot=astuces}{par date}{inverse}{0,5}>
	
	<BOUCLE_rub_astuces(RUBRIQUES){id_rubrique}>
	<li><b><a href="#URL_ARTICLE">#TITRE</a></b>
	</BOUCLE_rub_astuces>
	
	<BOUCLE_mac_astuces(MOTS){id_article}{type=Machines}>
	(#TITRE)
	</BOUCLE_mac_astuces>

</BOUCLE_astuces>
</ul>
</B_astuces>

Enfin, la liste des news. Toujours le même principe ; cette fois, le lien hypertexte pointe vers la page commune aux news d’un jeu. Le lien se fait sur le titre du jeu (c’est-à-dire le titre de la rubrique), et nous affichons le titre de la news.

<B_news>
<p><b>News :</b>
<ul>
<BOUCLE_news(ARTICLES){titre_mot=news}{par date}{inverse}{0,5}>
	
	<BOUCLE_rub_news(RUBRIQUES){id_rubrique}>
	<li><b><a href="news_jeu.php3?id_rubrique=#ID_RUBRIQUE">#TITRE</a>:</b>
	</BOUCLE_rub_news>
	#TITRE
	
</BOUCLE_news>
</ul>
</B_news>

Il nous reste désormais à indiquer la structure thématique du site (par grand genre de jeux : Action/aventure, Plateforme, Sport...). Là encore rien de bien compliqué :

<BOUCLE_secteurs(RUBRIQUES){id_parent=0}{par titre}>
		<p><b><a href="#URL_RUBRIQUE">#TITRE</a></b>
		
		<B_sous_rubriques>
		<ul>
		<BOUCLE_sous_rubriques(RUBRIQUES){id_parent}>
			<BOUCLE_art_sous(ARTICLES){id_rubrique}>
			</BOUCLE_art_sous>
			<li><a href="#URL_RUBRIQUE">#TITRE</a>
			<//B_art_sous>
		</BOUCLE_sous_rubriques>
		</ul>
		</B_sous_rubriques>
		
	</BOUCLE_secteurs>

Notons tout de même cette subtilité : dans les sous-rubriques, la BOUCLE_art_sous vérifie la présence d’articles (cette boucle n’affiche rien). L’affichage du titre et du lien et du titre de la sous-rubrique n’est effectif que s’il n’y pas de rubrique dans la sous-rubrique, puisque cet affichage est placé dans le texte optionnel alternatif. En effet, il ne faudrait pas afficher les rubriques de jeu placés directement dans une rubrique.

Notre sommaire est complet. Pas terminé pour autant (dans les articles suivants, nous étendrons encore ses possibilités), mais complet :
-  la structure thématique du site par grande rubriques de type de jeux est présentée ;
-  les tests récents (dont nous considérons - et c’est un choix éditorial - qu’ils constituent l’élément le plus important du site) sont affichés de manière très visible ;
-  nous exploitons l’indication des machines ;
-  nous exploitons les « types d’articles » (les news, previews, tests, soluces, astuces sont présentés séparément) ;
-  la note des jeux est exploitée, ainsi que les dates des sorties...

Tout cela, notez bien, sans utiliser la moindre ligne de code PHP, et sans modifier la structure de la base de données. Nous n’avons même pas détourné certaines indications des articles pour y arriver (on aurait pu par exemple décider que le surtitre des articles serait utilisé pour indiquer la machine, et le soustitre pour indiquer la note ; nous aurions ainsi pu afficher ces informations).

Auteur L’équipe de SPIP Publié le : Mis à jour : 26/10/12

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