[spip-dev] Bugs dans fonction couper

Bonjour

Je crois que je viens de trouver 2 bugs... Desole

Constat :
Y'a des gens qui ecrivent des articles avec beaucoup de photos et du coup la balise #INTRODUCTION
ne fonctionne pas. Exemple avec cet article
http://www.lefourneau.com/ardoisemagique/Page-blanche-Cie-Luc-Amoros.html
SI on regarde le sommaire du site (c'est le 5e article) la coupe de l'INTRODUCTION n'est pas
bonne... il reste du span class='spip_document_2266 spip_documents spip
Il y a plein d'autre exemple sur ce meme site...

Donc en gros, si on ecrit un article avec 15 photos suivi d'un texte, le calcul INTRODUCTION ne
marche pas

J'ai trouve pourquoi : c'est dans la fonction couper (fichier ecrire/inc/texte.php)
a cette ligne la
$texte = substr($texte, 0, $offset);

Si je comprend bien le commentaire, on limite le texte a traiter. Jusque la, $texte contient tout
le texte en html. Et si y'a beaucoup d'image, il y a plein de <img src=... alt=...> et ca
represente enormement de caracteres, beaucoup que ce qui est estime dans $offset.
Donc le substr coupe dans les images en plein milieu d'un tag (1er bug : ce qui veut deja dire que
le recalcul precedent de $offset pour eviter de couper au mileu d'un tag ne fonctionne pas) et
donc la derniere ligne de l'article n'est plus presente dans le texte a traiter...

Le plus logique serait de placer la ligne $texte = supprimer_tags($texte); juste au debut de la
fonction couper : c'est a dire, on vire d'abord tous les tags puis on gere l'offset et hop
A moins que ca ne pose un autre probleme ?

Ca fonctionne mieux, je viens de tester

Yffic Cloarec
12 rue du Costour
29480 Le Relecq Kerhuon
02 98 30 59 66

Je crois que le bug de coupe vient de
if ($p_tag_fermant<$p_tag_ouvrant)
$offset += $p_tag_fermant; // prolonger la coupe jusqu’au tag fermant suivant eventuel
qui devrait être
if ($p_tag_fermant<$p_tag_ouvrant)
$offset = $p_tag_fermant; // prolonger la coupe jusqu’au tag fermant suivant eventuel

Peux tu confirmer ?
Ca ne corrige pas ton autre bug, certes, mais si déjà on pouvait eviter de couper au mileu d’une balise html …