SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

273 Plugins, 191 contribs sur SPIP-Zone, 36 visiteurs en ce moment

Accueil du site > Outils pour plugins > Tutoriaux pour Plugins > SPIP-Zone - archives 2005 > Paramétrage des squelettes

Paramétrage des squelettes

19 janvier 2006 – par mortimer, Nathan – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Voici une proposition permettant de paramétrer assez simplement un squelette Spip...

...appliqué au squelette Sarka v1.1.1 (deux captures d’écrans ci-dessous).

GIF - 8.9 ko
Le nouvel onglet dans la page de configuration du site
GIF - 46.3 ko
La nouvelle page de configuration du squelette Sarka

Avant-propos

En essayant un certain nombre de squelettes, je me suis dit qu’il serait utile d’avoir la possibilité de les paramétrer.

Il ne s’agit évidemment pas de réécrire du code mais par exemple de :

  • choisir des couleurs
  • choisir d’afficher la liste des rubriques en haut, en bas, ... ou pas du tout
  • choisir le nombre d’articles récents à afficher
  • ...

C’est bien décrit dans l’introduction de cet article :

Le principe est simple, pour pouvoir distribuer des squelettes, il faut pouvoir configurer certaines petites choses : le numéro de la rubrique qui sert aux galeries, le nom du mot clef qui cache les articles, la couleur de fond du CSS, etc...

L’idéal pour cela serait de fournir à l’administrateur une page de configuration dans l’espace privée dans laquelle il puisse faire tous ces choix. Au lieu de l’obliger à aller modifier la structure de son site ou les fichiers du squelette.

Principe général

Chaque concepteur de squelette peut prévoir une page de configuration. Cette page permet de :

  1. modifier des variables globales utilisées dans le squelette (rubrique particulière, mot-clé ou groupe de mots-clés, nombre d’articles récents à afficher, ...) ;
  2. modifier les styles du squelette (couleurs, épaisseurs, tailles, espacements, "paddings", ...) ;
  3. sauvegarder les paramètres ainsi définis.

Les variables globales du squelette sont rangées dans un fichier dans le répertoire du squelette [1]. Ce fichier porte toujours le même nom afin de permettre son chargement dans la partie Spip hors du squelette.

Si c’est un paramètre de style, on peut imaginer de régénérer la feuille de style à la volée mais une fois pour toute dans l’arborescence du squelette.

Du côté de Spip, on a :

  1. un onglet de plus qui apparaît dans la configuration lorsque le fichier de configuration du squelette existe ;
  2. un canevas identique pour toutes les configurations de squelette afin :
    • d’assurer une présentation commune ;
    • de charger toutes fonctions utiles ;
    • de simplifier le fichier de configuration du squelette ;
    • de charger une page dans le répertoire “ecrire” (je n’ai pas réussi à faire marcher la page de configuration dans le répertoire du squelette).

Description

Concernant le squelette

Usage de la configuration

(dossier_squelettes)/variables_globales_squelette.php” est le fichier qui définit les paramètres du squelette. Si il existe, il est chargé par “ecrire/mes_options.php”.

Exemple de contenu de “ecrire/mes_options.php” :

Ces paramètres sont de ce fait disponibles partout, notamment dans le squelette. On y accède, soit, en PHP par $GLOBALS['sarka']['nombre_articles_recents'], soit, par une nouvelle balise #SKELVAR [2] à ajouter dans “(dossier_squelettes)/mes_fonctions.php [3] :

Je ne comprends pas tout des balises mais il faut remarquer le terme ’sarka’ qui apparaît deux fois et permet d’aller chercher la bonne table.

Modification de la configuration

(dossier_squelettes)/subconfig-squelette.php” permet à un administrateur du site de modifier interactivement la configuration du squelette.

(dossier_squelettes)/appliquer_modifs_config-squelette.php” assure la modification des fichiers nécessaires à la prise en compte des changements de paramètres :

  • (dossier_squelettes)/variables_globales_squelette.php”
  • (dossier_squelettes)/(les styles).css”
  • ...

Concernant Spip

On modifie “ecrire/inc_presentation.php” pour insérer un nouvel onglet dans la page de configuration. Cet insertion se fait à la condition qu’il existe un fichier “(dossier_squelettes)/subconfig-squelette.php” (deux nouvelles lignes après l’“onglet_interactivite”) :
[...]

[...]

C’est la seule modification au code de SPIP existant.

L’onglet ajouté ci-dessus appelle une page canevas, “ecrire/config-squelette.php”, qui elle-même insérera la page de configuration du squelette “(dossier_squelettes)/subconfig-squelette.php”. Ce canevas est du même type que ceux des autres pages de configuration [4].

En cas de modification des variables, ce canevas appelle “(dossier_squelettes)/appliquer_modifs_config-squelette.php” si il existe.

Installation

Attention : j’utilise les versions avec les suffixes “.php” ci-après.

