Permalink
Browse files

Merge pull request #1737 from dmak/issue-1614

Implemented interwiki substitution for external images (issue #1614).
  • Loading branch information...
splitbrain committed Nov 13, 2016
2 parents d88476a + 6efc45a commit 1f0bb9cd65aee190f6267a051fae58890de4893f
Showing with 19 additions and 3 deletions.
  1. +11 −0 inc/common.php
  2. +3 −3 inc/parser/handler.php
  3. +5 −0 inc/parser/xhtml.php
View
@@ -834,6 +834,17 @@ function clientismobile() {
return false;
}
/**
* check if a given link is interwiki link
*
* @param string $link the link, e.g. "wiki>page"
* @return bool
*/
function link_isinterwiki($link){
if (preg_match('/^[a-zA-Z0-9\.]+>/u',$link)) return true;
return false;
}
/**
* Convert one or more comma separated IPs to hostnames
*
View
@@ -446,7 +446,7 @@ function internallink($match, $state, $pos) {
//decide which kind of link it is
if ( preg_match('/^[a-zA-Z0-9\.]+>{1}.*$/u',$link[0]) ) {
if ( link_isinterwiki($link[0]) ) {
// Interwiki
$interwiki = explode('>',$link[0],2);
$this->_addCall(
@@ -693,8 +693,8 @@ function Doku_Handler_Parse_Media($match) {
$cache = 'cache';
}
// Check whether this is a local or remote image
if ( media_isexternal($src) ) {
// Check whether this is a local or remote image or interwiki
if (media_isexternal($src) || link_isinterwiki($src)){
$call = 'externalmedia';
} else {
$call = 'internalmedia';
View
@@ -1186,6 +1186,11 @@ function internalmedia($src, $title = null, $align = null, $width = null,
*/
function externalmedia($src, $title = null, $align = null, $width = null,
$height = null, $cache = null, $linking = null, $return = false) {
if(link_isinterwiki($src)){
list($shortcut, $reference) = explode('>', $src, 2);
$exists = null;
$src = $this->_resolveInterWiki($shortcut, $reference, $exists);
}
list($src, $hash) = explode('#', $src, 2);
$noLink = false;
$render = ($linking == 'linkonly') ? false : true;

0 comments on commit 1f0bb9c

Please sign in to comment.