OSDN Git Service

BugTrack/2276 interwiki.inc.php - Show link name on InterWiki link error
[pukiwiki/pukiwiki.git] / plugin / interwiki.inc.php
1 <?php
2 // PukiWiki - Yet another WikiWikiWeb clone.
3 // interwiki.inc.php
4 // Copyright 2003-2018 PukiWiki Development Team
5 // License: GPL v2 or (at your option) any later version
6 //
7 // InterWiki redirection plugin (OBSOLETE)
8
9 function plugin_interwiki_action()
10 {
11         global $vars, $InterWikiName;
12
13         if (PKWK_SAFE_MODE) die_message('InterWiki plugin is not allowed');
14
15         $match = array();
16         $page = $vars['page'];
17         if (! preg_match("/^$InterWikiName$/", $page, $match)) {
18                 return plugin_interwiki_invalid($page);
19         }
20         $url = get_interwiki_url($match[2], $match[3]);
21         if ($url === FALSE) return plugin_interwiki_invalid($page);
22
23         pkwk_headers_sent();
24         header('Location: ' . $url);
25         exit;
26 }
27
28 function plugin_interwiki_invalid($page)
29 {
30         global $_title_invalidiwn, $_msg_invalidiwn, $interwiki;
31         return array(
32                 'msg'  => $_title_invalidiwn,
33                 'body' => str_replace(array('$1', '$2'),
34                         array(htmlsc($page),
35                         make_pagelink($interwiki, 'InterWikiName')),
36                         $_msg_invalidiwn));
37 }