From 76b3c40936e1a03754c662ba138ac23bd693b2b2 Mon Sep 17 00:00:00 2001 From: andi Date: Sun, 30 Jan 2005 13:16:37 +0100 Subject: coral cache interwiki link darcs-hash:20050130121637-9977f-07e27567edf3255a99ad0a478d4ef0341a9f1113.gz --- inc/format.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'inc') diff --git a/inc/format.php b/inc/format.php index bb40ce61f..712d66f34 100644 --- a/inc/format.php +++ b/inc/format.php @@ -275,11 +275,20 @@ function format_link_interwiki($link){ } //replace placeholder - if(strstr($url,'{URL}') !== false){ - $link['url'] = str_replace('{URL}',urlencode($link['url']),$url); - }elseif(strstr($url,'{NAME}') !== false){ - $link['url'] = str_replace('{NAME}',$link['url'],$url); + if(preg_match('#\{(URL|NAME|SCHEME|HOST|PORT|PATH|QUERY)\}#',$url)){ + //use placeholders + $url = str_replace('{URL}',urlencode($link['url']),$url); + $url = str_replace('{NAME}',$link['url'],$url); + $parsed = parse_url($link['url']); + if(!$parsed['port']) $parsed['port'] = 80; + $url = str_replace('{SCHEME}',$parsed['scheme'],$url); + $url = str_replace('{HOST}',$parsed['host'],$url); + $url = str_replace('{PORT}',$parsed['port'],$url); + $url = str_replace('{PATH}',$parsed['path'],$url); + $url = str_replace('{QUERY}',$parsed['query'],$url); + $link['url'] = $url; }else{ + //default $link['url'] = $url.urlencode($link['url']); } -- cgit v1.2.3