[spip-dev] Plusieurs appel de notes de bas de pages = plusieurs foi le même ID

Bonjour,

sur cette page http://www.maieul.net/-Qui-suis-je-
- je boucle sur des articles
- j'y appel #TEXTE et #NOTES
- chaque article à des notes de bas de page

du qui j'ai 2 renvois vers la note [1] qui sont des notes de bas de pages différents pour chaque article. Conséquent : j'ai plusieur fois des élements avec le même id. (exemple : id='nb1' ligne 188 et 212)

Sauf à numéroté à la main mes notes de bas de page, il n'y a pas moyen de corriger cela non ? Ne peut-on pas envisager une solution ?

La balise #NOTES, par définition, concerne une page et non les composants de la page,
il n'est pas normal de la mettre à l'intérieur d'une boucle sauf si on veut un effet
de page dans la page, auquel cas une numérotation manuelle est indispensable pour les distinguer.
Bref, ce n'est pas un bug.

Committo,Ergo:Sum

Pas d'accord: normalement, on avait prévu (sauf pour ce coup des id) d'avoir de la souplesse dans l'affichage des notes, d'où la globale $compt_note, censée être réinitialisée quand on affiche les notes - de façon, explicitement, à pouvoir afficher successivement des séries de notes en recommençant à zéro.

Note, si on fait une présentation «façon blog», il est parfaitement logique de présenter quelques articles complets les uns à la suite des autres, sans rejeter l'affichage des notes tout en bas de page, mais à la fin de chaque article. Ça n'est pas un usage loufoque du truc, à mon avis.

Et il y a une foule d'usages qu'on peut imaginer, sans tomber dans le farfelu. Par exemple, afficher côté à côté un article et sa traduction - on ne souhaite alors pas mélanger leurs notes.

Une globale n'est jamais souple car elle interdit la réentrance. Il y a maintenant une fonction calculer_notes avec une interface précise permettant de faire tout ce qu'on veut. Il ne s'agit pas d'être d'accord ou pas, il s'agit de comprendre l'interface: #NOTES écrit tout ce qu'elle et se remet à 0. Si on veut l'appeler plusieurs fois par pages en ayant des noms de notes différenciés, il est inévitable de donner soi-même les numéros.

Pas d'accord non plus. Je n'avais pas repéré cette cassure, mais en
effet c'était programmé de manière à ce que, sur un blog, on puisse
afficher les notes de chaque article sans faire de mélanges affreux.
Il ne s'agit pas seulement de compatibilité ascendante, mais de
logique de publication (qui ici se heurte à la "logique informatique",
mais enfin il faut savoir quelle est la priorité d'un "système de
publication").

-- Fil

Je répète qu'il ne s'agit pas d'une quelconque "logique informatique" mais,
une fois de plus, de specs non précisées qui font que, lorsqu'un bug a été détecté
à propos de ces notes, ca a été réparé avec une autre spec en tête.

A noter que cette réparation était liée au fait qu'un test unitaire ne passait plus.
Cf http://trac.rezo.net/trac/spip/log/spip/ecrire/inc/notes.php
Plutôt que de troller, il faudrait écrire celui qui manque.

Committo,Ergo:Sum

Surtout que je doute qu'il y ait casse et qu'il manque un test, car j'ai passé du temps dessus avant la release 2.1, en complétant notamment les tests.
Les appels consécutifs à #NOTES incrémentent un compteur qui préfixe le numéro, tout cela est parfaitement pris en compte, spécifié, implémenté, et testé.

Qui a vraiment vérifié la présence d'un bug avant de troller ?

Cédric

D'ailleurs pour être complet...

- le problème des<INCLURE> n'avait jamais été traité, en particulier, si deux<INCLURE> étaient calculés sur des hits différents, les notes ont toujours étaient mélangées depuis la nuit des temps, ce qui obligeait à faire un recalcul de la page pour que tout retombe bien ;
- j'ai intégré dans la 2.1 une gestion du pointeur de #NOTES dans le cache des squelette, qui permet de le faire fonctionner même lorsque des<INCLURE> génèrent des #NOTES, en étant calculés à des hits différents ;

- Maieul ne nous dit pas quelle version de SPIP il utilise, et ne fournit aucune indication sur son squelette. Il faudrait peut-être commencer par là, non ?

Cédric

a oki bon mea culpa, donc il y a chaque fois c'est une 2.1.0[15604] avec un squelette perso Z.

En gros j'ai
<code>
<BOUCLE_articles(ARTICLES){id_rubrique} {par num titre}>

<INCLURE{fond=inclure/article_direct}{id_article}>
     </BOUCLE_articles>
</code>
et dans article/direct :
<code>
<BOUCLE_article(ARTICLES){id_article}>
<div id="article-#ID_ARTICLE" class="article">
     <h2 class="h2[ (#EDIT{titre})]">#TITRE</h2>
     [<div class="texte[ (#EDIT{texte})]">(#TEXTE)</div>]
     [<div class="notes">(#NOTES)</div>]
     <div class="meta-publi"><a href="#sommaire">Retour au sommaire de la page</a></div>
</div>
</BOUCLE_article>
</code>

La compilation de la balise #NOTES consiste à ecrire les notes courantes et à remettre son compteur à 0.
Cela n'a pas changé depuis SPIP 1.7.2 au moins.
Je confirme donc qu'il n'y a donc aucune cassure.
En revanche, pour un cas comme le tien, on peut envisager que cette balise prenne un argument signifiant qu'il ne faut pas remettre le compteur à 0, mais c'est du taf.

Committo,Ergo:Sum

étrangement en local cela ne le fait pas... donc la modif de cerdic doit le faire. il doit avoir un bizn dans mon install SPIP, pourtant c'est du tout neuf.

Je refais des test et vous tiens au courant

bon, après vidage des différentes caches, ca marche...

je suis étonné car le site était neuf.

Bizarrement, le validateur du W3C indique une erreur si je lui soumet l'url, mais pas si je copie-colle le code ... un pb de cache W3C sans doute.

Désolé pour le bruit ...

Désolé pour le bruit ...

ça a permis de préciser les specs :slight_smile:

-- Fil

Ah mais je m'insurge et je précise :
- les specs sont parfaitement claires, contrairement à ce qui a été dit ici ;
- elles sont toutes implémentés, jusqu'à preuve du contraire ;

Cf notamment
http://trac.rezo.net/trac/spip/changeset/15420
qui corrige le dernier cas foireux dénoncé dans les tests par
http://zone.spip.org/trac/spip-zone/changeset/35926/core/tests
(mais non testable car les tests sont faits avec recalcul, donc sans possibilité de voir ce cas qui repose sur des caches mis a jour sur des hits differents)

Les autres cas autour de inclure ayant été testés par
http://zone.spip.org/trac/spip-zone/changeset/35912/core/tests

Cédric