Carnet Wiki

Plugin Switcher (suite)

Version 9 — Décembre 2019 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 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 formulaire à liste déroulante (en javascript ) sur tous les squelettes de la partie publique du site [2] , permettant de basculer entre les squelettes « squelettes-dist » (ceux de la distribution standard placés dans le répertoire du même nom), ceux de votre dossier « squelettes », et/ou des dossiers alternatifs spécifiés, et/ou 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 [lien avec" id="nh3">3].

Remarques :
-  attention au changement de nom de ./dist en ./squelettes-dist
-  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
-  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 ??/ mais non pris en compte, donc éliminé)

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

On 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 selecteur 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/] demontrant les divers themes disponibles pour Zpip :
tous les thèmes (squelettes, limitées à des fichiers de CSS) sont organisés dans des sous-repertoires d’une meme 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
  • 7. 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 ?)