Sélecteur de squelettes pour les visiteurs d’un site spip
Note : il existe un plugin de sélection de squelette sur les nouvelles versions de SPIP. Cette solution sera sans doute plus adaptée à vos besoins. Elle est mieux intégrée au noyau SPIP. Les sources présentées ici le sont à titre informatif.
Descriptif : Article technique pour les amateurs de programmation ou les curieux.
Instits.fr est un site participatif. Le site est basé sur le système de gestion de contenu (SGC en français, CMS pour Content Management System en anglais) gratuit nommé SPIP. SPIP (Système de Publication pour l’Internet Partagé ou Participatif) est un logiciel libre destiné à la conception de site Web orienté magazine collaboratif. Cette solution est assez populaires chez les webmasters et chez les instituteurs qui ont peut être suivi des formations sur ce logiciel (ou sur EVA). Mais revenons au sujet évoqué dans le titre de cet article.
Objectif : Mise en place d’un sélecteur de squelettes pour les visiteurs d’un site spip (adaptation du template chooser de Joomla).
Encore une fois, les sources présentées ici le sont à titre informatif.
FONCTION
Permettre à chaque visiteur (logué ou non) de modifier la présentation du site en sélectionnant un thème parmi plusieurs squelettes.
Cette contrib est en quelque sorte une adaptation du système de ‘template chooser’ (sélecteur de modèle) existant pour Joomla.
L’interface comprend un champ de sélection et actualise une vignette pour chaque modèle que sélectionne le visiteur. Le modèle est ‘rafraîchis’ lorsque le visiteur valide en cliquant sur le bouton de sélection.
Démo live sur www.instits.fr (cf : slécteur de vignettes dans le menu de gauche de la page d’accueil).
INSTALLATION
Faites une sauvegarde de votre site.
Placer les sources téléchargées à la racine de votre site.
Vous pouvez tester le module depuis la page sommaire.php (ou php3 pour les anciennes versions de SPIP).
Vous êtes automatiquement redirigés vers le squelette par défaut au chargement de cette page.
Le squelette par défaut peut être définit par l’administrateur depuis un espace d’administration (www.votresite.com/modules/sq_choix.php) [1].
PERSONNALISER VOS PAGES
* Vous pouvez modifier les squelettes présents au niveau du répertoire "templates" en déplaçant vos propres fichiers de mise en forme dans les sous répertoires adéquats.
* Vous pouvez également mettre à jour les informations affichées par le module de sélection (nom du squelette, chemin pour la vignette ...) en éditant le fichier CSV (fichier exporté depuis Excel) situé dans le répertoire ’modules’. Modifiez les informations adéquates en respectant le modèle.
QUELQUES REMARQUES SUPPLEMENTAIRES
* Le sélecteur de squelette est intégré à la page sommaire.html à l’aide du code suivant :
<INCLURE(modules/adapt-spip.php)>
Vous pouvez de la même manière intégrer le sélecteur de squelette sur les autres pages (auteur.html, rubrique.html ...).
* La gestion de l’affichage fonctionne sur un principe d’auiguillage. Ci-dessous l’exemple du code pour la page sommaire.php3.
<?php
// Si le cookie pour le squelette existe
if(isset ($_COOKIE["template"])) {
$chemin = $_COOKIE["template"];
}
// Sinon : chemin du squelette par defaut définit en admin
else {
include('modules/chemin.php3');
}
$fond = $chemin."sommaire";
$delais = 0;
include ("inc-public.php3");
?>
* Lorsqu’un visiteur arrive sur le site et clic sur le bouton afin de valider un choix de squelette, une variable (anb_Template) correspondant au modèle sélectionné est envoyée et traitée par un script puis sauvegardée dans un cookie. Cette information sert à modifier l’affichage du site.
Le problème du recalcule de la page ($delais = 0) est donc contourné à l’aide de cookies. J’ai volontairement laissé le délais à 0 mais vous pouvez modifier cette variable (Exemple : $delais = 24 * 3600 ; ).
* Contrib testée avec les versions spip 1.7 et spip 1.8.
REMERCIEMENTS
Une partie des sources de cette contrib s’inspire d’un module développé par Patrick VINCENT. Ce module donne la possibilité aux administrateurs d’un site spip de modifier le squelette des pages (sur http://reseau.erasme.org, article 240).
Enfin :
Plusieurs projets visent à donner la possibilité de personnaliser l’affichage du site en fonction de différents squelettes.
***
[1] Le chemin du squelette par défaut est sauvegardé dans le fichier « chemin.php3 ».