Categories
Uncategorized

Structure générale de spip

SPIP est un CMS unique en son genre.

Au delà de son fonctionnement qu’on peut qualifier de “data driven”, à savoir piloté par les données (les fameuses BOUCLES), il a toujours fourni en première ligne les moyens de “customiser”, adapter son fonctionnement et sa présentation au goût et aux besoins propres au site.

C’était d’abord la possibilité de fournir ses propres “squelettes” (templates), d’adjoindre des fragments de php spécifiques et de surcharger les fonctions de base du core (les xxx_dist() que nous verrons plus loin).

La version 1.9 introduit un mécanisme complémentaire, les plugins. Ils sont issus de la volonté d’ouvrir spip à des fonctionnalités supplémentaires sans alourdir le noyau de SPIP (le core). La tendance actuelle est même d’alléger ce core en transférant les fonctionnalités optionnelles dans des plugins. SPIP 2.0 devrait être réduit et livré avec une collection de plugins “de base” que l’utilisateur activera selon ce qu’il utilise réellement. Par exemple, il est question que les brêves ne soient plus dans ce core mais dans un plugin optionnel. En effet, seule une partie des installations les utilisent et il est préférable de ne pas alourdir le système de base pour ceux qui n’en ont pas besoin.

Mais déjà, SPIP 1.9 a complètement réorganisé les répertoires qui le constituent afin de bien séparer les éléments selon leur durée de vie, le fait qu’il soient modifiables et leur appartenance à ce qui est propre ou spécifique au site ou au code de base. Un des autres objectifs visés ici est la possibilité de mutualiser le noyau : que plusieurs sites puissent partager une base de code commune.

Etudions d’abord cette nouvelle organisation des répertoires, de ce qui appartient à SPIP à ce qui est propre au site, de ce qui reste constant à ce qui bouge.


DISTRIBUTION


racine du site

La racine a été complètement vidée et ne contient pratiquement plus que index.php qui redirige sur spip.php, c’est maintenant l’unique point d’entrée de la partie publique du site.

inc-public.php3 est un fichier fantome pour assurer la compatibilite ascendante.

.htaccess optionnel pour l’url rewriting essentiellement.

win_png.htc et rien.gif pour assurer la transparence png avec MSIE

ecrire/

Ce dossier contient maintenant l’ensemble des fichiers interprétables côté serveur (PHP et MySQL) et ce, aussi bien pour le coté “public” (sous-dossier public/) que pour le coté “privé”.

Le nom de ce dossier est historique, c’était auparavant là où on trouvait le code permettant de modifier le contenu du site. Paradoxalement, c’est un dossier maintenant immuable, on “écrira” plus jamais dedans. Dans une installation normale, il ne contient que les scripts livrés par la distribution, il est quasi impératif de ne pas y faire de modification.

Son script index.php est le point d’entrée de ecrire/, la partie privée du site.

Voyons la documentation de spip.net pour le détail.

dist/

Il contient tous les fichiers livrés au client (HTML, Javascript, feuilles de style, images de différents formats) ainsi que les patrons de mise en page nommés squelettes. Ces squelettes sont interprétés coté serveur afin d’envoyer au client un texte purement MIME (la plupart du temps du HTML, mais aussi du RSS, du SVG … voire du JS).

Ce sont les modèles standards livrés avec SPIP, ils ne doivent eux aussi pas être modifiés mais remplacés en les copiant dans squelettes/

Détail dans la documentation de spip.net

oo/

Ce dossier fournit le mode “accessibilité” de spip (spip en mode texte), Il contient essentiellement un index qui renvoie dans le système standard.


ADAPTATION


config/

Ce dossier créé à l’installation contient le script de connection à la base de données, connect.php et le script fixant le mode des fichiers créés par le serveur, chmod.php.

C’est aussi ici qu’on place les options universelles du site, mes_options.php

IMG/

Il contient tous les documents originaux (taille réelle) du sites. Il est subdivisé en sous-dossiers par types de documents.

A l’installation, il ne contient que les documents de test pour la fabrication des images.

squelettes/

C’est ici qu’on dispose tous les fichiers scripts, images, formulaires … propres au site en suivant la même structure que ecrire/ ou dist/. Par exemple, pour redéfinir le sommaire du site, on y copie/adapte le sommaire.html de la dist/.

On met là notamment, le script mes_fonctions.php qui est chargé à chaque recalcul de page. A noter qu’il est possible de faire un xxx_fonctions.php qui sera chargé uniquement lorsque la page xxx sera demandée, exemple sommaire_fonctions.php

A l’installation, ce dossier n’existe pas, il faut le créer.

plugins/

Ce dossier qui est aussi à créer par soi-même reçoit les sous-dossiers de chaque plugin. Par exemple, le plugin crayons est placé dans plugins/crayons/.

C’est ce dossier qui fait l’objet de cette formation.


TEMPORAIRE


local/

Il contient tous les fichier (re-)calculables à partir des documents et données du site.

Il s’agit essentiellement des caches d’images réduites. On y trouve aussi les caches calculés par certains plugins comme coloration_code.

Ce dossier peut être vidé, cela ne coûtera que son recalcul.

tmp/

Ici sont stockés tous les fichiers temporaires comme les caches de squelettes, les sessions, les logs etc.

Il contient aussi le sous-réperoire dump/ où sont effectuées les sauvegardes de données.

Ce dossier peut être vidé à tout moment. Voir Étendre SPIP
et Contribuer au développement de SPIP

Leave a Reply