diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php index e33301e5c259d1f51f9151a975a9272c387a5eb5..4589ce6ceb6e874d0bcddc1b6ac097df10ece186 100644 --- a/ecrire/inc/documents.php +++ b/ecrire/inc/documents.php @@ -436,11 +436,37 @@ function inserer_documents($letexte) { else $rempl = integre_image($match[2], $match[4], $type); + // Temporaire : un pis-aller pour eviter que des paragraphes dans + // le descriptif d'un document ne soient doublonnes en <br /> : + // le probleme est que propre() est passe deux fois... + $rempl = preg_replace(",\n+,", " ", $rempl); + + // XHTML : remplacer par une <div onclick> le lien + // dans le cas [<docXX>->lien] ; sachant qu'il n'existe + // pas de bonne solution en XHTML pour produire un lien + // sur une div (!!)... + if (substr($rempl, 0, 5) == '<div ' + AND preg_match(',(<a [^>]+>)'.preg_quote($match[0]).'</a>,Uims', + $letexte, $r)) { + $lien = extraire_attribut($r[1], 'href'); + $re = '<div style="cursor:pointer;cursor:hand;" ' + .'onclick="document.location=\''.$lien + .'\'"' +## .' href="'.$lien.'"' # href deviendra legal en XHTML2 + .'>' + .$rempl + .'</div>'; + $letexte = str_replace($r[0], $re, $letexte); + } + + // cas normal // Installer le document ; les <div> sont suivies de deux \n de maniere // a provoquer un paragraphe a la suite ; les span, non, sinon les liens // [<img|left>->URL] ne fonctionnent pas. - $saut = preg_match(',<div ,', $rempl) ? "\n\n" : ""; - $letexte = str_replace($match[0], $rempl . $saut, $letexte); + else { + $saut = preg_match(',<div ,', $rempl) ? "\n\n" : ""; + $letexte = str_replace($match[0], $rempl . $saut, $letexte); + } } $pile--; diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php index 7ac6c786f8b2b4b2f089ead059172370626b2531..99484243fd743aa0d3c88ac6cb24f42924e04b8d 100644 --- a/ecrire/inc/texte.php +++ b/ecrire/inc/texte.php @@ -1092,9 +1092,10 @@ function traiter_raccourcis($letexte) { $i = 0; foreach ($matches as $regs) { list($lien, $class, $texte) = calculer_url($regs[3], $regs[1], 'tout'); - $inserts[++$i] = "<a href=\"$lien\" class=\"$class\">" - . typo(supprimer_numero($texte)) - . "</a>"; + # ici ibne passer le lien pour traiter [<doc3>->url] + $inserts[++$i] = typo("<a href=\"$lien\" class=\"$class\">" + . supprimer_numero($texte) + . "</a>"); $letexte = str_replace($regs[0], "@@SPIP_ECHAPPE_LIEN_$i@@", $letexte); @@ -1107,26 +1108,6 @@ function traiter_raccourcis($letexte) { $letexte = str_replace("@@SPIP_ECHAPPE_LIEN_$i@@", $insert, $letexte); } - // XHTML : remplacer par une <div onclick> le lien - // dans le cas [<docXX>->lien] ; sachant qu'il n'existe - // pas de bonne solution en XHTML pour produire un lien - // sur une div (!!)... - if (preg_match_all(',(<a [^>]+>)(<div .*)</a>,Uims', $letexte, $regs, - PREG_SET_ORDER)) - foreach ($regs as $r) { - if (!strlen($lien = extraire_attribut($r[1], 'href'))) next; - $b = $r[2]; - if (preg_match(',^(<div [^>]*>)(<img[^>]*>)(.*)$,Uims', $b, $m)) - $b = $m[1].$r[1].$m[2].'</a>'.$m[3]; - $re = '<div style="cursor:pointer;cursor:hand;" ' - .'onclick="document.location=\''.$lien - .'\'"' -## .' href="'.$lien.'"' # href deviendra legal en XHTML2 - .'>' - .$b - .'</div>'; - $letexte = str_replace($r[0], $re, $letexte); - } // // Tableaux