Spip 1.8.2-e php Sarka 1.1.1 php
tar bz (1.6M) tar bz (21k)
tar gz (2.1M) tar gz (23k)
zip (2.4M) zip (49k)
  1. Installer Spip 1.8.2 e php
    • unzip -aX SPIP-v1-8-2-e-php.zip (<— les commandes que j’ai faites sous Linux)
    • mv -i SPIP-v1-8-2-e spip-test
    • (finir l’installation de Spip : machine, user, pass, base, ...)
    • cd spip-test
  2. Installer le squelette Sarka v1.1.1 php
    • unzip -aX squelette_sarka-spip-1.1.1-php.zip
    • mv -i squelette_sarka-spip-1.1.1/* .
    • rmdir squelette_sarka-spip-1.1.1
  3. Installer mon patch
    • tar xpvzf SPIP182e-patch-config-squelette.tar.gz

C’est tout... et ça marche !

Il ne reste plus qu’à (Yaqua :-)) étendre le module pour le squelette Sarka ou à l’écrire pour votre squelette.

Reste à faire

  • Séparer complètement ce qui est la modification de Spip et celle du squelette Sarka
  • Déplacer le fichier “ecrire/lang/subconfskel_fr.php” dans le répertoire du squelette
    idée : avoir un fichier “ecrire/lang/subconfskel_fr.php” chargeant “(dossier_squelettes)/lang/subconfskel_fr.php” si il existe.
Patch non testé ...
... de Spip 1.8.2 e (répertoire “ecrire”)
... du squelette Sarka v1.1.1 (répertoire “squelette-sarka-spip”)

GZ - 32.7 ko
SPIP182e-patch config-squelette.tar.gz
C’est un Tar Linux Gzippé. Il devrait être reconnu par WinZip et consorts.

Ci-joint les fichiers suivants :

  1. “ecrire/config-squelette.php”
    canevas général de la page de configuration du squelette
  2. “ecrire/inc_presentation.php”
    ajout de l’onglet de configuration du squelette
  3. “ecrire/lang/confskel_fr.php”
    les messages utilisés dans “ecrire/config-squelette.php”
  4. “ecrire/lang/subconfskel_fr.php”
    les messages utilisés dans “squelette-sarka-spip/subconfig-squelette.php”
  5. “ecrire/mes_options.php”
    définition du répertoire du squelette utilisé et chargement ses variables globales
  6. “squelette-sarka-spip/appliquer_modifs_config-squelette.php”
    comme son nom l’indique (première version fonctionnelle, non complète bien sûr)
  7. “squelette-sarka-spip/styles/impression.css”
    un style pour l’impression d’article [5].
  8. “squelette-sarka-spip/article.html”
    la page qui l’utilise
  9. “squelette-sarka-spip/mes_fonctions.php”
    le fichier qui définit la nouvelle balise
  10. “squelette-sarka-spip/subconfig-squelette.php”
    le paramétrage du squelette Sarka (très rudimentaire : deux variables pour l’instant)
  11. “squelette-sarka-spip/variables_globales_squelette.php”
    paramètre(s) Sarka (que j’ai ajouté)
  12. “squelette-sarka-spip/sommaire.html”
    la page qui utilise ces nouveaux paramètres.

Notes

[1On peut être tenté de ranger ces paramètres dans la table “spip_meta” mais, à mon avis, c’est une mauvaise option :

  1. ces paramètres font partie de la présentation et pas des données à publier ;
  2. ce sont des données liées à un squelette particulier et si chaque squelette se met à ranger ses données dans la base (voire à créer sa propre base) ... ce sera vite le bazar et on ne s’y retrouvera bientôt plus du tout.

Le plus logique et le plus simple est que ces paramètres soient rangés dans un fichier particulier livré avec le squelette. Cela permet aussi de s’affranchir d’une phase d’initialisation du squelette.

[2Je me suis inspiré de la balise de Mortimer et de #ENV pour avoir des valeurs par défaut (très utile au cas où le fichier de variables se corromprait).

[3Cette balise est sans doute généralisable.

[4J’imagine que cela peut-être gênant pour SPIP et j’ai pris soin d’y mettre un avertissement. Est-ce suffisant ?

[5Rien d’original. Toute amélioration est la bienvenue.

Retour en haut de la page

Vos commentaires

  • Le 5 avril 2009 à 15:40, par Mortimer En réponse à : Paramétrage des squelettes

    Je pense que ce que tu cherches, c’est le plugin Config (CFG).

    • Le 6 avril 2009 à 19:05, par ? En réponse à : Paramétrage des squelettes

      oui, probablement un peu de CFG à la place de modifications dans SPIP. De façon à ce que lors du prochain changement de version de Spip, je ne soit pas bloqué.

    Répondre à ce message

  • Le 4 avril 2009 à 21:06, par JFD En réponse à : Paramétrage des squelettes

    Bonjour

    Voici donc un début de réponse à une attente de ma part.

    Je souhaite configurer le nombre d’articles de brèves ou de sites référencés, à afficher en fonction de l’actualité de mon site.
    Par défaut j’y procede en modifiant manuellement le « Sommaire » du squelette EVA-WEB-2 c’est pas cool.

    Je vais essayer de mettre en application cette proposition, mais je ne suis pas doué pour la programmation.

    Si un jour cette excellente idée était transformée en Plugin . . .

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d'abord sur gravatar.com (gratuit et indolore) et n'oubliez pas d'indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Une licence pour un article

    18 avril 2007 – 25 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Sur une idée originale de erational, voici un plugin permettant de lier une licence à un article.

  • Plugin Parrainage

    6 novembre 2011 – <blink style='color:red;'>public|spip|ecrire:commentaire</blink>

    Permettre aux utilisateurs d’inviter leurs contacts à s’inscrire sur le site. Description Vous connaissez le web moderne et son cortège d’applis toujours en version « beta » et de buzz sur le dernier réseau à la mode ? Vous voulez vous aussi vous y (...)

  • Formulaire de contact libre

    27 avril 2011 – 36 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs. Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un (...)

  • Plugin Mot de Passe Compliqué

    2 novembre 2007 – 16 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin ajoute un testeur de complexité de mot de passes dans les formulaires de choix de mot de passe de SPIP.

  • Navigation AJAX

    31 janvier – 18 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin permet de modifier automatiquement une parties des liens internes de manière à ce qu’ils ne déclenchent pas un chargement complet de la page cible, mais un chargement en AJAX de certains éléments spécifiés à l’avance. Il permet aussi de (...)