2 /////////////////////////////////////////////////
3 // PukiWiki - Yet another WikiWikiWeb clone.
5 // $Id: interwiki.inc.php,v 1.1 2003/01/27 05:38:46 panda Exp $
7 // InterWikiName¤ÎȽÊ̤ȥڡ¼¥¸¤Îɽ¼¨
8 function plugin_interwiki_action()
10 global $script,$vars,$interwiki,$WikiName,$InterWikiName;
11 global $_title_invalidiwn,$_msg_invalidiwn;
15 if (!preg_match("/^$InterWikiName$/",$vars['page'],$match)) {
16 $retvars['msg'] = $_title_invalidiwn;
17 $retvars['body'] = str_replace('$1',htmlspecialchars($name),str_replace('$2',"<a href=\"$script?InterWikiName\">InterWikiName</a>",$_msg_invalidiwn));
24 $source = get_source($interwiki);
25 foreach($source as $line) {
26 // <1 url --------------------------------------------------------------> <2 name> <3 opt >
27 if (preg_match('/\[((?:https?|ftp|news)(?:\:\/\/[[:alnum:]\+\$\;\?\.%,!#~\*\/\:@&=_\-]+))\s([^\]]+)\]\s?([^\s]*)/',$line,$match) and $match[2] == $name) {
35 $retvars['msg'] = $_title_invalidiwn;
36 $retvars['body'] = str_replace('$1',htmlspecialchars($name),str_replace('$2',"<a href=\"$script?InterWikiName\">InterWikiName</a>",$_msg_invalidiwn));
40 $b_mb = function_exists('mb_convert_encoding');
42 // ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°
46 if (!preg_match("/$WikiName/",$param))
47 $param = $b_mb ? '[['.mb_convert_encoding($param,'SJIS',ENCODING).']]' : FALSE;
49 else if ($opt == 'moin')
52 $param = str_replace('%','_',rawurlencode($param));
54 else if ($opt == '' or $opt == 'std')
56 // ÆâÉôʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¤Þ¤ÞURL¥¨¥ó¥³¡¼¥É
57 $param = rawurlencode($param);
59 else if ($opt == 'asis' or $opt == 'raw')
61 // URL¥¨¥ó¥³¡¼¥É¤·¤Ê¤¤
62 // $match[3] = $match[3];
69 else if ($opt == 'euc')
71 else if ($opt == 'utf8')
74 // ¤½¤Î¾¡¢»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ø¥¨¥ó¥³¡¼¥É¤·¤ÆURL¥¨¥ó¥³¡¼¥É
75 $param = $b_mb ? rawurlencode(mb_convert_encoding($param,$opt,'auto')) : FALSE;
80 $retvars['msg'] = 'Not support mb_convert_encoding.';
81 $retvars['body'] = 'This server\'s PHP does not have "mb_jstring" module. Cannot convert encoding.';
85 if (strpos($url,'$1') !== FALSE)
86 $url = str_replace('$1',$param,$url);
90 header("Location: $url");