Avec SPIP 2 béta [12309] j'ai des problèmes avec les raccourcis des liens entrés de cette façon :
[->www.taizeinnederland.nl]
Voir en bas de la page http://www.taize.fr/nl_article4724.html comment ce lien inséré dans le texte est rendu ! Ce problème existe aussi sur d'autres pages.
Ce que je ne comprends pas est que sur encore d'autres pages, des liens du même format sont correctement rendus :
Je ne reproduis pas le pb en copiant seulement ton raccourci, ça doit être autour du lien qu'il y a un problème, genre un [ non fermé ou qqch comme ça.
Oui, là je reproduis. C'est la fonction autoliens_callback qui en fait trop, mais j'avoue n'avoir jamais essayé de comprendre la logique de cette fonction. Si son auteur peut intervenir...
Oui, là je reproduis. C’est la fonction autoliens_callback qui en fait trop, mais j’avoue n’avoir jamais essayé de comprendre la logique de cette fonction. Si son auteur peut intervenir…
Plus exactement c’est la partie « <[^<>]*>| » de la regexp ligne 1261 qui embrasse trop.
Cette conversion auto des url en lien me semble une fausse bonne idée.
C'etait au départ un ajout pour les forums seuls qui a été généralisé. Mais là ou cela etait simple pour les forums, cela va nous générer un nombre de bugs important dans les articles à cause de tous les cas tordus d'utilisation des url que l'on imagine pas.
Je propose de revenir au cas initial : convertir les url en lien dans les forums uniquement.
Plus exactement c’est la partie « <[^<>]*>| » de la regexp ligne 1261 qui embrasse trop.
Mon analyse était fausse, cette partie était indispensable pour éviter les urls dans les balises (par ex. <flv|url=http:…> ; mais c’est la reconnaissance des liens, un cran auparavant, qui ne repérait pas les liens « ancre ».
C’etait au départ un ajout pour les forums seuls qui a été généralisé. Mais là ou cela etait simple pour les forums, cela va nous générer un nombre de bugs important dans les articles à cause de tous les cas tordus d’utilisation des url que l’on imagine pas.
Je propose de revenir au cas initial : convertir les url en lien dans les forums uniquement.
Je préfère qu’on conserve la même fonction propre() pour tous les objets ; par contre si ce filtre pose problème, on peut la basculer en plugin (ou lame de couteau suisse). Perso je crois qu’il marche, il n’y a eu qu’un seul bug remonté depuis son introduction (le bug qui a suivi venait d’une mauvaise correction du premier).
Si j'avais remarqué que spip 2 faisait les liens automatiques (chouette) mais depuis la version beta d'hier (peut etre avant) le lien est oublié le code retourné contient bien <a> </a> mais pas de lien, ni de texte :
Pour le public :
une url de type http://toto.com est traduite de la façon suivante :
<a href="" rel="nofollow"></a>
et pour le flv cité dans les messages précédents, j'obtiens ceci :
<flv|url=><a href="" rel="nofollow"></a>></flv|url=>
Sur une version beta $spip_version_code = 12208 ca fonctionnait sauf en https alors j'ai un peu melanger les 2 !
(mais je ne sais pas si ca resout le probleme de url=http
function autoliens_callback($r) {
if (strlen($l = $r[1])) {
// reperer le protocole
$protocol = 'http';
if (preg_match(',^((https?):/*),S', $l, $m)) {
$l = substr($l, strlen($m[1]));
$protocol = $m[2];
}
if (preg_match(
'/^(?:[^\W_]((?:[^\W_]|-){0,61}[^\W_])?\.)+[a-zA-Z]{2,6}\b/S', $l)) {
$l = inserer_attribut(expanser_liens('[->'.$protocol.'://'.$l.']'),
'rel', 'nofollow');
// si le texte ne contenait pas le 'http:’ on le supprime aussi
if (!$m)
$l = str_replace('>http://', '>', $l);
return $l;
}
}
return $r[0];
}