Version 6 — Avril 2014 — jsb
SpipPourLesNuls, ou comment installer son premier Spip
Cette page est à l’initiative de plusieurs utilisateurs « confirmés » (en tout cas ils ont au moins installé avec succès leur Spip) pour essayer de répondre aux demandes récurrentes des nouveaux utilisateurs ; depuis fin 2011, c’est un site complet http://www.spippourlesnuls.fr qui se développe autour de cette problématique d’initiation.
Installation
— Comment installer Spip en Local (InstallerLocal) ?
— Comment installer Spip chez mon hébergeur
— Quelles doivent être les caractéristiques de l’hébergement, chez qui ? (bonne question, mais où trouver la réponse ?)
— La structure des répertoires de Spip, les fichiers
La philosophie Spip
— C’est quoi cette histoire d’espace privé ?
Spip est un CMS (content management system, sytème de gestion de contenu), il doit donc disposer d’une partie visible à tous (la vitrine), et d’une partie d’administration (les coulisses). Chaque partie est accessible respectivement par : http://www.monsite.com pour la partie publique et http://www.monsite.com/ecrire/ pour la partie privée.
— Comment est structuré le contenu de la base de données ?
— Pourquoi les rubriques que j’ai créées n’apparaissent-elles pas ?
La personnalisation
— Je ne comprends rien aux boucles !
Les boucles permettent d’extraire de la base de données des éléments Spip (principalement des rubriques, articles, brèves ou documents). Leur syntaxe de base est relativement simple, mais il est possible d’obtenir des effets très intéressants en jouant avec les options.
Boucle de base (affiche les titres de tous les articles de la rubrique actuelle) :
<BOUCLE_articles(ARTICLES){id_rubrique}>
#TITRE <br />
</BOUCLE_articles>
— Comment faire pour n’afficher que les 3 derniers articles dans le sommaire ?
En ajoutant des critères dans la définition de la boucle :
<BOUCLE_derniers_articles(ARTICLES){par date}{inverse}{0,3}>
...
</BOUCLE_derniers_articles>
— Où mettre mes squelettes
<?php
$GLOBALS['dossier_squelettes']='votre_rep';
?>
Si le fichier mes_fonctions.php3 est inexistant il suffit de le créer à la racine de votre site
— Je voudrais que l’affichage de la rubrique 3 soit différent des autres rubriques
— Je voudrais faire des modifs sur la présentation, mais je débute avec les CSS
—
Le plat du jour : le cache SPIP
Lorsque vous créez un article, son contenu est stocké dans la base de données du site. Idem pour les rubriques, brèves, auteurs... Mais afficher ces informations en l’état sur le site public serait quasiment incompréhensible. SPIP doit "calculer" chaque page à l’aide du contenu (le titre, le texte...) stocké dans la base et du squelette correspondant qui a été préparé par le webmestre du site. La page définitive est ensuite affichée sur le site.
On pourrait comparer ça avec la cuisine. Pour préparer un plat, il faut des aliments et une recette de cuisine. Le contenu correspond aux aliments (légumes, viandes, condiments...). Le squelette à la recette (que vous l’ayiez en tête ou dans un livre de recettes). A l’aide du squelette, SPIP prépare les éléments du contenu et les arrange dans la page.
Face à une clientèle pressée, certains restaurateurs ont des plats tout préparés, pour éviter le temps de confection. Aussitôt commandés, aussitôt servis. C’est ce que fait SPIP avec son cache. Il y stocke des pages toutes prêtes et vous n’avez pas besoin d’attendre qu’il les cuisine.
Lorsque le serveur (de restaurant) prend une commande - le plat du jour par exemple - il vérifie s’il en reste encore. Si c’est le cas, il le sert à son client. Sinon que fait-il ? Soit il annonce : « Désolé, il ne nous reste plus de plat du jour. ». Soit il prévient le chef cuisinier qu’il faut en préparer d’autre. SPIP a choisi la 2e solution. Si la page est en cache, elle est immédiatement envoyée au visiteur qui la demande, sinon SPIP la calcule, l’envoie et la met en cache. Le prochain visiteur n’aura pas à attendre.
Que se passe-t-il lorsque vous modifiez une page ? Si la page est déjà dans le cache (cas des pages existantes), l’utilisateur récupère cette page, mais il récupère l’ancienne version. Il faudrait un recalcul de la page pour qu’il ait accès à la nouvelle version.
En fait le cache utilise un délai de péremption. Lorsqu’un article se trouve depuis plus de 24 heures dans le cache, il est considéré comme trop vieux et SPIP le recalcule et remplace l’ancienne version par la nouvelle. Ca veut dire que si vous modifiez un article, l’utilisateur ne verra cette modification qu’au bout de 24 heures. Ce délai est personnalisable avec la variable $delai du fichier article.php3 (racine du site). Idem pour les autres fichiers .php3 liés à un squelette.
Comment outrepasser ce délai ? Si vous êtes administrateur et que vous êtes entré dans l’espace privé, vous avez - sur le site public - un bouton "Recalculer cette page". Ce bouton permet donc de forcer le recalcul de la page.
Autre solution : vider le cache. En tant qu’administrateur vous avez accès au bouton "Configuration / Vider le cache". Si vous videz le cache, tous les articles, brèves et rubriques seront recalculés. Ca va ralentir le site pendant quelques jours.
Note : Ne pas confondre le cache SPIP avec le cache de votre navigateur. Car votre navigateur utilise aussi un cache. Lorsque vous visitez une page, votre navigateur la stocke telle quelle sur votre ordinateur. Si vous cliquez sur le bouton "Recharger la page" ou "Actualiser la page", le navigateur va chercher la page sur le site, et non plus dans son cache.
C’est donc susceptible de compliquer encore les choses avec SPIP... Si vous avez modifié une page et, comme administrateur, vous avez un bouton "Recalculer cette page", voilà comment se passent les choses :
- Vous affichez la page, mais c’est la page qui se trouve dans le cache de votre navigateur.
- Il vous faut cliquer sur le bouton "Recharger la page" de votre navigateur pour récupérer la page sur le site. Mais c’est l’ancienne page placée dans le cache de SPIP.
- Un astérisque apparaît alors dans "Recalculer cette page*". Lorsque vous cliquez dessus, vous avez - enfin - la nouvelle version de la page !