Carnet Wiki

Plugin Switcher (suite)

Version 12 — 1 month ago YannX

Le plugin “Switcher” de squelettes permet de paramétrer et choisir des dossiers alternatifs de squelettes ; cela apporte une solution simple pour laisser l’utilisateur libre de changer entre plusieurs thèmes, ou encore offrir au webmestre et à ses utilisateurs de comparer plusieurs jeux de squelettes sur un site.

Reprise et complements de la documentation originelle : Le Switcher de squelettes.

Auteurs

Philippe Drouot, adaptation en plugin de la contrib «switcher» de Fil, distribué sous licence GNU/GPL
Le plugin a été repris par la suite par divers contributeurs qui le maintienne avec amour pour lui apporter des nouvelles fonctionnalités et de rester au goût du jour.

Téléchargement et Installation

-  Télécharger le plugin Switcher sur la Zone [1]- Installation : Comme tous les autres plugins, cf. http://www.spip.net/fr_article3396.html

Fonctionnement

Ce plugin ajoute un petit formulaire à liste déroulante (en javascript ) en haut des pages publiques du site [2] , permettant de modifier les chemins de recherche de vos squelettes en-ligne, si autorisé par le webmestre : cela permet dans l’interface publique de choisir le dossier premier et l’ordre [3] entre :
-  les squelettes de votre dossier «squelettes» (voire vos dossiers squelettes),
-  ceux de «squelettes-dist» (ceux de la distribution standard placés dans le répertoire du même nom),
-  et/ou des dossiers alternatifs spécifiés,
-  en fin, optionnellement, l’ensemble des squelettes organisés en sous-répertoires d’un autre dossier répertoire (nommé «squelettes-test» par défaut), à l’intérieur duquel chaque jeu de squelettes doit être dans un sous-répertoire spécifique : ce dernier mode de fonctionnement est particulièrement adapté à la proposition de thèmes alternatifs sur un site [4].

Remarques :
-  le délimiteur originel etait/est encore le ’ , ’,
alors que la Macro documentée utilise déjà le ’ : ’ !
-  il n’y a pas de fonction d’autorisation explicite
-  l’utilisation de la &var_skel= est à expliciter
-  vérifier le fonctionnement pour indication de plusieurs dossiers (avec Z ?)
-  ajouter une visualisation ’lisible’ de _chemin() ou chemin.txt :
par var_dump(unserialize(spip_file_get_contents('chemin.txt')));
-  l’exploration du source montre bien d’autres options, non explicitées dans la documentation (parfois évoquées dans des commentaires?) :

  • SWITCHER_REPERTOIRE_SQUELETTES_ALTERNATIFS
  • SWITCHER_DOSSIERS_SQUELETTES
  • SWITCHER_SQUELETTES (indiqué à déclarer optionnellement dans mes_options.php /? plutot dans mes_fonctions.php ??/ erreur d’écriture pour le précédent)

Voir pour mémoire la définition du Dossier des Squelettes dans la personnalisation de SPIP.

Personnalisation

Le plugin propose une page complète de configuration en ligne :

  • sous CFG en SPIP2 ecrire/?exec=cfg&cfg=switcher,
  • sous Config / Plugins en SPIP3 /?exec=configurer_switcher

Le paramétrage autorisé au webmestre (dans Gestion des Plugins) peut alors :

  • indiquer les répertoires alternatifs,
  • les comptes autorisés à voir le sélecteur actif (non disponible sur la version en-ligne v..2.5),
  • rendre public le sélecteur pour tout le monde (visiteur anonyme compris).
    -  Pour personnaliser le style par défaut du formulaire, allez dans le fichier «switcher_fonctions.php»

Quelques rappels SPIP :
-  la notion de #CHEMIN
-  les constantes de personnalisations

Utilisation courante

Une première utilisation bien documentée était(est) visible sur la page http://zpip.spip.org/->http://zpip.spip.org/] démontrant les divers thèmes disponibles pour Zpip :
tous les thèmes (squelettes, limités à des fichiers de CSS) sont organisés dans des sous-repertoires d’une même dossier principal.
L’autre utilisation courante, est de faciliter les tests de validations entre deux jeux de squelettes (lors d’une migration d’apparence du site).

Plus précisément

Euh... c’est pas fini, encore moins vérifié.... à suivre plus tard !
La liste des dossiers proposés est constituée de :
-  SWITCHER_SQUELETTES si fixé dans mes_options
-  sinon SWITCHER_DOSSIERS_SQUELETTES
-  sinon défini


-  https://contrib.spip.net/Dossiers-d-un-plugin-trunk-branches-tags
-  https://www.weblog.eliaz.fr/article113.html
-  https://contrib.spip.net/Commandes-svn-de-base-pour-la-zone

1. uniformiser le séparateur ( systématiquement convertir à :, avec warning
2. pouvoir afficher au survol le PATH_SPIP courant (hormis les plugins)
3. accepter un début de masque de sous-répertoire (pour pouvoir utiliser /squel* et donc etre compatible avec les installations courantes)
4. afficher les valorisations prédéfinies par defined( dans la config..
5. pouvoir logguer toutes les inclures sur uen page (dans un fichier .log spécial)
6. basculer vers une vraie fonction autoriser :

  • autoriser_voir_switcher - autoriser_changer_switcher - autoriser_configurer_switcher
  • autoriser_configurer_switcher
    7. transcrire le remplacement de $GLOBALS[’auteur_session’] (déprécié) en $GLOBALS[’visiteur_session’] (et protégéer en cas de non-definition )
    8 . si qq’un a une autre idée à suggérer ?
    8. voir l’implantation d’un groupes d’auteurs autorisés (par reprise d’une zone d’acces restreint ? AR version 3.15.17 en SPIP 3 / 3.3.7 en SPIP 2 / la v4 ? )
    9. faut-il travailler en préemptif ou en reset (en conservant ou non l’appel aux ./squelettes, ./squelettes-dist ./ ) et l’expliciter ! le paramétrer ?
    10. faut-il reconvertir à l’usage impératif avec la syntaxe $GLOBALS[’xxx’] pour chacune des variables ?

Enfin un utilisateur demandait la création d’une balise #SWITCHER.... ou #MENUS_SWITCHER
Ce qui amènerait aussi à rendre inter-paramétrable le style (et le DIV d’insertion ?)