SPIP és un CMS únic en el seu gènere.
Més enllà del seu funcionament que es pot qualificar de «data driven», és a dir «pilotat per les dades» (els famosos BUCLES), ha proporcionat sempre en primera línia els mitjans de «personalitzar», adaptar ell seu funcionament i la seva presentació al gust i a les necessitats pròpies del lloc.
Primerament era la possibilitat de proporcionar els seus propis esquelets (plantilles), d’adjuntar-hi fragments de PHP específics i sobrecarregar les funcions de base del «core» (les function xxx_dist()
que veurem més endavant).
La versió 1.9 introdueix un mecanisme complementari, els connectors o plugins. Han sorgit de la voluntat d’obrir SPIP a funcionalitats suplementàries sense fer que el seu nucli (el «core» sigui més feixuc). La tendència actual és tanmateix la d’alleugerir aquest core transferint les funcionalitats opcionals als connectors.
SPIP 2.0 s’hauria d’haver reduït i lliurar amb una col·lecció de connectors de base que l’usuari activarà segons els utilitzi realment o no. Per exemple, és tracta que les breus no estiguin més a dins del core sinó que estiguin en un connector opcional. En efecte, només una part de les instal·lacions les utilitza i és preferible no alentir el sistema de base per aquells que no en tenen necessitat.
Però ja, SPIP 1,9 ha renovat completament els directoris que el constitueixen per tal de separar els elements en funció de la seva vida, del fet que siguin modificables i de la seva pertinença al que és propi o específic al lloc o al codi de base. Un dels altres objectius apuntats aquí és la possibilitat de compartir el nucli: que diversos llocs puguin compartir una base de codi comú.
Estudiem primer aquesta nova organització de directoris, d’allò que pertany a SPIP del que és propi del lloc, d’allò que queda constant del que es mou.
Distribució
arrel del lloc
L’arrel, que ha estat completament buidada i no conté pràcticament més que index.php que redirigeix cap a spip.php, és actualment l’únic punt d’entrada de la part pública del lloc.
inc-public.php3 és un fitxer fantasma per assegurar la compatibilitat ascendent.
.htaccess opcional per l’url rewriting essencialment.
win_png.htc [1] i rien.gif per assegurar la transparència png amb MSIE
ecrire/
Aquesta carpeta conté actualment el conjunt de fitxers interpretables pel cantó del servidor (PHP i MySQL) i aquest, tant per la visualització pública (subcarpeta public/) com per la visualització privada.
El nom d’aquesta carpeta és històric, és allà on antigament s’hi trobava el codi que permetia modificar el contingut del lloc. Paradoxalment, actualment és una carpeta no modificable i mai hi escriurem a dins. En una instal·lació normal, conté només els scripts lliurats per la distribució i és gairebé imperatiu no fer-hi cap tipus de modificació.
El seu script index.php és el punt d’entrada d’ecrire/, la part privada del lloc.
dist/ [2]
Conté tots els arxius lliurats als client (HTML, Javascript, fulls d’estil, imatges de diferents formats) i també els patrons de disseny anomenats esquelets. Aquests esquelets són interpretats al cantó del servidor per tal d’enviar al client un text purament MIME (la majoria de les vegades HTML, però també RSS, SVG... veure JS).
Són els models estàndard lliurats amb SPIP, i tampoc aquest s’han de modificar però si que es poden substituir copiant-los a dins de squelettes/
oo/ [3]
Aquesta carpeta proporciona el mode «accessibilitat» d’SPIP (en mode text). Conté, essencialment, un índex que envia de nou al sistema estàndard.
Adaptació
config/
Aquesta carpeta, creada en el moment de la instal·lació, conté l’script de connexió a la base de dades: connect.php
i l’script que fixa el tipus dels arxius creats pel servidor: chmod.php
.
És també aquí on es posarem les opcions universals del lloc, en un fitxer (a crear): mes_options.php
[4]
IMG/
Conté tots els documents originals (mida real) del lloc. Està subdividit en subcarpetes per tipus de documents.
En el moment de la instal·lació, conté només document de prova per la fabricació d’imatges.
squelettes/
És aquí on posarem tots els arxius: scripts, imatges, formularis..., propis del lloc, seguint la mateixa estructura que ecrire/
o dist/
. Per exemple, per tornar a definir el resum del lloc, copiem/adaptem l’arxiu sommaire.html
del directori dist/
.
Posem aquí, sobretot, l’script mes_fonctions.php
(a crear) que es carregada cada cop que es torna a calcular la pàgina. Fixem-nos que és possible fer un xxx_fonctions.php
que serà carregat només quan serà demanada la pàgina xxx
(per exemple: sommaire_fonctions.php
).
En el moment de la instal·lació, aquesta carpeta no existeix, l’hem de crear.
plugins/
Aquesta carpeta (que també s’ha de crear) rep les subcarpetes de cada connector (plugin). Per exemple, el connector crayons es troba situat a plugins/crayons/
.
Temporal
local/
Conté tots els fitxers (re-)calculables a partir dels documents i dades del lloc.
Es tracta bàsicament de caches d’imatges reduïdes. Hi trobem també les caches calculades per certs plugins com «coloration_code».
Aquesta carpeta es pot buidar, no tindrà cap més cost que el seu nou càlcul.
tmp/
Aquí hi ha emmagatzemats tots els arxius temporals com les "caches" d’esquelets, les sessions, els logotips etc.
Conté també el subdirectori dump/
on hi ha arxivades les còpies de seguretat de les dades.
Aquesta carpeta pot estar sempre buida.