[SPIP Zone] Spip 1.9.2h / fabrication d'identifiants de fragment html

Bonjour,

Dans spip 1.9.2h, il semble que lorsque que l'on inclue plusieurs fois le même
squelette dans une page, et que ce squelette contient une boucle, on se
retrouve avec une page html contenant le même identifiant pour deux balises
différentes. Il s'en suit que la page n'est pas valide et que l'on ne peut
plus récupérer cette balise dans du code javascript avec la fonction
getElementById...

Le saviez-vous ?
Est-ce corrigé dans une version ultérieure de Spip ?
Y a t-il un moyen d'influer sur la fabrication de cet identifiant ?

merci
olb

Olivier a écrit :

Dans spip 1.9.2h, il semble que lorsque que l'on inclue plusieurs fois le même
squelette dans une page, et que ce squelette contient une boucle, on se
retrouve avec une page html contenant le même identifiant pour deux balises
différentes. Il s'en suit que la page n'est pas valide et que l'on ne peut
plus récupérer cette balise dans du code javascript avec la fonction
getElementById...

si je comprends bien...

ce n'est pas la boucle qui devient du html, c'est son contenu.
c'est du devoir du créateur de squelette de s'assurer que les identifiants
sont différents si la noisette peut être insérée plusieurs fois dans une page,
par exemple en se servant d'un paramétre identifiant reçu en paramétre.

ça répond ?
JL

Olivier a écrit :

Bonjour,

Dans spip 1.9.2h, il semble que lorsque que l'on inclue plusieurs fois le même
squelette dans une page, et que ce squelette contient une boucle, on se
retrouve avec une page html contenant le même identifiant pour deux balises
différentes. Il s'en suit que la page n'est pas valide et que l'on ne peut
plus récupérer cette balise dans du code javascript avec la fonction
getElementById...

Le saviez-vous ?
Est-ce corrigé dans une version ultérieure de Spip ?
Y a t-il un moyen d'influer sur la fabrication de cet identifiant ?

merci
olb

non, je savais pas, mais c'est assez logique, spip se contrefout de savoir s'il produit du html, du css ou du bougliboulga-> c'est à toi de gérer tes squelettes pour cela.

une solution : lorsque tu appel ton squelette, tu passe un paramètre id_toto différent dans les deux appel.

et dans ton squelette au niveau de l'élèment à identifier tu fais par exemple : id="#ENV{id_toto}"
et voilà

--
Maïeul
http://maieul.ouvaton.org

Ma•ïeul a écrit :

Olivier a écrit :

Bonjour,

Dans spip 1.9.2h, il semble que lorsque que l'on inclue plusieurs fois le même
squelette dans une page, et que ce squelette contient une boucle, on se
retrouve avec une page html contenant le même identifiant pour deux balises
différentes. Il s'en suit que la page n'est pas valide et que l'on ne peut
plus récupérer cette balise dans du code javascript avec la fonction
getElementById...

Le saviez-vous ?
Est-ce corrigé dans une version ultérieure de Spip ?
Y a t-il un moyen d'influer sur la fabrication de cet identifiant ?

merci
olb

non, je savais pas, mais c'est assez logique, spip se contrefout de savoir s'il produit du html, du css ou du bougliboulga-> c'est à toi de gérer tes squelettes pour cela.

une solution : lorsque tu appel ton squelette, tu passe un paramètre id_toto différent dans les deux appel.

et dans ton squelette au niveau de l'élèment à identifier tu fais par exemple : id="#ENV{id_toto}"
et voilà

a j'ignorais ...
ca c'est top
dans l'idéal, il faudrait que le cs fasse cela aussi

--
Maïeul
http://maieul.ouvaton.org

Le 14 mai 09 à 19:07, Ma•ïeul a écrit :

Bonjour,

Dans spip 1.9.2h, il semble que lorsque que l'on inclue plusieurs fois le même
squelette dans une page, et que ce squelette contient une boucle, on se
retrouve avec une page html contenant le même identifiant pour deux balises
différentes. Il s'en suit que la page n'est pas valide et que l'on ne peut
plus récupérer cette balise dans du code javascript avec la fonction
getElementById...

Le saviez-vous ?
Est-ce corrigé dans une version ultérieure de Spip ?
Y a t-il un moyen d'influer sur la fabrication de cet identifiant ?

merci
olb

non, je savais pas, mais c'est assez logique, spip se contrefout de savoir s'il produit du html, du css ou du bougliboulga-> c'est à toi de gérer tes squelettes pour cela.
une solution : lorsque tu appel ton squelette, tu passe un paramètre id_toto différent dans les deux appel.
et dans ton squelette au niveau de l'élèment à identifier tu fais par exemple : id="#ENV{id_toto}"
et voilà

a j'ignorais ...
ca c'est top
dans l'idéal, il faudrait que le cs fasse cela aussi

moi j'aimerais bien que le cs ecrive mes squelettes à ma place
et redige mon contenu
et code mes plugins
...

Bonjour,

j'ai lu attentivement les réponses que l'on m'a faite mais aucune ne me
satisfait. Spip semble bel et bien fabriquer du html qui n'est pas dans les
squelettes et ce pour la gestion de l'ajax, je crois.

Je me retrouve avec une page qui contient trois bouts de html comme cela :

<div id="fragment_html_47950630e02b0de904a071294f44442c_editos" class="fragment">

avec le même identitifant id=... Ces trois bouts correspondent à trois
inclusions différentes du même squelette et je ne trouve nul part ou est
produit le code html en question.

Voilà, est ce que cela est plus clair ?

olb

Le jeudi 14 mai 2009 à 20:44 +0200, cedric.morin@yterium.com a écrit:

Le 14 mai 09 à 19:07, Ma•ïeul a écrit :

Bonjour,

Dans spip 1.9.2h, il semble que lorsque que l'on inclue plusieurs
fois le même
squelette dans une page, et que ce squelette contient une boucle,
on se
retrouve avec une page html contenant le même identifiant pour
deux balises
différentes. Il s'en suit que la page n'est pas valide et que
l'on ne peut
plus récupérer cette balise dans du code javascript avec la fonction
getElementById...

Le saviez-vous ?
Est-ce corrigé dans une version ultérieure de Spip ?
Y a t-il un moyen d'influer sur la fabrication de cet identifiant ?

merci
olb

non, je savais pas, mais c'est assez logique, spip se contrefout de
savoir s'il produit du html, du css ou du bougliboulga-> c'est à toi
de gérer tes squelettes pour cela.
une solution : lorsque tu appel ton squelette, tu passe un paramètre
id_toto différent dans les deux appel.
et dans ton squelette au niveau de l'élèment à identifier tu fais
par exemple : id="#ENV{id_toto}"
et voilà

a j'ignorais ...
ca c'est top
dans l'idéal, il faudrait que le cs fasse cela aussi

moi j'aimerais bien que le cs ecrive mes squelettes à ma place
et redige mon contenu
et code mes plugins
...

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Le 16 mai 09 à 21:16, Olivier a écrit :

Bonjour,

j'ai lu attentivement les réponses que l'on m'a faite mais aucune ne me
satisfait. Spip semble bel et bien fabriquer du html qui n'est pas dans les
squelettes et ce pour la gestion de l'ajax, je crois.

Je me retrouve avec une page qui contient trois bouts de html comme cela :

<div id="fragment_html_47950630e02b0de904a071294f44442c_editos" class="fragment">

avec le même identitifant id=... Ces trois bouts correspondent à trois
inclusions différentes du même squelette et je ne trouve nul part ou est
produit le code html en question.

C'etait une implémentation experimentale d'un futur support automatisé d'ajax au niveau des boucle. L'expérience n'a pas été concluante (ie à l'usage ça n'était pas satisfaisant) et cela a été supprimé de la version 2.0 et remplacé par le critère {ajax} au niveau des inclusions.
Ce n'est pas documenté, donc, normal que personne ne puisse te renseigner.
Ce code est produit par le compilateur même, sur les boucle ayant le critère {pagination} ou {fragment}. Il n'est pas possible de désactiver l'insertion de ce code. Néanmoins, je crois me rappeler que tu peux nommer les fragments avec {fragment toto}, ce qui peut te permettre de différencier tes 3 inclusions en nommant le fragment en fonction d'un #ENV.
Désolé pour les nuisances que te pose ce truc.
Je te donnerai bien volontier le conseil de passer en version 2.0, tu y gagneras la résolution de ce problème, et plein de nouvelles chouettes choses !

Cédric