summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/interwiki.conf1
-rw-r--r--inc/format.php17
-rw-r--r--interwiki/coral.gifbin0 -> 85 bytes
3 files changed, 14 insertions, 4 deletions
diff --git a/conf/interwiki.conf b/conf/interwiki.conf
index dfdf3ef7c..dbb1331f6 100644
--- a/conf/interwiki.conf
+++ b/conf/interwiki.conf
@@ -23,6 +23,7 @@ man http://man.splitbrain.org/index.php/man/
phpfn http://www.php.net/manual/en/function.{NAME}.php
go http://www.google.com/search?q={URL}&btnI=lucky
bug http://bugs.splitbrain.org/index.php?do=details&id=
+coral http://{HOST}.{PORT}.nyud.net:8090/{PATH}?{QUERY}
# Standards from http://usemod.com/intermap.txt follow
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']);
}
diff --git a/interwiki/coral.gif b/interwiki/coral.gif
new file mode 100644
index 000000000..0f9f67587
--- /dev/null
+++ b/interwiki/coral.gif
Binary files differ