SSI : Server Side Includes
Inclusions Côté Serveur
Les petits secrets de ce site
Cette page ne va pas vous expliquer ce que sont les SSI, tapez SSI Server Side Includes sur votre moteur de recherche préféré et vous trouverez des tonnes d'info sur le sujet. Certains pseudo-spécialistes plus ou moins snobs vous diront que les inclusions côté serveur sont obsolètes et remplacées par d'autres techniques bien plus modernes, et qu'une page portant l'extension .shtml est dépassée et à fuire car potentiellement dangereuse, mais il n'en est rien. Les SSI correctement employés sont très puissants, toujours d'actualité, sans risques, et irremplaçables sur un site HTML statique comme le mien.
L'extension .shtml n'est pas indispensable, on peut déclencher les SSI pour n'importe quel fichier (.html, .xhtml, .txt, etc), depuis le fichier .htaccess, sur ce modèle:
AddType text/html .shtml AddOutputFilter INCLUDES .shtml
Le menu de navigation
<header> <nav> <ul> <!--#if expr="%{DOCUMENT_URI} == '/page_1.shtml'" --> <li>Page 1</li> <!--#else --> <li><a href="page_1.shtml">Page 1</a></li> <!--#endif --> <!--#if expr="%{DOCUMENT_URI} == '/page_2.shtml'" --> <li>Page 2</li> <!--#else --> <li><a href="page_2.shtml">Page 2</a></li> <!--#endif --> ⋮ <!--#if expr="%{DOCUMENT_URI} == '/page_n.shtml'" --> <li>Page n</li> <!--#else --> <li><a href="page_n.shtml">Page n</a></li> <!--#endif --> </ul> </nav> </header>
Le code parle de lui-même: si l'adresse de la page est égale à [...] afficher le texte [...] sinon afficher le lien [...]. Ce qui a pour effet de désactiver le lien pour la page actuelle. Le menu, ou plutôt le header est appelé par l'inclusion HTML <!--#include file="header.shtml" -->
en haut de page (body).
Si l'on regarde le code-source de la page N°1 après l'inclusion du serveur, il apparaîtra tout simplement ceci:
<header> <nav> <ul> <li>Page 1</li> <li><a href="page_2.shtml">Page 2</a></li> ⋮ <li><a href="page_n.shtml">Page n</a></li> </ul> </nav> </header>
Le pied de page
Le footer est appelé par l'inclusion HTML <!--#include file="footer.shtml" -->
, où ça? En bas de page, évidemment.
<footer> <p>© Tartempion <!--#config timefmt="%Y" --><!--#echo var="DATE_LOCAL" -->, tous droits réservés.</p> ⋮ <p><!--#config timefmt="%F" --><!--#echo var="LAST_MODIFIED" --></p> </footer>
Encore une fois, le code est suffisamment explicite: il ne fait qu'insérer des dates. La date de l'année en cours pour le copyright et la date de dernière modification sur la page.