SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 295 visiteurs en ce moment

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

Balises #SWITCH et #CASE

20 mai 2016 – par JLuc – commentaires

18 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

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 de 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 8 novembre 2016

Retour en haut de la page

Vos commentaires

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

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

  • Réservation d’événements

    16 mars 2015 – 206 commentaires

    Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées. Installation Le plugin s’installe comme n’importe quel plugin. il nécessite : Agenda API de vérification (...)

  • Agenda 2.0

    3 novembre 2008 – 1069 commentaires

    Voici la version pour SPIP 2.0 du Plugin Agenda pour SPIP 1.9.2, avec une interface remaniée pour encore plus de plaisir. Pour une documentation concernant l’utilisation d’Agenda 3 pour SPIP 3, veuillez pour l’instant vous référer à SPIP 3, Agenda (...)

  • Indexer : Installation et Configuration

    6 octobre 2014 – 39 commentaires

    Introduction Pour comprendre l’intérêt du plugin, nous invitons à lire l’article suivant Indexer : Introduction. Le fonctionnement de la boucle SPHINX est expliqué dans cet article : Indexer : La boucle SPHINX. La suite de l’article aborde (...)

  • GIS 4

    11 août 2012 – 1313 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2058 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)