OSDN Git Service

BugTrack/2276 interwiki.inc.php - Show link name on InterWiki link error
[pukiwiki/pukiwiki.git] / plugin / interwiki.inc.php
index cc3bf92..87e07e4 100644 (file)
@@ -1,6 +1,8 @@
 <?php
 // PukiWiki - Yet another WikiWikiWeb clone.
-// $Id: interwiki.inc.php,v 1.11 2011/01/25 15:01:01 henoheno Exp $
+// interwiki.inc.php
+// Copyright 2003-2018 PukiWiki Development Team
+// License: GPL v2 or (at your option) any later version
 //
 // InterWiki redirection plugin (OBSOLETE)
 
@@ -11,25 +13,25 @@ function plugin_interwiki_action()
        if (PKWK_SAFE_MODE) die_message('InterWiki plugin is not allowed');
 
        $match = array();
-       if (! preg_match("/^$InterWikiName$/", $vars['page'], $match))
-               return plugin_interwiki_invalid();
-
+       $page = $vars['page'];
+       if (! preg_match("/^$InterWikiName$/", $page, $match)) {
+               return plugin_interwiki_invalid($page);
+       }
        $url = get_interwiki_url($match[2], $match[3]);
-       if ($url === FALSE) return plugin_interwiki_invalid();
+       if ($url === FALSE) return plugin_interwiki_invalid($page);
 
        pkwk_headers_sent();
        header('Location: ' . $url);
        exit;
 }
 
-function plugin_interwiki_invalid()
+function plugin_interwiki_invalid($page)
 {
-       global $_title_invalidiwn, $_msg_invalidiwn;
+       global $_title_invalidiwn, $_msg_invalidiwn, $interwiki;
        return array(
                'msg'  => $_title_invalidiwn,
                'body' => str_replace(array('$1', '$2'),
-                       array(htmlsc(''),
-                       make_pagelink('InterWikiName')),
+                       array(htmlsc($page),
+                       make_pagelink($interwiki, 'InterWikiName')),
                        $_msg_invalidiwn));
 }
-?>