2 /////////////////////////////////////////////////
3 // PukiWiki - Yet another WikiWikiWeb clone.
5 // $Id: interwiki.inc.php,v 1.5 2003/05/16 05:53:38 arino Exp $
7 // InterWikiName¤ÎȽÊ̤ȥڡ¼¥¸¤Îɽ¼¨
9 function plugin_interwiki_action()
11 global $script,$vars,$interwiki,$WikiName,$InterWikiName;
12 global $_title_invalidiwn,$_msg_invalidiwn;
16 if (!preg_match("/^$InterWikiName$/",$vars['page'],$match))
18 $retvars['msg'] = $_title_invalidiwn;
19 $retvars['body'] = str_replace(
21 array(htmlspecialchars($name),make_pagelink('InterWikiName')),
30 foreach (get_source($interwiki) as $line)
32 if (preg_match('/\[((?:(?:https?|ftp|news):\/\/|\.\.?\/)[!~*\'();\/?:\@&=+\$,%#\w.-]*)\s([^\]]+)\]\s?([^\s]*)/',$line,$match)
33 and $match[2] == $name)
40 // $url = substr($script,0,strrpos($script,'/')).substr($url,strspn($url,'.'));
41 $q_name = preg_quote(basename($_SERVER['SCRIPT_NAME']));
42 $url = preg_replace("/$q_name$/",'',$script).$match[1];
50 $retvars['msg'] = $_title_invalidiwn;
51 $retvars['body'] = str_replace(
53 array(htmlspecialchars($name),make_pagelink('InterWikiName')),
59 // ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°
63 if (!preg_match("/$WikiName/",$param))
65 $param = '[['.mb_convert_encoding($param,'SJIS',SOURCE_ENCODING).']]';
68 else if ($opt == 'moin')
71 $param = str_replace('%','_',rawurlencode($param));
73 else if ($opt == '' or $opt == 'std')
75 // ÆâÉôʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¤Þ¤ÞURL¥¨¥ó¥³¡¼¥É
76 $param = rawurlencode($param);
78 else if ($opt == 'asis' or $opt == 'raw')
80 // URL¥¨¥ó¥³¡¼¥É¤·¤Ê¤¤
81 // $match[3] = $match[3];
90 else if ($opt == 'euc')
94 else if ($opt == 'utf8')
99 // »ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ø¥¨¥ó¥³¡¼¥É¤·¤ÆURL¥¨¥ó¥³¡¼¥É
100 $param = rawurlencode(mb_convert_encoding($param,$opt,'auto'));
103 if (strpos($url,'$1') !== FALSE)
105 $url = str_replace('$1',$param,$url);
112 header("Location: $url");