Le Switcher de squelettes

Au format plugin

Permet de basculer facilement, sur un même site, entre différents jeux 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 maintiennent avec amour pour lui apporter des nouvelles fonctionnalités et de rester au goût du jour.
Voir Switcher de thèmes pour l’espace public et Plugin Switcher (suite).

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, permettant de basculer entre les squelettes « dist » (ceux de la distribution standard placés dans le répertoire du même nom), ceux de votre dossier « squelettes », et l’ensemble des squelettes contenus dans le répertoire nommé « squelettes-test » à l’intérieur duquel chaque jeu de squelettes doit être dans un sous-répertoire spécifique.

Personnalisation

Le plugin propose une page complète pour être configurer ecrire/ ?exec=cfg&cfg=switcher, on peut alors :

  • indiquer les répertoires alternatifs,
  • les comptes autorisés à voir le selecteur actif,
  • 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 »

Notes

[1Téléchargement du Plugin, liens complémentaires : Récupérer le zip sur l’espace de téléchargement, ou le(s) miroir(s), de spip-zone, cf. rubrique Produits finis

Nota : le switcher de squelette est également intégré comme une fonction du Plugin Sktheme, lequel permet de gérer également des variations de thèmes d’habillage sur un même squelette.

Discussion

14 discussions

  • 1

    Compatible dernière version de SPIP en changeant la borne dans paquet.xml :

    compatibilite=« [1.9.0 ;3.2.*] »

    • Dans la version disponible sur la zone (et dans le Zip joint),
      le paramétrage des auteurs_autorisés n’est pas affiche dans le formulaire de configuration.

    Répondre à ce message

  • 1
    Christophe Noisette

    Bonjour
    je viens d’installer ce plugin et il marche bien et je vous en remercie.
    C’est très pratique.
    Cependant dans la partie « config », j’ai le choix entre actif pour les admin ou pour public, mais je n’arrive pas à obtenir la liste des auteurs autorisés. En effet, j’aimerais bien que tous les administrateurs n’aient pas la possibilité de voir encore ces jeux de squelettes pour éviter des commentaires intempestifs alors que nous sommes en phase de test.
    Amitiés
    Christophe

    • Bonjour

      Si j’ai bien compris contrairement à la capture de cette article, le selecteur des auteurs n’est pas actifs.

      Est il possible de savoir la version de SPIP et éventuellement si un mes_options/mes_fonctions est actif ?

    Répondre à ce message

  • 12

    SPIP 3.0.5
    Switcher 0.2.0
    Saisies pour formulaires 1.28.4

    Bonjour,
    Je n’arrive pas à rendre public le sélecteur.

    J’ai essayé en remplaçant

    if (!defined('SWITCHER_AFFICHER')) // true ou false
      define('SWITCHER_AFFICHER',
        $GLOBALS['auteur_session']['statut'] == '0minirezo'
      );

    par

    if (!defined('SWITCHER_AFFICHER')) // true ou false
      define('SWITCHER_AFFICHER', true);

    J’ai aussi essayé de mettre define('SWITCHER_AFFICHER', true); dans le fichier mes_options.php

    « Activer le switcher pour tout le monde » dans l’espace privé ne fonctionne pas non plus.

    De l’aide serait bien appréciée s’il vous plaît.
    Notez que j’ai peu de connaissances en php.

    • Bonjour

      Le plugin est il bien activé ?
      Avez vous défini au moins un repertoire alternatif ?

      Les dernieres version ne necessite plus de jouer avec PHP.

    • Les répertoires alternatifs sont définis dans le fichier switcher_config :

      if ( ! defined('SWITCHER_DOSSIERS_SQUELETTES')) {
          define('SWITCHER_DOSSIERS_SQUELETTES', 'Mateo,Obelisque,Patisserie'.lire_config('switcher/dossiers_squelettes'));
      }

      Même en les définissant par l’interface privé dans /ecrire/ ?exec=configurer_switcher et en gardant ce code dans switcher_config, ça n’apparait pas au public.

      if ( ! defined('SWITCHER_DOSSIERS_SQUELETTES')) {
          define('SWITCHER_DOSSIERS_SQUELETTES', ''.lire_config('switcher/dossiers_squelettes'));
      }

      Le plugin en lui-même fonctionne très bien, ce n’est pas le problème.

    • Bonjour

      Si je comprends bien le plugin fontionne dans le cas suivant :

      • repertoires alternatifs défini via la page de configuraiton
      • connecté en tant qu’administrateur
      • sans aucune modification de code du plugin

      Le cas qui pose problème c’est uniquement lorsque vous voulez rendre public le sélecteur de squelettes ?

    • Oui exactement. Ça confirme la nouvelle configuration, mais le sélecteur n’est pas public.

    • Bonjour

      La notification concernant votre réponse n’est arrivé que maintenant :/

      Je vais tester ce cas de figure et voir ce que cela donne.

    • Bonjour,

      J’ai le même problème en SPIP 3. Lorsque je suis connectée, je vois le menu déroulant, mais lorsque je ne le suis pas, je ne le vois plus. J’ai essayé de forcer la variable $auteur_autoriser=true, mais ça ne fonctionne pas.

      Tout aide serait apprécié !

    • Bonjour,

      Je me réponds à moi-même. Pour voir le formulaire lorsqu’on n’est pas connecté, il suffit d’enlever le code suivant dans le fichier switcher_fonctions.php

      if(!$GLOBALS['visiteur_session'])
      	    return $texte;
    • Bonjour

      Ok cafouillage de ma part, mon jeu de test gardait une session active.

      La version 0.2.1 vient d’être publiée, elle corrige ce bogue.

      Maintenant si on demande de rendre public le switcher cela devrait être réellement le cas :)

      Merci

    • Merci pour cette correction rapide !

      En ce moment le plugin ajoute un menu déroulant en haut à gauche.

      J’aurais besoin pour mon site d’une balise que je pourrais intégrer selon mes besoins et pas sur toute les pages. Est-ce que c’est facile à créer ?

      Merci

    • En l’état non ce n’est pas évident car le code générant la liste est directement intégré dans l’affichage final.

      Il faudrait isoler ce code, et savoir traiter les différents cas d’utilsations (défaut avec/sans balise)

    • Ok, je vais travaillé la-dessus, je vous ferai part de ce que j’aurai fait, peut-être pourrez-vous l’intégrer au plugin.

      Bonne journée

    • Toute évolution est la bienvenue. N’hésitez à les proposer. :)

    Répondre à ce message

  • 2

    Bonjour et Merci ?
    Tres utile.
    Mais j’ai des pbs ( avec SPIP 3)

    Le formulaire apparait bien, et fonctionne mais j’ai un message d’erreur
    «  Wrong datatype for second argument in switcher_fonctions.php on line 18 »

    Dans la partie /ecrire/ ?exec=configurer_switcher
    J’ai « switcher:titre_page_configurer_switcher » qui apparait et qui clignote

    Merci d’avance

    • Bonjour

      Merci pour le merci, le ! était autorisé aussi :)
      Merci pour le retour, j’ai appliqué 2 correctifs pour rajouter la chaine de langue et le test si la configuration est encore absente.

      Je vous invite à tester la dernière version svn ou attendre la génération du prochain zip pour 18h

    • Célérité, disponibilité, efficacité, amabilité.
      Et tout marche
      Que demander de plus ?

      Encore merci (sans ? (lapsus) mais avec des !).
      Bruno

    Répondre à ce message

  • 2

    Tentative d’installation semi-automatique (je colle l’adresse de téléchargement du zip) sous SPIP 2.1.19 [19922] : ne fonctionne pas... Visiblement « archivelist.txt » mal rempli (entre autre ?)
    J’ai du déplacer manuellement le répertoire /lib/switcher_1_9/trunk vers /plugins/auto/switcher_1_9 pour pouvoir l’activer...

    • Bonjour

      L’archivelist semble bon.
      Je n’ai pas de spip 2.1.19 sous la main pour faire le test. Est ce que cela se produit uniquement pour ce plugin ? Quelle procédure est suivie ? est ce que auto plugins/auto est présent ? ....

      En l’état difficile de savoir où chercher

    • Ciao Cam.

      Alors, /plugins/auto/ est présent et écritible :) J’ai réussi à faire l’installation d’autres plugin sans souci (donc ce que celui-ci qui pose problème pour l’instant). Et chaque fois à partir de la page ?exec=charger_plugin du site (une installation locale) en utilisant la liste http://plugins.spip.net/rss-+-selec... chargée (le problème est le même si j’ulilise l’adresse du zip du présent article)
      Sinon, le zip lié au présent article contient bien à sa racine : branches/ et tags qui sont vides, et trunc qui contient le plugin... (mais ceci ne devrait pas perturber l’activation et l’utilisation du plugin, sans pour autant expliquer pourquoi il a voulu m’installer le tout dans /lib/)

    Répondre à ce message

  • 10

    Quelqu’un a-t-il réussi à faire fonctionner ce plugin dans le cadre d’une mutualisation (ferme à SPIP) ? Un petit tuto assez détaillé serait le bienvenu pour pouvoir faire fonctionner ce petit outil bien utile !
    Merci d’avance à lui (ou à elle)

    • N’y aurait-il pas la réponse à ta question un peu plus bas, dans le post de philooo du 24 février 2009 à 20:50 ?

    • J’avais bien noté ce post et j’avais effectué la manip... mais sans succès ! Soit elle n’est pas suffisante, soit j’ai zappé un truc. J’avais également tenté de m’inspirer du post de Suske en bas de l’article de Romy http://romy.tetue.net/testez-plusie..., sans plus de succès, d’où ma question...

    • François

      Bonjour,
      Je suis sous 3.0 et je coince aussi.. quelqu’un pour nous en sortir ?...
      J’étais vraiment tenté pas ce plugin..

      Voici ce que je récupère quand je lance l’activation :

      Merci

    • Bonjour

      Est ce que le plugin saisies est installé ?

    • François

      Non ! Est-il nécessaire ?
      En fait je ne vois pas de sens de votre question et le rapport avec le problème...
      Sans doute un truc que j’ai loupé quelque part..

      En tout cas merci.

    • Bonjour

      Oui le plugin saisie est necessaire pour configurer ce plugin. Un fois activé vous ne devriez plus avoir d’erreur dans la page de configuration.

      La capture d’écran montre le code d’une balise interprétée par le plugin saisie, de fait je suppose fortement l’absence de ce plugin.

      J’ai oublié de déclarer la dépendance, je corrige ceci dans la prochaine version.

    • François

      Merci ça c’est vraiment bien améliorée au moins dans la présentation.
      Mais je suis comme une poule qui a trouvé un couteau... une vraie bille en somme !
      j’ai cru comprendre qu’il fallait créer un répertoire :
      « squelettes-test »
      au niveau de la racine... ce que j’ai fait.
      j’y ai loger le repertoire « minigrispip_2 » contenant les fichiers du squelette « mini gris » que je désire tester en ce moment... et après je suis perdu..
      Que dois-je faire de l’écran de configuration de switcher ? en fait je ne comprends pas les termes qui y sont utilisés..
      Que veut dire : « repertoires alternatifs label » ?
      et l’option : « switcher activer label » oui/non ?

      Dans la liste déroulante (en javascript) partie public j’ai comme option :
      Squelette
      -  >squelettes
      -  >squelettes-dist
      -  >

      dans la base spip.meta :
      switcher
      a:2 :s:19 :« dossiers_squelettes » ;s:0 :« » ;s:16 :« switcher_activer » ;s:0 :« » ;
      oui
      2012-10-08 22:26:54
      (les quatre champs représentes l’un sous l’autre

      Aiie ... vous êtes tombé sur une vraie bille !!!

      Merci de m’éclairer et re-merci pour m’avoir déjà fait avancer..

    • Bonsoir

      De l’autre coté vous avez trouvé un vrai flemmard. Au début ayant fait les modifications à mon intention, j’ai zappé de gérer les chaines de langues ....

      repertoires alternatifs label : est un champ qui permet d’indiquer une liste complémentaire de répertoires alternatifs autre que ceux cités. Je ne sais plus si c’est le ; ou : qui sert de séparateur.

      switcher activer label : permet de rendre public le switcher, par défaut seuls les administrateurs ont accès à cette liste.

      Dans votre cas vous devez rajouter dans le premier champ : squelettes-test

      C’est une autre bourde de ma part j’aurais du rendre cette valeur par défaut.

    • François

      Merci... pour compléter votre dernière réponse (si je peux me permettre) j’ai enfin obtenu ce que je désirais en codant pour l’option :
      « repertoires alternatifs label » —> squelettes-test/minigrispip_2

      en sachant, bien sur, que je voulais tester le squelette « mini gris » qui se trouve localisé dans ce répertoire. il me semble que mes essais étaient infructueux sans spécifier « /minigrispip_2 » .

      Dans tous les cas merci pour cet éclairage avisé.. et merci pour ce plugin !

    • Bonsoir

      Je viens de publier certains correctifs sur le plugin suite à notre échange ici présent. (voir version svn r67524 au moins)

      Normalement le plugin est plus clair dans ses options et ne génére plus d’erreur avec une version de php récente.

    Répondre à ce message

  • Je suis en 2.1.8 et ça fonctionne.

    J’ai facilement pu changer une ligne dans le fichier de config pour n’afficher le choix des squelettes qu’au webmestre seulement, et pas à tous les admins (et éventuellement admins restreints).

    Bref, nickel pour des petits test grandeurs nature avant la vraie mise en prod !

    Répondre à ce message

  • super plugin... ca marche plus avec le 2.1.2 :(

    ce truc devrait etre integre c’est genial pour developper des nouveaux squelettes tout en laissant les anciens jusqu’a ce que tout soit pret !

    Répondre à ce message

  • Vous dites que ce plugin est une adaptation en plugin de la contrib switcher de Fil : où puis-je trouver cette contrib initiale ?

    Répondre à ce message

  • J’avais un « moche message » ....... deprecated dans mon SPIP 2.0 ; facile.

    Il y a juste a modifier à la ligne [35] de switcher_fonctions.php
    le nom de fonction :
    eregi_replace en preg_replace
    (cf.ci-dessous..)

    $texte=preg_replace("</body>","$code</body>",$texte);

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom