Carnet Wiki

SpipPourLesNuls

Version 5 — 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

  • Spip loader (à télécharger ici sur spip.net)
  • Installation directe par ftp (utilisation de FileZilla)

— 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

  • A partir de la version 1.8 Spip recherche automatiquement les squelettes dans les repertoires et dans l’ordre suivant:le répertoire racine, le répertoire /squelettes/, le répertoire /dist/, ou dans un répertoire de votre choix à condition de l’avoir déclaré.
    • le répertoire /dist/ est crée par Spip et contient les squelettes par défaut (*.html), les fichiers d’appel *.php3 restent à la racine du site ;
    • le répertoire /squelettes/ n’est pas créé par Spip, vous devez le créer (ou plus simplement faire une copie de /dist/ et la renommer /squelettes/) et y poser vos nouveaux squelettes ou vos squelettes modifiés, les *.php3 restent à la racine.
    • si vous souhaitez installer vos squelettes dans un répertoire spécifique /votre_rep/, il faut aussi inserer le code suivant dans le fichier ’mes_fonctions.php3’
      <?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

  • Il faut créer des jeux de squelettes spécifiques pour chaque affichage différent
    Exemple : pour afficher la rubrique 3, créer un fichier rubrique-3.html (et un fichier rubrique-3.php) et un fichier article-3.html puis enregistrer ces squelettes dans le repertoire des squelettes de votre site (voir ci-dessus), pour que le fonctionnement soit correct, vous devez aussi placer dans ce même répertoire, les fichiers article.html et rubrique.html (copier celui du répertoire /dist/ ).

— 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 !