Exemple : champs extra et menu-cases

Voici un exemple de boucle qui montre comment souligner certains éléments dans une liste créée grâce à un champ supplémentaire et une saisie menu-cases : application à un calendrier.

On utilisera les plugins Champs extra pour créer des champs supplémentaires et Bonux pour gérer les boucles de tableaux (les fameux #ARRAY).

La Démarche

  1. Créer un champ nommé « semis » avec l’interface de champs extra sur la table article en choisissant la saisie « menu-cases » laisser à « text not null defaut » le champ SQL et ajouter la liste des mois.(A)
  2. Créer un fichier de squelette dans un dossier inclure/semis.html qui contient la boucle donnée (B)
  3. Coller [(#SEMIS|oui) #INCLURE{fond=inclure/semis,id_article} ] dans le squelette article.html
  4. Si les mois ont été cochés, alors le calendrier s’affiche avec en rouge les mois choisis.

A) Avec champ extra et un menu-cases choisi dans le type de saisie, insérer une liste comme ceci :

janvier,Janvier
fevrier,Février
mars,Mars
avril,Avril
mai,Mai
juin,Juin
juillet,Juillet
aout,Août
septembre,Septembre
octobre,Octobre
novembre,Novembre
decembre,Décembre 

Voici une capture d’écran après création du champ semis :

La boucle

B) inclure/semis.html

La boucle reprend un système de tableau avec le filtre in_array, qui renvoie true si le mois a été coché, permettant de demander à afficher une class supplémentaire (d’ou le mois en rouge).

<BOUCLE_liste_semis(ARTICLES){id_article}{0,1}>

<ul class="spip saison">
<li class="titre">[(#CHAMP_EXTRA{semis, label}) : ]</li>
<BOUCLE_semis(POUR){tableau #LISTER_CHOIX**{semis}}>
<li class="saisonnalite [(#CLE|in_array{[(#LISTER_VALEURS**{semis})]}|oui) saison_in]">
         #VALEUR
</li>
</BOUCLE_semis>
</ul>

</BOUCLE_liste_semis>

N’oubliez pas le code CSS et adaptez à votre choix !

<style type='text/css'>
.saison_in{color:red}
</style>

En prime


Pouvoir restreindre l’affichage du champs extra « semis » aux articles qui sont dans les secteurs 16 1 et 6, code à mettre dans le fichier mes_fonctions.php

// restreindre le champ 'semis' des articles, seulement sur les secteurs 16,1 et 6
include_spip('inc/cextras_autoriser');
    restreindre_extras('article', array('semis', 'recolte'), array(16,1,6),'secteur');

Voir le résultat http://pensezsauvage.org/Bardane

Dernière modification de cette page le 9 février 2019

Discussion

Aucune discussion

Ajouter un commentaire

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

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