SPIP-Contrib

SPIP-Contrib

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

290 Plugins, 198 contribs sur SPIP-Zone, 90 visiteurs en ce moment

Accueil > Squelettes > Outils pour squelettes > switchcase > Balises #SWITCH et #CASE

Balises #SWITCH et #CASE

20 mai 2016 – par JLuc – commentaires

19 votes

Ce plugin introduit dans SPIP les balises #SWITCH, #CASE et #CASE_DEFAULT qui reproduisent le fonctionnement des switch... case... default... du php et du C.

Utilisation

Les balises #SWITCH, #CASE et #CASE_DEFAULT permettent de comparer un élément à de multiples cas valeurs, et de renvoyer une expression selon le cas satisfait.

L’utilisation se fait donc en 2 ou 3 parties

  1. Un appel initial à #SWITCH permet de spécifier quelle expression est testée. L’expression est évaluée et sa valeur est mémorisée.
  2. De multiples appels à #CASE permettent de tester la valeur mémorisée avec plusieurs valeurs candidates. En cas d’égalité, la balise #CASE renvoie une valeur non vide (un espace) et les parties conditionnelles avant et après sont affichées.
  3. Un éventuel appel à #CASE_DEFAULT, qui renvoie une valeur vraie si aucun des #CASE n’a été satisfait.

À tout moment, il est possible d’accéder à la valeur testée et mémorisée par le #SWITCH avec le GET suivant : #GET{_switch_}.

Exemple

  1. #SWITCH{#ENV{couleur}}
  2. [(#CASE{bleu}) Wouah, ma couleur favorite !]
  3. [(#CASE{rouge}) Ouh, c'est chaud !]
  4. [(#CASE{vert}) L'avenir et l'espoir.]
  5. [(#CASE_DEFAULT) Une couleur indicible...]

Télécharger

On peut insérer d’autres éléments de HTML ou balises spip entre les différents appels, et appeler les #CASE dans une boucle.

  1. #SWITCH{#ENV{id_choix}}
  2. <BOUCLE_case(ARTICLES)>
  3. <span  [class="(#CASE{#ID_ARTICLE}|?{choisi,pas_choisi})"]>#TITRE</span>
  4. </BOUCLE_case>
  5. <span [class="(#CASE_DEFAULT|?{choisi,pas_choisi})"]>Autre</span>

Télécharger

Exemple d’usage

Vous souhaitez ranger toute une panoplie de squelettes json (calendrier.json, lesfestivals.json, programmation.json... ) dans un sous répertoire json, mais vous souhaitez pouvoir y accéder via ajax. Or, les squelettes rangés dans un sous répertoire ne peuvent être accédés que par un webmestre. Pour ajax, vous pouvez passer par un squelette d’aiguillage à la racine, qui prend un argument « squel » et dont le code serait :

  1. #SWITCH{#SQUEL})
  2. [(#CASE{calendrier}) <INCLURE{json/calendrier.json,mois=#MOIS}>]
  3. [(#CASE{lesfestivals}) <INCLURE{json/lesfestivals.json,region=#REGION}>]
  4. [(#CASE{programmation}) <INCLURE{json/programmation.json,groupe=#GROUPE}>]

Télécharger

Particularités

-  Si plusieurs #SWITCH se succèdent, la valeur d’un nouveau #SWITCH remplace la valeur du précédent.
-  Les structures #SWITCH #CASE sont plates : pas d’emboîtement possible à l’intérieur d’un même squelette. Si vous voulez vraiment emboîter 2 switch, il faut le faire dans un squelette inclu.

Un luxe

De même que les filtres |oui, |non ou |sinon et d’autres balises SPIP, ces balises ne sont pas absolument nécessaires car il est possible d’écrire vos squelettes autrement, sans elles, avec des balises et filtres plus élémentaires.

Mais c’est bien pratique de pouvoir les utiliser ! Et le code est plus lisible...

Voir en ligne : http://plugins.spip.net/switchcase

Dernière modification de cette page le 29 septembre 2017

Retour en haut de la page

Vos commentaires

  • Le 28 juin 2017 à 16:30, par JLuc En réponse à : Balises #SWITCH et #CASE

    La doc est complétée par un Exemple d’usage :

    Vous souhaitez ranger toute une panoplie de squelettes json (calendrier.json, lesfestivals.json, programmation.json... ) dans un sous répertoire json, mais vous souhaitez pouvoir y accéder via ajax. Or, les squelettes rangés dans un sous répertoire ne peuvent être accédés que par un webmestre. Pour ajax, vous pouvez passer par un squelette d’aiguillage à la racine, qui prend un argument « squel » et dont le code serait :

    1. #SWITCH{#SQUEL})
    2. [(#CASE{calendrier}) <INCLURE{json/calendrier.json,mois=#MOIS}>]
    3. [(#CASE{lesfestivals}) <INCLURE{json/lesfestivals.json,region=#REGION}>]
    4. [(#CASE{programmation}) <INCLURE{json/programmation.json,groupe=#GROUPE}>]

    Télécharger

    Répondre à ce message

  • Le 19 septembre 2016 à 20:50, par JLuc En réponse à : Balises #SWITCH et #CASE

    Nouvelle version 0.3.0, marquée stable : la balise #DEFAULT est renommée #CASE_DEFAULT par anticipation des potentiels conflits de nommage pouvant survenir dans un futur hypothétique impossible à tout à fait exclure.

    Répondre à ce message

  • Le 4 septembre 2016 à 09:55, par Valéry En réponse à : Balises #SWITCH et #CASE

    N’est-ce pas déjà parfaitement réalisable avec les filtres de test de SPIP ?

    • Le 4 septembre 2016 à 21:36, par JLuc En réponse à : Balises #SWITCH et #CASE

      Si, mais de même que de nombreux filtres ou balises ne sont pas strictement nécessaires et servent simplement à simplifier la vie, c’est plus simple, plus lisible et plus agréable à coder certains squelettes avec ces balises.

    Répondre à ce message

  • Le 4 juin 2016 à 23:03, par JLuc En réponse à : Balises #SWITCH et #CASE

    Mis à jour : il y a maintenant aussi la balise #DEFAULT pour clore le triptyque habituel.

    Répondre à ce message

Répondre à cet article

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

  • PHANTOM (HTML5UP)

    18 juillet – commentaires

    Squelette SPIP pour intégrer le modèle Phantom de HTML5UP. https://html5up.net/phantom Installation A l’activation, le plugin installe aussi les plugins suivants : crayons, favicon, metasplus+, Couleur d’objet, champs extras, SPIP reset centre (...)

  • Cycle2

    7 août 2014 – 119 commentaires

    La seconde version de la librairie Javascript « jQuery Cycle », qui permet de produire des diaporamas, se nomme « Cycle2 » : http://jquery.malsup.com/cycle2/. Voici cette nouvelle librairie mise en plugin pour SPIP. Si vous utilisez déjà « jQuery (...)

  • Galleria (fr)

    16 novembre 2011 – 193 commentaires

    Une galerie d’image qui utilise la librairie javascript Galleria. Description Ce plugin vous permet d’ajouter des galeries d’images à vos articles. La galerie créée utilise la librairie javascript Galleria. Le plugin propose un modèle nommé (...)

  • Une licence pour un article

    18 avril 2007 – 51 commentaires

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

  • ScolaSPIP 4

    19 janvier 2016 – 371 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)