SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Télécharger

Structure générale de SPIP

Août 2010 — mis à jour le : Mai 2011

Toutes les versions de cet article :


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 du 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 function 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 son noyau (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 ceux qu’il utilise réellement. Par exemple, il est question que les brêves ne soient plus dans le core mais dans un plugin optionnel. En effet, seule une partie des installations les utilise 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.

Étudions 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 [1] 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 l’affichage public (sous-dossier public/) que pour l’affichage 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 n’écrira plus jamais dedans. Dans une installation normale, il ne contient que les scripts livrés par la distribution et 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.

dist/ [2]

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 côté 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/

oo/ [3]

Ce dossier fournit le mode « accessibilité » de 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, dans un fichier (à créer) : mes_options.php [4]

IMG/

Il contient tous les documents originaux (taille réelle) du site. Il est subdivisé en sous-dossiers par types de documents.
À l’installation, il ne contient que des 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 fichier sommaire.html du répertoire dist/.

On met là notamment, le script mes_fonctions.php (à créer) qui est chargé à chaque recalcul de page. À noter qu’il est possible de faire un xxx_fonctions.php qui sera chargé (en plus du mes_fonctions.php) uniquement lorsque la page xxx sera demandée (par exemple : sommaire_fonctions.php).

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

plugins/

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

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épertoire dump/ où sont archivées les sauvegardes de la base de données.

Ce dossier peut être vidé à tout moment.

P.-S.

Voir aussi : Étendre SPIP

Notes

[1supprimé à partir de la version SPIP 2.0

[2À partir de la version SPIP 2.0, ce dossier a été renommé squelettes-dist/.
Lire : Mise à jour 1.9.x vers 2.0.x.

[3supprimé à partir de la version SPIP 2.0


Voir le squelette de cette page Site réalisé avec SPIP | Espace de traduction | Espace privé