2 // pukiwiki.php - Yet another WikiWikiWeb clone.
4 // PukiWiki 1.3.* MASUI'z Edition
5 // Copyright (C) 2002 by sng, MASUI.
6 // Yuichiro MASUI <masui@masui.net>
7 // http://masui.net/pukiwiki/
10 // Copyright (C) 2001,2002 by sng.
12 // http://factage.com/sng/pukiwiki/
15 // YukiWiki by Hiroshi Yuki
17 // http://www.hyuki.com/yukiwiki/
19 // This program is free software; you can redistribute it and/or modify
20 // it under the terms of the GNU General Public License as published by
21 // the Free Software Foundation; either version 2 of the License, or
22 // (at your option) any later version.
24 // This program is distributed in the hope that it will be useful,
25 // but WITHOUT ANY WARRANTY; without even the implied warranty of
26 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 // GNU General Public License for more details.
29 // $Id: pukiwiki.php,v 1.5 2002/06/28 12:47:46 masui Exp $
30 /////////////////////////////////////////////////
33 /////////////////////////////////////////////////
34 // ¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ëÆɤ߹þ¤ß
37 require("plugin.php");
38 require("template.php");
40 require("backup.php");
44 /////////////////////////////////////////////////
45 // ¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ëÆɤ߹þ¤ß
49 /////////////////////////////////////////////////
53 if(!empty($vars["plugin"]) && exist_plugin_action($vars["plugin"]))
55 $retvars = do_plugin_action($vars["plugin"]);
57 $title = strip_bracket($vars["refer"]);
58 $page = make_search($vars["refer"]);
62 $title = str_replace("$1",$title,$retvars["msg"]);
63 $page = str_replace("$1",$page,$retvars["msg"]);
66 if(!empty($retvars["body"]))
68 $body = $retvars["body"];
73 $vars["page"] = $vars["refer"];
74 $body = @join("",get_source($vars["refer"]));
75 $body = convert_html($body);
79 else if(arg_check("list"))
81 header_lastmod($whatsnew);
83 $page = $title = $_title_list;
84 $body = "<ul>\n" . get_list(false) . "</ul>\n";
86 // ¥Õ¥¡¥¤¥ë̾°ìÍ÷¤Îɽ¼¨
87 else if(arg_check("filelist"))
89 header_lastmod($whatsnew);
91 $page = $title = $_title_filelist;
92 $body = "<ul>\n" . get_list(true) . "</ul>\n";
94 // ÊÔ½¸ÉÔ²Äǽ¤Ê¥Ú¡¼¥¸¤òÊÔ½¸¤·¤è¤¦¤È¤·¤¿¤È¤
95 else if(((arg_check("add") || arg_check("edit") || arg_check("preview")) && (is_freeze($vars["page"]) || !is_editable($vars["page"]) || $vars["page"] == "")))
97 $body = $title = str_replace('$1',strip_bracket($vars["page"]),$_title_cannotedit);
98 $page = str_replace('$1',make_search($vars["page"]),$_title_cannotedit);
100 if(is_freeze($vars["page"]))
101 $body .= "(<a href=\"$script?cmd=unfreeze&page=".rawurlencode($vars["page"])."\">$_msg_unfreeze</a>)";
104 else if(arg_check("add"))
106 $title = str_replace('$1',strip_bracket($get["page"]),$_title_add);
107 $page = str_replace('$1',make_search($get["page"]),$_title_add);
109 $body .= "<li>$_msg_add</li>\n";
111 $body .= edit_form("",$get["page"],true);
114 else if(arg_check("edit"))
116 $postdata = @join("",get_source($get["page"]));
117 if($postdata == '') {
118 $postdata = auto_template($get["page"]);
120 $title = str_replace('$1',strip_bracket($get["page"]),$_title_edit);
121 $page = str_replace('$1',make_search($get["page"]),$_title_edit);
122 $body = edit_form($postdata,$get["page"]);
125 else if(arg_check("preview") || $post["preview"] || $post["template"])
127 if($post["template"] && page_exists($post["template_page"]))
129 $post["msg"] = @join("",get_source($post["template_page"]));
132 $post["msg"] = preg_replace("/^#freeze\n/","",$post["msg"]);
133 $postdata_input = $post["msg"];
139 $postdata = $post["msg"];
141 $postdata .= @join("",get_source($post["page"]));
145 $postdata = @join("",get_source($post["page"]));
147 $postdata .= $post["msg"];
152 $postdata = $post["msg"];
155 $title = str_replace('$1',strip_bracket($post["page"]),$_title_preview);
156 $page = str_replace('$1',make_search($post["page"]),$_title_preview);
158 $body = "$_msg_preview<br>\n";
159 if($postdata == "") $body .= "<b>$_msg_preview_delete</b><br>\n";
160 else $body .= "<br>\n";
164 $postdata = convert_html($postdata);
166 $body .= "<table width=\"100%\" bgcolor=\"$preview_color\">\n"
175 if($post["add_top"]) $checked_top = " checked";
176 $addtag = '<input type="hidden" name="add" value="true">';
177 $add_top = '<input type="checkbox" name="add_top" value="true"'.$checked_top.'><small>¥Ú¡¼¥¸¤Î¾å¤ËÄɲÃ</small>';
179 if($post["notimestamp"]) $checked_time = "checked";
181 $body .= "<form action=\"$script\" method=\"post\">\n"
182 ."<input type=\"hidden\" name=\"help\" value=\"$post[add]\">\n"
183 ."<input type=\"hidden\" name=\"page\" value=\"".$post["page"]."\">\n"
184 ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"
186 ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\">\n".htmlspecialchars($postdata_input)."</textarea><br>\n"
187 ."<input type=\"submit\" name=\"preview\" value=\"$_btn_repreview\" accesskey=\"p\">\n"
188 ."<input type=\"submit\" name=\"write\" value=\"$_btn_update\" accesskey=\"s\">\n"
190 ."<input type=\"checkbox\" name=\"notimestamp\" value=\"true\" $checked_time><small>$_btn_notchangetimestamp</small>\n"
193 // ½ñ¤¹þ¤ß¤â¤·¤¯¤ÏÄɲä⤷¤¯¤Ï¥³¥á¥ó¥È¤ÎÁÞÆþ
194 else if($post["write"])
196 $post["msg"] = preg_replace("/^#freeze\n/","",$post["msg"]);
197 $postdata_input = $post["msg"];
203 $postdata = $post["msg"];
205 $postdata .= @join("",get_source($post["page"]));
209 $postdata = @join("",get_source($post["page"]));
211 $postdata .= $post["msg"];
216 $postdata = $post["msg"];
219 $oldpagesrc = get_source($post["page"]);
220 if(md5(join("",$oldpagesrc)) != $post["digest"])
222 $title = str_replace('$1',strip_bracket($post["page"]),$_title_collided);
223 $page = str_replace('$1',make_search($post["page"]),$_title_collided);
224 $post["digest"] = md5(join("",($oldpagesrc)));
225 list($postdata_input,$auto) = do_update_diff(join("",$oldpagesrc),$postdata_input);
228 $body = $_msg_collided_auto."\n";
231 $body = $_msg_collided."\n";
233 $body .= "<form action=\"$script\" method=\"post\">\n"
234 ."<input type=\"hidden\" name=\"page\" value=\"".$post["page"]."\">\n"
235 ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"
236 ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\" id=\"textarea\">$postdata_input</textarea><br>\n"
237 ."<input type=\"submit\" name=\"preview\" value=\"$_btn_repreview\" accesskey=\"p\">\n"
238 ."<input type=\"submit\" name=\"write\" value=\"$_btn_update\" accesskey=\"s\">\n"
240 ."<input type=\"checkbox\" name=\"notimestamp\" value=\"true\" $checked_time><small>$_btn_notchangetimestamp</small>\n"
245 $postdata = user_rules_str($postdata);
247 // º¹Ê¬¥Õ¥¡¥¤¥ë¤ÎºîÀ®
248 if(is_page($post["page"]))
249 $oldpostdata = join("",get_source($post["page"]));
253 $diffdata = do_diff($oldpostdata,$postdata);
254 file_write(DIFF_DIR,$post["page"],$diffdata);
256 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎºîÀ®
257 if(is_page($post["page"]))
258 $oldposttime = filemtime(get_filename(encode($post["page"])));
260 $oldposttime = time();
262 // ÊÔ½¸ÆâÍƤ¬²¿¤â½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤È¥Ð¥Ã¥¯¥¢¥Ã¥×¤âºï½ü¤¹¤ë?¤·¤Ê¤¤¤Ç¤¹¤è¤Í¡£
263 if(!$postdata && $del_backup)
264 backup_delete(BACKUP_DIR.encode($post["page"]).".txt");
265 else if($do_backup && is_page($post["page"]))
266 make_backup(encode($post["page"]).".txt",$oldpostdata,$oldposttime);
268 // ¥Õ¥¡¥¤¥ë¤Î½ñ¤¹þ¤ß
269 file_write(DATA_DIR,$post["page"],$postdata);
271 // is_page¤Î¥¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢¤¹¤ë¡£
272 is_page($post["page"],true);
276 $title = str_replace('$1',strip_bracket($post["page"]),$_title_updated);
277 $page = str_replace('$1',make_search($post["page"]),$_title_updated);
278 $body = convert_html($postdata);
279 header("Location: $script?".rawurlencode($post["page"]));
283 $title = str_replace('$1',strip_bracket($post["page"]),$_title_deleted);
284 $page = str_replace('$1',make_search($post["page"]),$_title_deleted);
285 $body = str_replace('$1',strip_bracket($post["page"]),$_title_deleted);
290 else if(arg_check("freeze") && $vars["page"] && $function_freeze)
292 if(is_freeze($vars["page"]))
294 $title = str_replace('$1',strip_bracket($vars["page"]),$_title_isfreezed);
295 $page = str_replace('$1',make_search($vars["page"]),$_title_isfreezed);
296 $body = str_replace('$1',strip_bracket($vars["page"]),$_title_isfreezed);
298 else if(md5($post["pass"]) == $adminpass)
300 $postdata = get_source($post["page"]);
301 $postdata = join("",$postdata);
302 $postdata = "#freeze\n".$postdata;
304 file_write(DATA_DIR,$vars["page"],$postdata);
306 $title = str_replace('$1',strip_bracket($vars["page"]),$_title_freezed);
307 $page = str_replace('$1',make_search($vars["page"]),$_title_freezed);
308 $postdata = join("",get_source($vars["page"]));
309 $postdata = convert_html($postdata);
315 $title = str_replace('$1',strip_bracket($vars["page"]),$_title_freeze);
316 $page = str_replace('$1',make_search($vars["page"]),$_title_freeze);
321 $body .= "<b>$_msg_invalidpass</b><br>\n";
323 $body.= "$_msg_freezing<br>\n";
325 $body.= "<form action=\"$script?cmd=freeze\" method=\"post\">\n";
326 $body.= "<input type=\"hidden\" name=\"page\" value=\"$vars[page]\">\n";
327 $body.= "<input type=\"password\" name=\"pass\" size=\"12\">\n";
328 $body.= "<input type=\"submit\" name=\"ok\" value=\"$_btn_freeze\">\n";
333 else if(arg_check("unfreeze") && $vars["page"] && $function_freeze)
335 if(!is_freeze($vars["page"]))
337 $title = str_replace('$1',strip_bracket($vars["page"]),$_title_isunfreezed);
338 $page = str_replace('$1',make_search($vars["page"]),$_title_isunfreezed);
339 $body = str_replace('$1',strip_bracket($vars["page"]),$_title_isunfreezed);
341 else if(md5($post["pass"]) == $adminpass)
343 $postdata = get_source($post["page"]);
344 array_shift($postdata);
345 $postdata = join("",$postdata);
347 file_write(DATA_DIR,$vars["page"],$postdata);
349 $title = str_replace('$1',strip_bracket($vars["page"]),$_title_unfreezed);
350 $page = str_replace('$1',make_search($vars["page"]),$_title_unfreezed);
352 $postdata = join("",get_source($vars["page"]));
353 $postdata = convert_html($postdata);
359 $title = str_replace('$1',strip_bracket($vars["page"]),$_title_unfreeze);
360 $page = str_replace('$1',make_search($vars["page"]),$_title_unfreeze);
365 $body .= "<b>$_msg_invalidpass</b><br>\n";
367 $body.= "$_msg_unfreezing<br>\n";
369 $body.= "<form action=\"$script?cmd=unfreeze\" method=\"post\">\n";
370 $body.= "<input type=\"hidden\" name=\"page\" value=\"$vars[page]\">\n";
371 $body.= "<input type=\"password\" name=\"pass\" size=\"12\">\n";
372 $body.= "<input type=\"submit\" name=\"ok\" value=\"$_btn_unfreeze\">\n";
377 else if(arg_check("diff"))
379 $pagename = strip_bracket($get["page"]);
380 if(!is_page($get["page"]))
383 $page = make_search($vars["page"]);
384 $body = "»ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£";
388 $link = str_replace('$1',"<a href=\"$script?".rawurlencode($get["page"])."\">$pagename</a>",$_msg_goto);
391 ."<li>$_msg_addline</li>\n"
392 ."<li>$_msg_delline</li>\n"
398 if(!file_exists(DIFF_DIR.encode($get["page"]).".txt") && is_page($get["page"]))
400 $title = str_replace('$1',strip_bracket($get["page"]),$_title_diff);
401 $page = str_replace('$1',make_search($get["page"]),$_title_diff);
403 $diffdata = htmlspecialchars(join("",get_source($get["page"])));
404 $body .= "<font color=\"blue\">\n"
411 else if(file_exists(DIFF_DIR.encode($get["page"]).".txt"))
413 $title = str_replace('$1',strip_bracket($get["page"]),$_title_diff);
414 $page = str_replace('$1',make_search($get["page"]),$_title_diff);
416 $diffdata = file(DIFF_DIR.encode($get["page"]).".txt");
417 $diffdata = preg_replace("/&/","&",$diffdata);
418 $diffdata = preg_replace("/</","<",$diffdata);
419 $diffdata = preg_replace("/>/",">",$diffdata);
420 $diffdata = preg_replace("/^(\-)(.*)/","<font color=\"red\"> $2</font>",$diffdata);
421 $diffdata = preg_replace("/^(\+)(.*)/","<font color=\"blue\"> $2</font>",$diffdata);
430 else if(arg_check("search"))
434 $title = $page = str_replace('$1',htmlspecialchars($vars["word"]),$_title_result);
438 $page = $title = $_title_search;
442 $body = do_search($vars["word"],$vars["type"]);
444 $body = "<br>\n$_msg_searching";
446 if($vars["type"]=="AND" || !$vars["type"]) $and_check = "checked";
447 else if($vars["type"]=="OR") $or_check = "checked";
449 $body .= "<form action=\"$script?cmd=search\" method=\"post\">\n"
450 ."<input type=\"text\" name=\"word\" size=\"20\" value=\"".htmlspecialchars($vars["word"])."\">\n"
451 ."<input type=\"radio\" name=\"type\" value=\"AND\" $and_check>$_btn_and\n"
452 ."<input type=\"radio\" name=\"type\" value=\"OR\" $or_check>$_btn_or\n"
453 ." <input type=\"submit\" value=\"$_btn_search\">\n"
457 else if($do_backup && arg_check("backup"))
459 if($get["page"] && $get["age"] && (file_exists(BACKUP_DIR.encode($get["page"]).".txt") || file_exists(BACKUP_DIR.encode($get["page"]).".gz")))
461 $pagename = strip_bracket($get["page"]);
464 $body .= "<li><a href=\"$script?cmd=backup\">$_msg_backuplist</a></li>\n";
466 if(!arg_check("backup_diff") && is_page($get["page"]))
468 $link = str_replace('$1',"<a href=\"$script?cmd=backup_diff&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_diff</a>",$_msg_view);
469 $body .= "<li>$link</li>\n";
471 if(!arg_check("backup_nowdiff") && is_page($get["page"]))
473 $link = str_replace('$1',"<a href=\"$script?cmd=backup_nowdiff&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_nowdiff</a>",$_msg_view);
474 $body .= "<li>$link</li>\n";
476 if(!arg_check("backup_source"))
478 $link = str_replace('$1',"<a href=\"$script?cmd=backup_source&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_source</a>",$_msg_view);
479 $body .= "<li>$link</li>\n";
481 if(arg_check("backup_diff") || arg_check("backup_source") || arg_check("backup_nowdiff"))
483 $link = str_replace('$1',"<a href=\"$script?cmd=backup&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_backup</a>",$_msg_view);
484 $body .= "<li>$link</li>\n";
487 if(is_page($get["page"]))
489 $link = str_replace('$1',"<a href=\"$script?".rawurlencode($get["page"])."\">$pagename</a>",$_msg_goto);
490 $body .= "<li>$link</li>\n";
494 $link = str_replace('$1',$pagename,$_msg_deleleted);
495 $body .= "<li>$link</li>\n";
499 $backups = get_backup_info(encode($get["page"]).".txt");
500 if(count($backups)) $body .= "<ul>\n";
501 foreach($backups as $key => $val)
503 $ins_date = date($date_format,$val);
504 $ins_time = date($time_format,$val);
505 $ins_week = "(".$weeklabels[date("w",$val)].")";
506 $backupdate = "($ins_date $ins_week $ins_time)";
507 if($key != $get["age"])
508 $body .= "<li><a href=\"$script?cmd=$get[cmd]&page=".rawurlencode($get["page"])."&age=$key\">$key $backupdate</a></li>\n";
510 $body .= "<li><i>$key $backupdate</i></li>\n";
512 if(count($backups)) $body .= "</ul>\n";
514 if(arg_check("backup_diff"))
516 $title = str_replace('$1',$pagename,$_title_backupdiff)."(No.$get[age])";
517 $page = str_replace('$1',make_search($get["page"]),$_title_backupdiff)."(No.$get[age])";
519 $backupdata = htmlspecialchars(@join("",get_backup($get[age]-1,encode($get["page"]).".txt")));
520 $postdata = @join("",get_backup($get[age],encode($get["page"]).".txt"));
521 $diffdata = split("\n",do_diff($backupdata,$postdata));
523 else if(arg_check("backup_nowdiff"))
525 $title = str_replace('$1',$pagename,$_title_backupnowdiff)."(No.$get[age])";
526 $page = str_replace('$1',make_search($get["page"]),$_title_backupnowdiff)."(No.$get[age])";
528 $backupdata = htmlspecialchars(@join("",get_backup($get[age],encode($get["page"]).".txt")));
529 $postdata = @join("",get_source($get["page"]));
530 $diffdata = split("\n",do_diff($backupdata,$postdata));
532 else if(arg_check("backup_source"))
534 $title = str_replace('$1',$pagename,$_title_backupsource)."(No.$get[age])";
535 $page = str_replace('$1',make_search($get["page"]),$_title_backupsource)."(No.$get[age])";
536 $backupdata = htmlspecialchars(join("",get_backup($get[age],encode($get["page"]).".txt")));
538 $body.="</ul>\n<pre>\n$backupdata</pre>\n";
542 $pagename = strip_bracket($get["page"]);
543 $title = str_replace('$1',$pagename,$_title_backup)."(No.$get[age])";
544 $page = str_replace('$1',make_search($get["page"]),$_title_backup)."(No.$get[age])";
545 $backupdata = join("",get_backup($get[age],encode($get["page"]).".txt"));
546 $backupdata = convert_html($backupdata);
549 $body .= $backupdata;
552 if(arg_check("backup_diff") || arg_check("backup_nowdiff"))
554 $diffdata = preg_replace("/</","<",$diffdata);
555 $diffdata = preg_replace("/>/",">",$diffdata);
556 $diffdata = preg_replace("/^(\-)(.*)/","<font color=\"red\"> $2</font>",$diffdata);
557 $diffdata = preg_replace("/^(\+)(.*)/","<font color=\"blue\"> $2</font>",$diffdata);
560 ."<li>$_msg_addline</li>\n"
561 ."<li>$_msg_delline</li>\n"
564 ."<pre>\n".join("\n",$diffdata)."</pre>\n";
567 else if($get["page"] && (file_exists(BACKUP_DIR.encode($get["page"]).".txt") || file_exists(BACKUP_DIR.encode($get["page"]).".gz")))
569 $title = str_replace('$1',strip_bracket($get["page"]),$_title_pagebackuplist);
570 $page = str_replace('$1',make_search($get["page"]),$_title_pagebackuplist);
571 $body = get_backup_list($get["page"]);
575 $page = $title = $_title_backuplist;
576 $body = get_backup_list();
580 else if(arg_check("help"))
582 $title = $page = "¥Ø¥ë¥×";
585 // MD5¥Ñ¥¹¥ï¡¼¥É¤Ø¤ÎÊÑ´¹
586 else if($vars["md5"])
588 $title = $page = "Make password of MD5";
589 $body = "$vars[md5] : ".md5($vars["md5"]);
591 else if(arg_check("rss"))
593 if(!arg_check("rss10"))
599 // ¥Ú¡¼¥¸¤Îɽ¼¨¤ÈInterWikiName¤Î²ò¼á
600 else if((arg_check("read") && $vars["page"] != "") || (!arg_check("read") && $arg != "" && $vars["page"] == ""))
602 // ¥¢¥¯¥·¥ç¥ó¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¥Ú¡¼¥¸Ì¾¤È¤·¤Æ²ò¼á
603 if($arg != "" && $vars["page"] == "" && $vars["cmd"] == "")
605 $post["page"] = $arg;
607 $vars["page"] = $arg;
610 // ¥Ú¡¼¥¸Ì¾¤¬WikiName¤Ç¤Ê¤¯¡¢BracketName¤Ç¤Ê¤±¤ì¤ÐBracketName¤È¤·¤Æ²ò¼á
611 if(!preg_match("/^(($WikiName)|($BracketName)|($InterWikiName))$/",$get["page"]))
613 $vars["page"] = "[[$vars[page]]]";
614 $get["page"] = $vars["page"];
617 // WikiName¡¢BracketName¤¬¼¨¤¹¥Ú¡¼¥¸¤òɽ¼¨
618 if(is_page($get["page"]))
620 $postdata = join("",get_source($get["page"]));
621 $postdata = convert_html($postdata);
623 $title = strip_bracket($get["page"]);
624 $page = make_search($get["page"]);
627 header_lastmod($vars["page"]);
629 else if(preg_match("/($InterWikiName)/",$get["page"],$match))
631 // InterWikiName¤ÎȽÊ̤ȥڡ¼¥¸¤Îɽ¼¨
632 $interwikis = open_interwikiname_list();
634 if(!$interwikis[$match[2]]["url"])
636 $title = $page = $_title_invalidiwn;
637 $body = str_replace('$1',strip_bracket($get[page]),str_replace('$2',"<a href=\"$script?InterWikiName\">InterWikiName</a>",$_msg_invalidiwn));
641 // ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°
642 if($interwikis[$match[2]]["opt"] == "yw")
645 if(!preg_match("/$WikiName/",$match[3]))
646 $match[3] = "[[".mb_convert_encoding($match[3],"SJIS","auto")."]]";
648 else if($interwikis[$match[2]]["opt"] == "moin")
651 if(function_exists("mb_convert_encoding"))
653 $match[3] = rawurlencode(mb_convert_encoding($match[3],"EUC-JP","auto"));
654 $match[3] = str_replace("%","_",$match[3]);
659 else if($interwikis[$match[2]]["opt"] == "" || $interwikis[$match[2]]["opt"] == "std")
661 // ÆâÉôʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¤Þ¤ÞURL¥¨¥ó¥³¡¼¥É
662 $match[3] = rawurlencode($match[3]);
664 else if($interwikis[$match[2]]["opt"] == "asis" || $interwikis[$match[2]]["opt"] == "raw")
666 // URL¥¨¥ó¥³¡¼¥É¤·¤Ê¤¤
667 $match[3] = $match[3];
669 else if($interwikis[$match[2]]["opt"] != "")
672 if($interwikis[$match[2]]["opt"] == "sjis")
673 $interwikis[$match[2]]["opt"] = "SJIS";
674 else if($interwikis[$match[2]]["opt"] == "euc")
675 $interwikis[$match[2]]["opt"] = "EUC-JP";
676 else if($interwikis[$match[2]]["opt"] == "utf8")
677 $interwikis[$match[2]]["opt"] = "UTF-8";
679 // ¤½¤Î¾¡¢»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ø¥¨¥ó¥³¡¼¥É¤·¤ÆURL¥¨¥ó¥³¡¼¥É
680 if(function_exists("mb_convert_encoding"))
681 $match[3] = rawurlencode(mb_convert_encoding($match[3],$interwikis[$match[2]]["opt"],"auto"));
686 if(strpos($interwikis[$match[2]]["url"],'$1') !== FALSE)
687 $url = str_replace('$1',$match[3],$interwikis[$match[2]]["url"]);
689 $url = $interwikis[$match[2]]["url"] . $match[3];
693 $title = $page = "Not support mb_jstring.";
694 $body = "This server's PHP does not have \"mb_jstring\" module.Cannot convert encoding.";
698 header("Location: $url");
703 // WikiName¡¢BracketName¤¬¸«¤Ä¤«¤é¤º¡¢InterWikiName¤Ç¤â¤Ê¤¤¾ì¹ç
706 //$title = strip_bracket($get["page"]);
707 //$page = make_search($get["page"]);
708 //$body = "»ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£";
710 if(preg_match("/^(($BracketName)|($WikiName))$/",$get["page"])) {
711 $title = str_replace('$1',strip_bracket($get["page"]),$_title_edit);
712 $page = str_replace('$1',make_search($get["page"]),$_title_edit);
713 $template = auto_template($get["page"]);
714 $body = edit_form($template,$get["page"]);
717 $title = str_replace('$1',strip_bracket($get["page"]),$_title_invalidwn);
718 $body = $page = str_replace('$1',make_search($get["page"]), str_replace('$2','WikiName',$_msg_invalidiwn));
724 // ²¿¤â»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥È¥Ã¥×¥Ú¡¼¥¸¤òɽ¼¨
727 $postdata = join("",get_source($defaultpage));
729 $vars["page"] = $defaultpage;
730 $title = strip_bracket($defaultpage);
731 $page = make_search($vars["page"]);
732 $body = convert_html($postdata);
734 header_lastmod($vars["page"]);
738 catbody($title,$page,$body);