Bonjour,
lorsqu'on veut imprimer un article sur le web, on perd souvent les URL
de tous les liens présents dans cet article, à moins que le browser ne
propose (comme le fait IE), d'imprimer en plus un tableau des liens.
Pour éviter cela avec SPIP, j'ai fait une petite fonction à placer
dans 'mes_fonctions.php3' (ou peut-être bientôt en natif), et qu'il
suffit d'utiliser dans les squelettes prévus pour l'impression comme
ceci par exemple :
[(#TEXTE|imprimer)]
Voici la fonction :
function imprimer($in)
{
// Nettoyage des liens des notes de bas de page
$in = ereg_replace("<a href='#n(b|h)[0-9]+' name='n(b|h)[0-9]+' class='spip_note'>([0-9]+)</a>", "\\3", $in);
// Remplace tous les liens selon la logique suivante :
// '<a href="link">link</a>' devient 'link'
// '<a href="link">text</a>' devient 'text (link)'
while (eregi("<a href=['\"]([^'\"]+)['\"][^>]*>([^<]+)</a>", $in, $regs)) {
$cleanReg1 = ereg_replace("\\?", "\?", $regs[1]);
$cleanReg2 = ereg_replace("\\?", "\?", $regs[2]);
if ($regs[1] == $regs[2]) {
$in = eregi_replace("<a href=['\"]".$cleanReg1."['\"][^>]*>".$cleanReg1."</a>", $regs[1], $in);
} else {
$in = eregi_replace("<a href=['\"]".$cleanReg1."['\"][^>]*>".$cleanReg2."</a>", $regs[2]." (".$regs[1].")", $in);
}
}
return $in;
}
Voilà un exemple de ce que ça donne :
http://www.clever-age.com/article.php3?id_article=29
http://www.clever-age.com/imprimable.php3?id_article=29
Au passage, c'est un site de plus pour SPIP, depuis quelques jours ...
Il ne reste qu'à virer les liens sur les images (pour les docs), mais
je n'ai pas encore trouvé de solution satisfaisante.
-Nicolas