Ne pas voir apparaître les notes de bas de pages attachées à un champ

Nous envisageons le cas où des notes sont introduites dans un champ, de manière voulue ou erronée, mais que l’on ne veut pas les faire apparaître sur la page publiée sur le site.

Un exemple du problème posé

Votre site, n’affichant pas dans une même page le descriptif et le contenu d’un article, vous avez pris l’habitude de remplir les champs de vos articles en copiant dans le descriptif le chapô du texte, lorsque cela est pertinent.

Par ailleurs, ce descriptif est utilisé dans les termes conditionnels des images alt, ou les infos bulles des liens title, ou encore dans les meta pour le référencement.

Apparaît alors devant vos yeux incrédules, malgré le taux d’alcoolémie égal à zéro, ces notes, deux fois en bas de page, dans la rubrique NOTES, celle qui est générée par la balise #NOTES.

Pourquoi cette vision gémellaire ?

}
#NOTES est calculé à partir des champs #INTRODUCTION, #DESCRIPTIF, #CHAPO et #TEXTE.

Calculé à chaque fois qu’apparaît l’une de ces balises, et vidé à chaque affichage de #NOTES.

D’où l’apparition, une première fois de #NOTES lié au #DESCRIPTIF, puis remise à zéro du contenu de #NOTES, avant réapparition, qu’on aurait pu croire un temps miraculeuse, liée au #TEXTE.

Problème

Si l’on demande d’afficher les notes, elles s’affichent.
Or, je veux que les bonnes notes s’affichent, mais pas les mauvaises notes (qui ne veut pas cela ?).

Autrement dit, si je veux que les notes liées au champ qui s’affiche réellement -#TEXTE- s’affichent elles-aussi réellement, en revanche, je ne veux absolument pas que celles qui sont liées aux champs de type « information annexe » s’affichent, elles.

Une solution

Comme la balise #NOTES se vide après affichage ; pour la vider, nous allons donc l’afficher.
Nous aurons donc, par exemple :

<a href="#URL_ARTICLE" title="#DESCRIPTIF">#TITRE</a>
#NOTES

Oui, mais, justement, allez-vous protester, c’est cela qu’on ne veut pas : l’afficher !

Nous allons donc l’afficher sans l’afficher : en l’affichant en « commentaire ».

<!-- #NOTES --> 

Et pour éviter de perdre de la place et de la netteté dans le code html résultant, nous allons réduire la chaîne de caractère que sont les notes en une toute petite chaîne anodine, grâce à un filtre php.

On peut choisir, par exemple le filtre count ou sizeof, qui retournera 0 (zéro) s’il n’y a pas de note et 1 (un) sinon.
Ou bien le filtre strlen qui retourne la longueur de la chaîne.

Et puisqu’on ne veut pas afficher ce qui serait totalement inutile, les commentaires vides, les balises de commentaires seront posées entre les crochets.

Résultat : [<!--(#NOTES|sizeof)-->]

affichera, soit rien s’il n’y a pas de note, soit, s’il y en a, un commentaire « 1 » ou « 0 » [1], permettant de ne pas afficher les mauvaises notes et de laisser le champ libre pour afficher les bonnes notes.

Notes

[1Dans le cas où un malencontreux [[]] se serait invité.

Discussion

Aucune discussion

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