Carnet Wiki

Presenter SPIP pour des WebMestre

Des developpeurs expérimentés (Cobol, Oracle, Zend, SQL, Typo3....) brutalement confrontés à devoir comprendre SPIP -après avoir cherché dans les documentations- posent des questions intéressantes pour mettre en perspective leurs interrogations : les réponses apportées vous aideront certainement...

En bref, SPIP est bati pour faire d’abord une publication de pages Web, plus précisément des pages ARTICLES avec des DOCUMENTS joints : ces pages articles seront rangés dans une arborescence de RUBRIQUES, le tout étant stocké dans une structure de Base de Données pour permettre une gestion dynamique et collaborative.

La Structure générale de la base de données est la suivante :

Structure de principe de la BD SPIP
Structure de principe de la BD SPIP


-  une table des ARTICLES : titre, texte, etc... : cle = id_article
-  chacun rangé dans une arborescence de RUBRIQUES
(elles-mêmes rangées dans une RUBRIQUE de plus haut-niveau : par clé “réflexive” id_rubrique [1] )
-  à un article, on peut associer un/des DOCUMENTS (et d’autres objets/tables..)

Pour fournir un “site Web”, SPIP fonctionne sur un serveur d’hébergement Web, et propose nativement (dans sa “distribution” standard) les programmes (écrits en PHP) pour gérer la saisies des textes dans les articles, ce qu’on appelle la Rédaction en espace privé, et d’autre part propose aussi une version opérationnelle de construction des pages publiques, baties sur des fichiers-type en HTML, les squelettes, que le webmestre adaptera pour mieux présenter aux visiteurs, les données et la navigation dans le site...

Plus précisement, chaque fichier squelette est un fichier-type, souvent associé à une entité de la base de donnée ( article.html, rubrique.html... ) comportant les instructions HTML et CSS de mise en forme, autour des textes “extraits” de la base de données.

Les “instruction d’extraction” des textes contenus en base de données sont générées par des BOUCLEs de parcours de tables SQL, ecrites symboliquement en balises HTML-like, par exemple :

 
<BOUCLE_lire(ARTICLES) {id_article > 13} {age < 30} >
........ contenu à afficher...
</BOUCLE_lire>

[1Vous noterez immédiatement la “norme” : nom de table en MAJUSCULES PLURIELLES et nom de la clé au singulier, préfixé par id_.

YannX - Mise à jour :7 February 2019 at 15:21