From c5c7c389d821eb29f271bcc0c6de745327388872 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Sat, 25 Sep 2010 13:25:18 +0000 Subject: [PATCH] generaliser les cas particuliers de lien implicite site et glose par un charger_fonction Cela permettre en plus a ceux qui le veulent de refaire pointer [->sitexx] vers la page du site et non vers l'url du site distant, en declarant function lien_implicite_site_dist(){ return false; } ce qui force le cas par defaut --- ecrire/inc/lien.php | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/ecrire/inc/lien.php b/ecrire/inc/lien.php index cb4cb82469..c92de9bf07 100644 --- a/ecrire/inc/lien.php +++ b/ecrire/inc/lien.php @@ -314,6 +314,19 @@ function traiter_lien_explicite ($ref, $texte='', $pour='url', $connect='') return array('url' => $lien, 'titre' => $texte); } +function lien_implicite_glose_dist($texte,$id,$type,$args,$ancre,$connect=''){ + if (function_exists($f = 'glossaire_' . $ancre)) + $url = $f($texte, $id); + else + $url = glossaire_std($texte); + return $url; +} + +function lien_implicite_site_dist($texte,$id,$type,$args,$ancre,$connect=''){ + $url = sql_getfetsel('url_site', 'spip_syndic', "id_syndic=$id",'','','','',$connect); + return $url; +} + // http://doc.spip.org/@traiter_lien_implicite function traiter_lien_implicite ($ref, $texte='', $pour='url', $connect='') { @@ -321,14 +334,12 @@ function traiter_lien_implicite ($ref, $texte='', $pour='url', $connect='') @list($type,,$id,,$args,,$ancre) = $match; # attention dans le cas des sites le lien doit pointer non pas sur # la page locale du site, mais directement sur le site lui-meme - if ($type == 'site') - $url = sql_getfetsel('url_site', 'spip_syndic', "id_syndic=$id",'','','','',$connect); - elseif ($type == 'glose') { - if (function_exists($f = 'glossaire_' . $ancre)) - $url = $f($texte, $id); - else $url = glossaire_std($texte); - } else $url = generer_url_entite($id,$type,$args,$ancre,$connect ? $connect : NULL); + if ($f = charger_fonction("implicite_$type","lien",true)) + $url = $f($texte,$id,$type,$args,$ancre,$connect); + if (!$url) + $url = generer_url_entite($id,$type,$args,$ancre,$connect ? $connect : NULL); if (!$url) return false; + if (is_array($url)) { @list($type,$id) = $url; $url = generer_url_entite($id,$type,$args,$ancre,$connect ? $connect : NULL); -- GitLab