summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
authorandi <andi@splitbrain.org>2005-01-30 13:16:37 +0100
committerandi <andi@splitbrain.org>2005-01-30 13:16:37 +0100
commit76b3c40936e1a03754c662ba138ac23bd693b2b2 (patch)
treec86570daab6d652d9505ec1a0f84f801e8340b7f /inc
parentd648703944e713a7efeaf320ac57a0d1b41a353e (diff)
downloadrpg-76b3c40936e1a03754c662ba138ac23bd693b2b2.tar.gz
rpg-76b3c40936e1a03754c662ba138ac23bd693b2b2.tar.bz2
coral cache interwiki link
darcs-hash:20050130121637-9977f-07e27567edf3255a99ad0a478d4ef0341a9f1113.gz
Diffstat (limited to 'inc')
-rw-r--r--inc/format.php17
1 files changed, 13 insertions, 4 deletions
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']);
}