Dotclear

Ticket #2073 (closed defect: fixed)

Opened 9 years ago

Last modified 7 years ago

Code retourné par "getTrackbackData" non valide en html5

Reported by: Mirovinben Owned by: team
Priority: normal Milestone: 2.11
Component: module:core Version: 2.7.4
Severity: normal Keywords:
Cc:

Description (last modified by nikrou) (diff)

Si l'on utilise les trackbacks dans un blog, le rendu d'un billet via post.html n'est pas valide en Html5.

(dotclear)\inc\core\class.dc.rs.extensions.php, function getTrackbackData, lignes 381 à 396...

Change History

comment:1 Changed 9 years ago by nikrou

Il faudrait faire quoi ? Tout virer ?

comment:2 Changed 9 years ago by Mirovinben

Mes compétences ne sont pas suffisantes pour dire ce qui coince. J'ai juste constaté le couinement du valideur W3C en testant un billet...

comment:3 follow-up: ↓ 4 Changed 9 years ago by franck

Va falloir trouver ce qu'il faut pour contenter à la fois XHTML et HTML5, donc à ne pas faire à la légère.

comment:4 in reply to: ↑ 3 Changed 9 years ago by nikrou

  • Description modified (diff)

Replying to franck:

Va falloir trouver ce qu'il faut pour contenter à la fois XHTML et HTML5, donc à ne pas faire à la légère.

N'exagérons rien. C'est juste informatif. Après pas sûr qu'on puisse contenter les deux. Je serais quand même d'avis de laisser tomber xhtml pour la prochaine version de dotclear. Z'en pensez quoi ?

comment:5 Changed 9 years ago by nikrou

  • Description modified (diff)

comment:6 Changed 9 years ago by franck

Informatif, pas seulement, la découverte des URLs de trackbacks s'appuie la dessus, il me semble, non ?

Quant à laisser tomber XHTML, on vire tous les thèmes XHTML de DotAddict? aussi ? :-D (m'est avis qu'il ne va pas en rester beaucoup). Quoi qu'il en soit, je ne vois pas de raison valable pour laisser tomber XHTML pour l'instant.

comment:7 Changed 9 years ago by philippe

Je n'ai pas d'erreur de validation pour post.html avec les trackbacks activés sur mon blog. Le thème est en html5, basé sur le jeu de templates mustek, et la partie réservée aux trackbacks est un copier-coller depuis le thème default. Ou alors je ne regarde pas au bon endroit ?

comment:8 Changed 9 years ago by franck

Mirovinben, tu as un exemple ? Histoire de voir un peu le souci ?

comment:9 Changed 9 years ago by Mirovinben

Franck, désolé, j'ai tout viré après mes tests (en local) effectués à partir de modifications des fichiers tpl de mon thème perso (qui n'utilise aucun des jeux de templates fournis avec Dotclear) pour le passer en Html5 et répondre sur le forum ici :  http://forum.dotclear.org/viewtopic.php?pid=331878#p331878.

Si Philippe n'a pas de pb, alors on peut considérer que le bogue est entre ma chaise et mon clavier et fermer ce ticket.

Last edited 9 years ago by Mirovinben (previous) (diff)

comment:10 Changed 9 years ago by Mirovinben

Je viens de refaire le test en local via le plugin Html Validator 0.9.5.8 pour Firefox qui dit

Result: 3 erreurs / 4 avertissements

Info: W3c Online Validation

line 117 column 5 - Erreur: Bogus comment.
line 128 column 10 - Erreur: Consecutive hyphens did not terminate a comment. -- is not permitted inside a comment, but e.g. - - is.
line 128 column 10 - Avertissement: The document is not mappable to XML 1.0 due to two consecutive hyphens in a comment.
line 128 column 11 - Erreur: Consecutive hyphens did not terminate a comment. -- is not permitted inside a comment, but e.g. - - is.
line 128 column 11 - Avertissement: The document is not mappable to XML 1.0 due to two consecutive hyphens in a comment.

