Sélecteur de squelettes pour les visiteurs d’un site spip

All contributions published for previous SPIP versions

Mise en place d’un sélecteur de squelettes
pour les visiteurs d’un site spip (adaptation du template chooser de mambo).

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 Mambo (voir http://demo.mambohut.com).

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.

Exemple / démo sur un site spip : http://www.instits.fr.

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.php3.

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 (http://reseau.erasme.org/article.php3?id_article=240).

Enfin :

Plusieurs projets visent à donner la possibilité de personnaliser l’affichage du site en fonction de différents squelettes. Je vous invite notamment à consulter la contrib suivante :
http://www.spip-contrib.net/article667.html

***

[1] Le chemin du squelette par défaut est sauvegardé dans le fichier « chemin.php3 ».

***

Papuli @lexandre : papuli@gmail.com

***

Note : Les sources de cette contrib sont également disponibles sur la page http://webconsultant.free.fr/news-projets.htm.

updated on 2 October 2019

Discussion

Une discussion

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom