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>
#NOTESOui, 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.



Vos commentaires
# Le 10 juin 2005 à 00:48, par Orion
En réponse à : > Pour éviter de voir apparaître les notes de bas de pages attachées à un champ quand on ne le veut pas
Bonjour
Je suis confronté à un autre problème. Si je cite deux fois la même note dans un article, je la vois apparaître deux fois en bas de page. Existe-t-il un moyen d’éviter celà, et de n’afficher qu’une seule fois la note quelque soit le nombre d’appel à cette note dans le texte ?
Merci d’avance
# Le 10 juin 2005 à 10:43, par Perline
En réponse à : > Pour éviter de voir apparaître les notes de bas de pages attachées à un champ quand on ne le veut pas
De quelle manière appelles-tu les notes ?
Si tu écris de nouveau les doubles crochets avec un texte à l’intérieur, alors oui, Spip ne voit pas le contenu mais juste l’appel, et c’est pour lui deux notes distinctes.
# Le 13 juin 2005 à 14:44, par Orion
En réponse à : > Pour éviter de voir apparaître les notes de bas de pages attachées à un champ quand on ne le veut pas
La première fois je fais [1] et puis plus loin dans l’article [2]. Ce qui est étonnant, c’est que dans la prévisualisation dans la partie rédacteur tout est OK (je ne vois la note qu’une seule fois), mais c’est dans la partie publique du site que ça fait le bug... Je les appelle comme ça dans le squelette : (#NOTES après avoir appelé le texte.
Voici un lien vers l’article qui me pose problème si vous voulez aller voir...
http://www.exobio.cnrs.fr/article.php3?id_article=28
[1] texte de la note
# Le 16 juin 2005 à 18:21, par Orion
En réponse à : > Pour éviter de voir apparaître les notes de bas de pages attachées à un champ quand on ne le veut pas
Je ne saurais pas expliquer comment j’ai fait, mais j’ai résolu le problème...
# Le 31 octobre 2007 à 15:13, par Patrice Vanneufville
En réponse à : > Pour éviter de voir apparaître les notes de bas de pages attachées à un champ quand on ne le veut pas
Pour répondre à cette ancienne question, le raccourcis des notes dont on choisit le numéro est :
[[<num>texte]].Du coup,
[[<3>]]reverra à la note n°3. Le petit inconvénient, c’est qu’aucun texte de survol n’est affiché dans ce cas, puisque le texte est inexistant... Si on choisit de mettre[[<3>mon texte]]alors que la note n°3 existe déjà, SPIP créera deux notes de même numéro...Ceci est une remarque pour SPIP SVN au 31/10/2007.
Répondre à ce message
# Le 11 avril 2005 à 22:28, par François Schreuer
En réponse à : > Pour éviter de voir apparaître les notes de bas de pages attachées à un champ quand on ne le veut pas
Salut Perline,
Pour compléter/enrichir cette (utile) contrib, peut-être serait-il pertinent de fournir un filtre permettant de supprimer les appels aux notes de bas de page dans le texte.
Dans certains cas (par exemple sur une page de sommaire sur laquelle on reprend un morceau de texte), ces appels sont inutiles et intempestifs.
Perso, j’ai résolu le problème avec un petit filtre adapté à mes notes de bas de page (j’utilise des pipes pour les délimiter) :
Mais, écrit comme ça, c’est évidemment pas l’idéal.
François
Répondre à ce message