cf partie du code inséré dans le post.html (j'ai juste ajouté ici les n° de ligne) :

117	<![CDATA[>
118	<!--[
119	<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
120	  xmlns:dc="http://purl.org/dc/elements/1.1/"
121	  xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
122	<rdf:Description
123	  rdf:about="http://mrvb/blog/index.php?post/id3081"
124	  dc:identifier="http://mrvb/blog/index.php?post/id3081"
125	  dc:title="Mon shōyu a du talent"
126	  trackback:ping="http://mrvb/blog/index.php?trackback/3081" />
127	</rdf:RDF>
128	<!]]><!---->

Last edited 9 years ago by Mirovinben (previous) (diff)

comment:11 Changed 9 years ago by philippe

Euh... ce bloc de javascript n'est pas appelé dans post.html de mustek, si ? C'est toi qui l'as ajouté ?

comment:12 Changed 9 years ago by philippe

Mille excuses, j'avais oublié {{tpl:EntryPingData}}, du coup il s'agit plutôt de corriger getTrackbackData dans class.dc.rs.extensions.php

comment:13 follow-up: ↓ 14 Changed 9 years ago by philippe

Du coup, si on supprime les commentaires avant et après CDATA, ça devrait marcher, non ?

comment:14 in reply to: ↑ 13 Changed 9 years ago by franck

Replying to philippe:

Du coup, si on supprime les commentaires avant et après CDATA, ça devrait marcher, non ?

Non.

La syntaxe CDATA est une structure XML (donc forcément çà coincera en HTML5).

Par contre on peut essayer en encapsulant tout le bloc avec un <script type="text/javascript"> … </script> ET vérifier que la découverte des URLs de trackbacks continue à rester fonctionnelle.

Si et seulement si ce n'est pas le cas, on fera une croix sur cette validation et on conservera tel quel.

comment:15 Changed 9 years ago by philippe

Le coup d'encapsuler le bloc dans une balise script permet effectivement de supprimer les commentaires et de valider, mais je ne sais pas vérifier que la découverte des trackbacks fonctionne...

comment:16 Changed 9 years ago by philippe

Sinon ça valide aussi en mettant tout le bloc CDATA en commentaire, mais pareil pour le test

comment:17 Changed 7 years ago by JcDenis

En modifiant la fonction comme ci-dessous, il n'y a plus d'erreur de validation HTML, ni Javascript, (pas testé XHTML ou je ne sais quoi) et la découverte de trackback ainsi que l'envoie/réception fonctionnent entre deux blogs Dotclear.

Mais je ne sais pas si c'est une bonne idée de mettre en commentaire et reste à savoir si ça marche entre Dotclear et d'autres type de blog...

public static function getTrackbackData($rs)
{
	return
	"<!--\n".
	"<![CDATA[>\n".
	'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"'."\n".
	'  xmlns:dc="http://purl.org/dc/elements/1.1/"'."\n".
	'  xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">'."\n".
	"<rdf:Description\n".
	'  rdf:about="'.$rs->getURL().'"'."\n".
	'  dc:identifier="'.$rs->getURL().'"'."\n".
	'  dc:title="'.htmlspecialchars($rs->post_title,ENT_COMPAT,'UTF-8').'"'."\n".
	'  trackback:ping="'.$rs->getTrackbackLink().'" />'."\n".
	"</rdf:RDF>\n".
	"]]>\n".
	"-->\n";
}

comment:18 Changed 7 years ago by JcDenis

D'ailleurs en virant encore en plus le bloc CDATA, ça à l'air de fonctionner.

comment:19 Changed 7 years ago by franck

D'ailleurs, à propos des CDATA, je me demande si je ne vais pas les virer partout (sauf dans les xml et xsl évidemment).

comment:20 Changed 7 years ago by Jean-Christian Denis

  • Status changed from new to closed
  • Resolution set to fixed

(In [7b8434cae028]) Fix HTML validation on RDF EntryPingData?, closes #2073

comment:21 Changed 7 years ago by JcDenis

  • Milestone changed from A definir to 2.11
Note: See TracTickets for help on using tickets.

Sites map