-<?\r
-// pukiwiki.php - Yet another WikiWikiWeb clone.\r
-//\r
-// Copyright (C) 2001,2002 by sng.\r
-// <sng@factage.com>\r
-// http://factage.com/sng/pukiwiki/\r
-//\r
-// Special thanks\r
-// YukiWiki by Hiroshi Yuki\r
-// <hyuki@hyuki.com>\r
-// http://www.hyuki.com/yukiwiki/\r
-//\r
-// This program is free software; you can redistribute it and/or modify\r
-// it under the terms of the GNU General Public License as published by\r
-// the Free Software Foundation; either version 2 of the License, or\r
-// (at your option) any later version.\r
-//\r
-// This program is distributed in the hope that it will be useful,\r
-// but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
-// GNU General Public License for more details.\r
-//\r
-//# $Id: pukiwiki.php,v 1.1 2002/06/20 13:59:31 masui Exp $\r
-/////////////////////////////////////////////////\r
-\r
-/////////////////////////////////////////////////\r
-// ÀßÄê¥Õ¥¡¥¤¥ë¤Î¾ì½ê\r
-define("INI_FILE","./pukiwiki.ini.php");\r
-\r
-//** ½é´üÀßÄê **\r
-\r
-define("S_VERSION","1.3");\r
-define("UTIME",time());\r
-define("HTTP_USER_AGENT",$HTTP_SERVER_VARS["HTTP_USER_AGENT"]);\r
-define("PHP_SELF",$HTTP_SERVER_VARS["PHP_SELF"]);\r
-define("SERVER_NAME",$HTTP_SERVER_VARS["SERVER_NAME"]);\r
-\r
-define("MUTIME",getmicrotime());\r
-\r
-$script = basename($PHP_SELF);\r
-\r
-$WikiName = '([A-Z][a-z]+([A-Z][a-z]+)+)';\r
-$BracketName = '\[\[(\[*[^\s\]]+?\]*)\]\]';\r
-$InterWikiName = '\[\[(\[*[^\s\]]+?\]*):(\[*[^>\]]+?\]*)\]\]';\r
-\r
-//** ÆþÎÏÃͤÎÀ°·Á **\r
-\r
-$post = $HTTP_POST_VARS;\r
-$get = $HTTP_GET_VARS;\r
-\r
-if($get["page"]) $get["page"] = rawurldecode($get["page"]);\r
-if($post["word"]) $post["word"] = rawurldecode($post["word"]);\r
-if($get["word"]) $get["word"] = rawurldecode($get["word"]);\r
-if(get_magic_quotes_gpc())\r
-{\r
- if($get["page"]) $get["page"] = stripslashes($get["page"]);\r
- if($post["page"]) $post["page"] = stripslashes($post["page"]);\r
- if($get["word"]) $get["word"] = stripslashes($get["word"]);\r
- if($post["word"]) $post["word"] = stripslashes($post["word"]);\r
- if($post["msg"]) $post["msg"] = stripslashes($post["msg"]);\r
-}\r
-if($post["msg"])\r
-{\r
- $post["msg"] = preg_replace("/<\/(textarea[^>]*)>/i", "</$1>", $post["msg"]);\r
- $post["msg"] = preg_replace("/(\x0D\x0A)/","\n",$post["msg"]);\r
- $post["msg"] = preg_replace("/(\x0D)/","\n",$post["msg"]);\r
- $post["msg"] = preg_replace("/(\x0A)/","\n",$post["msg"]);\r
-}\r
-\r
-$vars = array_merge($post,$get);\r
-$arg = rawurldecode($HTTP_SERVER_VARS["argv"][0]);\r
-\r
-//** ½é´ü½èÍý **\r
-\r
-$update_exec = "";\r
-\r
-// ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÆɹþ\r
-@require(INI_FILE);\r
-@require(LANG.".lng");\r
-\r
-// ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÊÑ¿ô¥Á¥§¥Ã¥¯\r
-$wrong_ini_file = "";\r
-if(!isset($rss_max)) $wrong_ini_file .= '$rss_max ';\r
-if(!isset($page_title)) $wrong_ini_file .= '$page_title ';\r
-if(!isset($note_hr)) $wrong_ini_file .= '$note_hr ';\r
-if(!isset($related_link)) $wrong_ini_file .= '$related_link ';\r
-if(!isset($show_passage)) $wrong_ini_file .= '$show_passage ';\r
-if(!isset($rule_related_str)) $wrong_ini_file .= '$rule_related_str ';\r
-if(!isset($load_template_func)) $wrong_ini_file .= '$load_template_func ';\r
-if(!defined("LANG")) $wrong_ini_file .= 'LANG ';\r
-if(!defined("PLUGIN_DIR")) $wrong_ini_file .= 'PLUGIN_DIR ';\r
-\r
-if(!is_writable(DATA_DIR))\r
- die_message("DATA_DIR is not found or not writable.");\r
-if(!is_writable(DIFF_DIR))\r
- die_message("DIFF_DIR is not found or not writable.");\r
-if($do_backup && !is_writable(BACKUP_DIR))\r
- die_message("BACKUP_DIR is not found or not writable.");\r
-if(!file_exists(INI_FILE))\r
- die_message("INI_FILE is not found.");\r
-if($wrong_ini_file)\r
- die_message("The setting file runs short of information.<br>The version of a setting file may be old.<br><br>These option are not found : $wrong_ini_file");\r
-//if(ini_get("register_globals") !== "0")\r
-// die_message("Wrong PHP4 setting in 'register_globals',set value 'Off' to httpd.conf or .htaccess.");\r
-if(!file_exists(SKIN_FILE))\r
- die_message("SKIN_FILE is not found.");\r
-if(!file_exists(LANG.".lng"))\r
- die_message(LANG.".lng(language file) is not found.");\r
-\r
-if(!file_exists(get_filename(encode($defaultpage))))\r
- touch(get_filename(encode($defaultpage)));\r
-if(!file_exists(get_filename(encode($whatsnew))))\r
- touch(get_filename(encode($whatsnew)));\r
-if(!file_exists(get_filename(encode($interwiki))))\r
- touch(get_filename(encode($interwiki)));\r
-\r
-$ins_date = date($date_format,UTIME);\r
-$ins_time = date($time_format,UTIME);\r
-$ins_week = "(".$weeklabels[date("w",UTIME)].")";\r
-\r
-$now = "$ins_date $ins_week $ins_time";\r
-\r
-// ** ¥á¥¤¥ó½èÍý **\r
-\r
-// Plug-in hook\r
-if(isset($vars["plugin"]))\r
-{\r
- if(!file_exists(PLUGIN_DIR.$vars["plugin"].".inc.php"))\r
- {\r
- $vars["plugin"] = "";\r
- }\r
- else\r
- {\r
- require_once(PLUGIN_DIR.$vars["plugin"].".inc.php");\r
- if(!function_exists("plugin_".$vars["plugin"]."_action"))\r
- {\r
- $vars["plugin"] = "";\r
- }\r
- }\r
-}\r
-\r
-\r
-// Plug-in action\r
-if(!empty($vars["plugin"]))\r
-{\r
- $retvars = @call_user_func("plugin_".$vars["plugin"]."_action");\r
- \r
- $title = strip_bracket($vars["refer"]);\r
- $page = make_search($vars["refer"]);\r
- \r
- if($retvars["msg"])\r
- {\r
- $title = str_replace("$1",$title,$retvars["msg"]);\r
- $page = str_replace("$1",$page,$retvars["msg"]);\r
- }\r
- \r
- if(!empty($retvars["body"]))\r
- {\r
- $body = $retvars["body"];\r
- }\r
- else\r
- {\r
- $cmd = "read";\r
- $vars["page"] = $vars["refer"];\r
- $body = @join("",@file(get_filename(encode($vars["refer"]))));\r
- $body = convert_html($body);\r
- }\r
-}\r
-// °ìÍ÷¤Îɽ¼¨\r
-else if(arg_check("list"))\r
-{\r
- header_lastmod($whatsnew);\r
- \r
- $page = $title = $_title_list;\r
- $body = "<ul>\n" . get_list(false) . "</ul>\n";\r
-}\r
-// ¥Õ¥¡¥¤¥ë̾°ìÍ÷¤Îɽ¼¨\r
-else if(arg_check("filelist"))\r
-{\r
- header_lastmod($whatsnew);\r
-\r
- $page = $title = $_title_filelist;\r
- $body = "<ul>\n" . get_list(true) . "</ul>\n";\r
-}\r
-// ÊÔ½¸ÉÔ²Äǽ¤Ê¥Ú¡¼¥¸¤òÊÔ½¸¤·¤è¤¦¤È¤·¤¿¤È¤\r
-else if(((arg_check("add") || arg_check("edit") || arg_check("preview")) && (is_freeze($vars["page"]) || !is_editable($vars["page"]) || $vars["page"] == "")))\r
-{\r
- $body = $title = str_replace('$1',strip_bracket($vars["page"]),$_title_cannotedit);\r
- $page = str_replace('$1',make_search($vars["page"]),$_title_cannotedit);\r
-\r
- if(is_freeze($vars["page"]))\r
- $body .= "(<a href=\"$script?cmd=unfreeze&page=".rawurlencode($vars["page"])."\">$_msg_unfreeze</a>)";\r
-}\r
-// ÄɲÃ\r
-else if(arg_check("add"))\r
-{\r
- $title = str_replace('$1',strip_bracket($get["page"]),$_title_add);\r
- $page = str_replace('$1',make_search($get["page"]),$_title_add);\r
- $body = "<ul>\n";\r
- $body .= "<li>$_msg_add</li>\n";\r
- $body .= "</ul>\n";\r
- $body .= edit_form("",$get["page"],true);\r
-}\r
-// ÊÔ½¸\r
-else if(arg_check("edit"))\r
-{\r
- $postdata = @join("",@file(get_filename(encode($get["page"]))));\r
-\r
- $title = str_replace('$1',strip_bracket($get["page"]),$_title_edit);\r
- $page = str_replace('$1',make_search($get["page"]),$_title_edit);\r
- $body = edit_form($postdata,$get["page"]);\r
-}\r
-// ¥×¥ì¥Ó¥å¡¼\r
-else if(arg_check("preview") || $post["preview"] || $post["template"])\r
-{\r
- if($post["template"] && file_exists(get_filename(encode($post["template_page"]))))\r
- {\r
- $post["msg"] = @join("",@file(get_filename(encode($post["template_page"]))));\r
- }\r
- \r
- $post["msg"] = preg_replace("/^#freeze\n/","",$post["msg"]);\r
- $postdata_input = $post["msg"];\r
-\r
- if($post["add"])\r
- {\r
- if($post["add_top"])\r
- {\r
- $postdata = $post["msg"];\r
- $postdata .= "\n\n";\r
- $postdata .= @join("",@file(get_filename(encode($post["page"]))));\r
- }\r
- else\r
- {\r
- $postdata = @join("",@file(get_filename(encode($post["page"]))));\r
- $postdata .= "\n\n";\r
- $postdata .= $post["msg"];\r
- }\r
- }\r
- else\r
- {\r
- $postdata = $post["msg"];\r
- }\r
-\r
- $title = str_replace('$1',strip_bracket($post["page"]),$_title_preview);\r
- $page = str_replace('$1',make_search($post["page"]),$_title_preview);\r
-\r
- $body = "$_msg_preview<br>\n";\r
- if($postdata == "") $body .= "<b>$_msg_preview_delete</b><br>\n";\r
- else $body .= "<br>\n";\r
-\r
- if($postdata != "")\r
- {\r
- $postdata = convert_html($postdata);\r
- \r
- $body .= "<table width=\"100%\" bgcolor=\"$preview_color\">\n"\r
- ."<tr><td>\n"\r
- .$postdata\r
- ."\n</td></tr>\n"\r
- ."</table>\n";\r
- }\r
-\r
- if($post["add"])\r
- {\r
- if($post["add_top"]) $checked_top = " checked";\r
- $addtag = '<input type="hidden" name="add" value="true">';\r
- $add_top = '<input type="checkbox" name="add_top" value="true"'.$checked_top.'><small>¥Ú¡¼¥¸¤Î¾å¤ËÄɲÃ</small>';\r
- }\r
- if($post["notimestamp"]) $checked_time = "checked";\r
-\r
- $body .= "<form action=\"$script\" method=\"post\">\n"\r
- ."<input type=\"hidden\" name=\"help\" value=\"$post[add]\">\n"\r
- ."<input type=\"hidden\" name=\"page\" value=\"".$post["page"]."\">\n"\r
- ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"\r
- ."$addtag\n"\r
- ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\">\n$postdata_input</textarea><br>\n"\r
- ."<input type=\"submit\" name=\"preview\" value=\"$_btn_repreview\" accesskey=\"p\">\n"\r
- ."<input type=\"submit\" name=\"write\" value=\"$_btn_update\" accesskey=\"s\">\n"\r
- ."$add_top\n"\r
- ."<input type=\"checkbox\" name=\"notimestamp\" value=\"true\" $checked_time><small>$_btn_notchangetimestamp</small>\n"\r
- ."</form>\n";\r
-}\r
-// ½ñ¤¹þ¤ß¤â¤·¤¯¤ÏÄɲä⤷¤¯¤Ï¥³¥á¥ó¥È¤ÎÁÞÆþ\r
-else if($post["write"])\r
-{\r
- $post["msg"] = preg_replace("/^#freeze\n/","",$post["msg"]);\r
- $postdata_input = $post["msg"];\r
-\r
- if($post["add"])\r
- {\r
- if($post["add_top"])\r
- {\r
- $postdata = $post["msg"];\r
- $postdata .= "\n\n";\r
- $postdata .= @join("",@file(get_filename(encode($post["page"]))));\r
- }\r
- else\r
- {\r
- $postdata = @join("",@file(get_filename(encode($post["page"]))));\r
- $postdata .= "\n\n";\r
- $postdata .= $post["msg"];\r
- }\r
- }\r
- else\r
- {\r
- $postdata = $post["msg"];\r
- }\r
-\r
- if(md5(@join("",@file(get_filename(encode($post["page"]))))) != $post["digest"])\r
- {\r
- $title = str_replace('$1',strip_bracket($post["page"]),$_title_collided);\r
- $page = str_replace('$1',make_search($post["page"]),$_title_collided);\r
- \r
- $body .= "$_msg_collided\n";\r
-\r
- $body .= "<form action=\"$script?cmd=preview\" method=\"post\">\n"\r
- ."<input type=\"hidden\" name=\"page\" value=\"".$post["page"]."\">\n"\r
- ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"\r
- ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\" id=\"textarea\">$postdata_input</textarea><br>\n"\r
- ."</form>\n";\r
- }\r
- else\r
- {\r
- $postdata = user_rules_str($postdata);\r
-\r
- // º¹Ê¬¥Õ¥¡¥¤¥ë¤ÎºîÀ®\r
- if(is_page($post["page"]))\r
- $oldpostdata = join("",file(get_filename(encode($post["page"]))));\r
- else\r
- $oldpostdata = "\n";\r
- if($postdata)\r
- $diffdata = do_diff($oldpostdata,$postdata);\r
- file_write(DIFF_DIR,$post["page"],$diffdata);\r
-\r
- // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎºîÀ®\r
- if(is_page($post["page"]))\r
- $oldposttime = filemtime(get_filename(encode($post["page"])));\r
- else\r
- $oldposttime = time();\r
-\r
- // ÊÔ½¸ÆâÍƤ¬²¿¤â½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤È¥Ð¥Ã¥¯¥¢¥Ã¥×¤âºï½ü¤¹¤ë?¤·¤Ê¤¤¤Ç¤¹¤è¤Í¡£\r
- if(!$postdata && $del_backup)\r
- backup_delete(BACKUP_DIR.encode($post["page"]).".txt");\r
- else if($do_backup && is_page($post["page"]))\r
- make_backup(encode($post["page"]).".txt",$oldpostdata,$oldposttime);\r
-\r
- // ¥Õ¥¡¥¤¥ë¤Î½ñ¤¹þ¤ß\r
- file_write(DATA_DIR,$post["page"],$postdata);\r
-\r
- // is_page¤Î¥¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢¤¹¤ë¡£\r
- is_page($post["page"],true);\r
-\r
- if($postdata)\r
- {\r
- $title = str_replace('$1',strip_bracket($post["page"]),$_title_updated);\r
- $page = str_replace('$1',make_search($post["page"]),$_title_updated);\r
- $body = convert_html($postdata);\r
- }\r
- else\r
- {\r
- $title = str_replace('$1',strip_bracket($post["page"]),$_title_deleted);\r
- $page = str_replace('$1',make_search($post["page"]),$_title_deleted);\r
- $body = str_replace('$1',strip_bracket($post["page"]),$_title_deleted);\r
- }\r
- }\r
-}\r
-// Åà·ë\r
-else if(arg_check("freeze") && $vars["page"] && $function_freeze)\r
-{\r
- if(is_freeze($vars["page"]))\r
- {\r
- $title = str_replace('$1',strip_bracket($vars["page"]),$_title_isfreezed);\r
- $page = str_replace('$1',make_search($vars["page"]),$_title_isfreezed);\r
- $body = str_replace('$1',strip_bracket($vars["page"]),$_title_isfreezed);\r
- }\r
- else if(md5($post["pass"]) == $adminpass)\r
- {\r
- $postdata = file(get_filename(encode($post["page"])));\r
- $postdata = join("",$postdata);\r
- $postdata = "#freeze\n".$postdata;\r
-\r
- file_write(DATA_DIR,$vars["page"],$postdata);\r
-\r
- $title = str_replace('$1',strip_bracket($vars["page"]),$_title_freezed);\r
- $page = str_replace('$1',make_search($vars["page"]),$_title_freezed);\r
- $postdata = join("",file(get_filename(encode($vars["page"]))));\r
- $postdata = convert_html($postdata);\r
-\r
- $body = $postdata;\r
- }\r
- else\r
- {\r
- $title = str_replace('$1',strip_bracket($vars["page"]),$_title_freeze);\r
- $page = str_replace('$1',make_search($vars["page"]),$_title_freeze);\r
-\r
- $body.= "<br>\n";\r
- \r
- if($post["pass"])\r
- $body .= "<b>$_msg_invalidpass</b><br>\n";\r
- else\r
- $body.= "$_msg_freezing<br>\n";\r
- \r
- $body.= "<form action=\"$script?cmd=freeze\" method=\"post\">\n";\r
- $body.= "<input type=\"hidden\" name=\"page\" value=\"$vars[page]\">\n";\r
- $body.= "<input type=\"password\" name=\"pass\" size=\"12\">\n";\r
- $body.= "<input type=\"submit\" name=\"ok\" value=\"$_btn_freeze\">\n";\r
- $body.= "</form>\n";\r
- }\r
-}\r
-//Åà·ë¤Î²ò½ü\r
-else if(arg_check("unfreeze") && $vars["page"] && $function_freeze)\r
-{\r
- if(!is_freeze($vars["page"]))\r
- {\r
- $title = str_replace('$1',strip_bracket($vars["page"]),$_title_isunfreezed);\r
- $page = str_replace('$1',make_search($vars["page"]),$_title_isunfreezed);\r
- $body = str_replace('$1',strip_bracket($vars["page"]),$_title_isunfreezed);\r
- }\r
- else if(md5($post["pass"]) == $adminpass)\r
- {\r
- $postdata = file(get_filename(encode($post["page"])));\r
- array_shift($postdata);\r
- $postdata = join("",$postdata);\r
-\r
- file_write(DATA_DIR,$vars["page"],$postdata);\r
-\r
- $title = str_replace('$1',strip_bracket($vars["page"]),$_title_unfreezed);\r
- $page = str_replace('$1',make_search($vars["page"]),$_title_unfreezed);\r
- \r
- $postdata = join("",file(get_filename(encode($vars["page"]))));\r
- $postdata = convert_html($postdata);\r
- \r
- $body = $postdata;\r
- }\r
- else\r
- {\r
- $title = str_replace('$1',strip_bracket($vars["page"]),$_title_unfreeze);\r
- $page = str_replace('$1',make_search($vars["page"]),$_title_unfreeze);\r
-\r
- $body.= "<br>\n";\r
-\r
- if($post["pass"])\r
- $body .= "<b>$_msg_invalidpass</b><br>\n";\r
- else\r
- $body.= "$_msg_unfreezing<br>\n";\r
-\r
- $body.= "<form action=\"$script?cmd=unfreeze\" method=\"post\">\n";\r
- $body.= "<input type=\"hidden\" name=\"page\" value=\"$vars[page]\">\n";\r
- $body.= "<input type=\"password\" name=\"pass\" size=\"12\">\n";\r
- $body.= "<input type=\"submit\" name=\"ok\" value=\"$_btn_unfreeze\">\n";\r
- $body.= "</form>\n";\r
- }\r
-}\r
-// º¹Ê¬¤Îɽ¼¨\r
-else if(arg_check("diff"))\r
-{\r
- $pagename = strip_bracket($get["page"]);\r
- if(!is_page($get["page"]))\r
- {\r
- $title = $pagename;\r
- $page = make_search($vars["page"]);\r
- $body = "»ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£";\r
- }\r
- else\r
- {\r
- $link = str_replace('$1',"<a href=\"$script?".rawurlencode($get["page"])."\">$pagename</a>",$_msg_goto);\r
- \r
- $body = "<ul>\n"\r
- ."<li>$_msg_addline</li>\n"\r
- ."<li>$_msg_delline</li>\n"\r
- ."<li>$link</li>\n"\r
- ."</ul>\n"\r
- ."$hr\n";\r
- }\r
-\r
- if(!file_exists(DIFF_DIR.encode($get["page"]).".txt") && is_page($get["page"]))\r
- {\r
- $title = str_replace('$1',strip_bracket($get["page"]),$_title_diff);\r
- $page = str_replace('$1',make_search($get["page"]),$_title_diff);\r
-\r
- $diffdata = file(get_filename(encode($get["page"])));\r
- $body .= "<font color=\"blue\">\n"\r
- ."<pre>\n"\r
- .join("",$diffdata)\r
- ."\n"\r
- ."</pre>\n"\r
- ."</font>\n";\r
- }\r
- else if(file_exists(DIFF_DIR.encode($get["page"]).".txt"))\r
- {\r
- $title = str_replace('$1',strip_bracket($get["page"]),$_title_diff);\r
- $page = str_replace('$1',make_search($get["page"]),$_title_diff);\r
-\r
- $diffdata = file(DIFF_DIR.encode($get["page"]).".txt");\r
- $diffdata = preg_replace("/</","<",$diffdata);\r
- $diffdata = preg_replace("/>/",">",$diffdata);\r
- $diffdata = preg_replace("/^(\-)(.*)/","<font color=\"red\"> $2</font>",$diffdata);\r
- $diffdata = preg_replace("/^(\+)(.*)/","<font color=\"blue\"> $2</font>",$diffdata);\r
- \r
- $body .= "<pre>\n"\r
- .join("",$diffdata)\r
- ."\n"\r
- ."</pre>\n";\r
- }\r
-}\r
-// ¸¡º÷\r
-else if(arg_check("search"))\r
-{\r
- if($vars["word"])\r
- {\r
- $title = $page = str_replace('$1',$vars["word"],$_title_result);\r
- }\r
- else\r
- {\r
- $page = $title = $_title_search;\r
- }\r
-\r
- if($vars["word"])\r
- $body = do_search($vars["word"],$vars["type"]);\r
- else\r
- $body = "<br>\n$_msg_searching";\r
-\r
- if($vars["type"]=="AND" || !$vars["type"]) $and_check = "checked";\r
- else if($vars["type"]=="OR") $or_check = "checked";\r
-\r
- $body .= "<form action=\"$script?cmd=search\" method=\"post\">\n"\r
- ."<input type=\"text\" name=\"word\" size=\"20\" value=\"".$vars["word"]."\">\n"\r
- ."<input type=\"radio\" name=\"type\" value=\"AND\" $and_check>$_btn_and\n"\r
- ."<input type=\"radio\" name=\"type\" value=\"OR\" $or_check>$_btn_or\n"\r
- ." <input type=\"submit\" value=\"$_btn_search\">\n"\r
- ."</form>\n";\r
-}\r
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×\r
-else if($do_backup && arg_check("backup"))\r
-{\r
- if($get["page"] && $get["age"] && (file_exists(BACKUP_DIR.encode($get["page"]).".txt") || file_exists(BACKUP_DIR.encode($get["page"]).".gz")))\r
- {\r
- $pagename = strip_bracket($get["page"]);\r
- $body = "<ul>\n";\r
-\r
- $body .= "<li><a href=\"$script?cmd=backup\">$_msg_backuplist</a></li>\n";\r
-\r
- if(!arg_check("backup_diff") && is_page($get["page"]))\r
- {\r
- $link = str_replace('$1',"<a href=\"$script?cmd=backup_diff&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_diff</a>",$_msg_view);\r
- $body .= "<li>$link</li>\n";\r
- }\r
- if(!arg_check("backup_nowdiff") && is_page($get["page"]))\r
- {\r
- $link = str_replace('$1',"<a href=\"$script?cmd=backup_nowdiff&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_nowdiff</a>",$_msg_view);\r
- $body .= "<li>$link</li>\n";\r
- }\r
- if(!arg_check("backup_source"))\r
- {\r
- $link = str_replace('$1',"<a href=\"$script?cmd=backup_source&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_source</a>",$_msg_view);\r
- $body .= "<li>$link</li>\n";\r
- }\r
- if(arg_check("backup_diff") || arg_check("backup_source") || arg_check("backup_nowdiff"))\r
- {\r
- $link = str_replace('$1',"<a href=\"$script?cmd=backup&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_backup</a>",$_msg_view);\r
- $body .= "<li>$link</li>\n";\r
- }\r
- \r
- if(is_page($get["page"]))\r
- {\r
- $link = str_replace('$1',"<a href=\"$script?".rawurlencode($get["page"])."\">$pagename</a>",$_msg_goto);\r
- $body .= "<li>$link</li>\n";\r
- }\r
- else\r
- {\r
- $link = str_replace('$1',$pagename,$_msg_deleleted);\r
- $body .= "<li>$link</li>\n";\r
- }\r
-\r
- $backups = array();\r
- $backups = get_backup_info(encode($get["page"]).".txt");\r
- if(count($backups)) $body .= "<ul>\n";\r
- foreach($backups as $key => $val)\r
- {\r
- $ins_date = date($date_format,$val);\r
- $ins_time = date($time_format,$val);\r
- $ins_week = "(".$weeklabels[date("w",$val)].")";\r
- $backupdate = "($ins_date $ins_week $ins_time)";\r
- if($key != $get["age"])\r
- $body .= "<li><a href=\"$script?cmd=$get[cmd]&page=".rawurlencode($get["page"])."&age=$key\">$key $backupdate</a></li>\n";\r
- else\r
- $body .= "<li><i>$key $backupdate</i></li>\n";\r
- }\r
- if(count($backups)) $body .= "</ul>\n";\r
- \r
- if(arg_check("backup_diff"))\r
- {\r
- $title = str_replace('$1',$pagename,$_title_backupdiff)."(No.$get[age])";\r
- $page = str_replace('$1',make_search($get["page"]),$_title_backupdiff)."(No.$get[age])";\r
- \r
- $backupdata = @join("",get_backup($get[age]-1,encode($get["page"]).".txt"));\r
- $postdata = @join("",get_backup($get[age],encode($get["page"]).".txt"));\r
- $diffdata = split("\n",do_diff($backupdata,$postdata));\r
- }\r
- else if(arg_check("backup_nowdiff"))\r
- {\r
- $title = str_replace('$1',$pagename,$_title_backupnowdiff)."(No.$get[age])";\r
- $page = str_replace('$1',make_search($get["page"]),$_title_backupnowdiff)."(No.$get[age])";\r
- \r
- $backupdata = @join("",get_backup($get[age],encode($get["page"]).".txt"));\r
- $postdata = @join("",@file(get_filename(encode($get["page"]))));\r
- $diffdata = split("\n",do_diff($backupdata,$postdata));\r
- }\r
- else if(arg_check("backup_source"))\r
- {\r
- $title = str_replace('$1',$pagename,$_title_backupsource)."(No.$get[age])";\r
- $page = str_replace('$1',make_search($get["page"]),$_title_backupsource)."(No.$get[age])";\r
- $backupdata = join("",get_backup($get[age],encode($get["page"]).".txt"));\r
- \r
- $body.="</ul>\n<pre>\n$backupdata</pre>\n";\r
- }\r
- else\r
- {\r
- $pagename = strip_bracket($get["page"]);\r
- $title = str_replace('$1',$pagename,$_title_backup)."(No.$get[age])";\r
- $page = str_replace('$1',make_search($get["page"]),$_title_backup)."(No.$get[age])";\r
- $backupdata = join("",get_backup($get[age],encode($get["page"]).".txt"));\r
- $backupdata = convert_html($backupdata);\r
- $body .= "</ul>\n"\r
- ."$hr\n";\r
- $body .= $backupdata;\r
- }\r
- \r
- if(arg_check("backup_diff") || arg_check("backup_nowdiff"))\r
- {\r
- $diffdata = preg_replace("/</","<",$diffdata);\r
- $diffdata = preg_replace("/>/",">",$diffdata);\r
- $diffdata = preg_replace("/^(\-)(.*)/","<font color=\"red\"> $2</font>",$diffdata);\r
- $diffdata = preg_replace("/^(\+)(.*)/","<font color=\"blue\"> $2</font>",$diffdata);\r
-\r
- $body .= "<br>\n"\r
- ."<li>$_msg_addline</li>\n"\r
- ."<li>$_msg_delline</li>\n"\r
- ."</ul>\n"\r
- ."$hr\n"\r
- ."<pre>\n".join("\n",$diffdata)."</pre>\n";\r
- }\r
- }\r
- else if($get["page"] && (file_exists(BACKUP_DIR.encode($get["page"]).".txt") || file_exists(BACKUP_DIR.encode($get["page"]).".gz")))\r
- {\r
- $title = str_replace('$1',strip_bracket($get["page"]),$_title_pagebackuplist);\r
- $page = str_replace('$1',make_search($get["page"]),$_title_pagebackuplist);\r
- $body = get_backup_list($get["page"]);\r
- }\r
- else\r
- {\r
- $page = $title = $_title_backuplist;\r
- $body = get_backup_list();\r
- }\r
-}\r
-// ¥Ø¥ë¥×¤Îɽ¼¨\r
-else if(arg_check("help"))\r
-{\r
- $title = $page = "¥Ø¥ë¥×";\r
- $body = catrule();\r
-}\r
-// MD5¥Ñ¥¹¥ï¡¼¥É¤Ø¤ÎÊÑ´¹\r
-else if($vars["md5"])\r
-{\r
- $title = $page = "Make password of MD5";\r
- $body = "$vars[md5] : ".md5($vars["md5"]);\r
-}\r
-else if(arg_check("rss"))\r
-{\r
- if(!arg_check("rss10"))\r
- catrss(1);\r
- else\r
- catrss(2);\r
- die();\r
-}\r
-// ¥Ú¡¼¥¸¤Îɽ¼¨¤ÈInterWikiName¤Î²ò¼á\r
-else if((arg_check("read") && $vars["page"] != "") || (!arg_check("read") && $arg != "" && $vars["page"] == ""))\r
-{\r
- // ¥¢¥¯¥·¥ç¥ó¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¥Ú¡¼¥¸Ì¾¤È¤·¤Æ²ò¼á\r
- if($arg != "" && $vars["page"] == "" && $vars["cmd"] == "")\r
- {\r
- $post["page"] = $arg;\r
- $get["page"] = $arg;\r
- $vars["page"] = $arg;\r
- }\r
- \r
- // ¥Ú¡¼¥¸Ì¾¤¬WikiName¤Ç¤Ê¤¯¡¢BracketName¤Ç¤Ê¤±¤ì¤ÐBracketName¤È¤·¤Æ²ò¼á\r
- if(!preg_match("/^(($WikiName)|($BracketName)|($InterWikiName))$/",$get["page"]))\r
- {\r
- $vars["page"] = "[[$vars[page]]]";\r
- $get["page"] = $vars["page"];\r
- }\r
-\r
- // WikiName¡¢BracketName¤¬¼¨¤¹¥Ú¡¼¥¸¤òɽ¼¨\r
- if(is_page($get["page"]))\r
- {\r
- $postdata = join("",file(get_filename(encode($get["page"]))));\r
- $postdata = convert_html($postdata);\r
-\r
- $title = strip_bracket($get["page"]);\r
- $page = make_search($get["page"]);\r
- $body = $postdata;\r
-\r
- header_lastmod($vars["page"]);\r
- }\r
- else if(preg_match("/($InterWikiName)/",$get["page"],$match))\r
- {\r
- // InterWikiName¤ÎȽÊ̤ȥڡ¼¥¸¤Îɽ¼¨\r
- $interwikis = open_interwikiname_list();\r
- \r
- if(!$interwikis[$match[2]]["url"])\r
- {\r
- $title = $page = $_title_invalidiwn;\r
- $body = str_replace('$1',strip_bracket($get[page]),str_replace('$2',"<a href=\"$script?InterWikiName\">InterWikiName</a>",$_msg_invalidiwn));\r
- }\r
- else\r
- {\r
- // ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°\r
- if($interwikis[$match[2]]["opt"] == "yw")\r
- {\r
- // YukiWiki·Ï\r
- if(!preg_match("/$WikiName/",$match[3]))\r
- $match[3] = "[[".mb_convert_encoding($match[3],"SJIS","auto")."]]";\r
- }\r
- else if($interwikis[$match[2]]["opt"] == "moin")\r
- {\r
- // moin·Ï\r
- if(function_exists("mb_convert_encoding"))\r
- {\r
- $match[3] = rawurlencode(mb_convert_encoding($match[3],"EUC-JP","auto"));\r
- $match[3] = str_replace("%","_",$match[3]);\r
- }\r
- else\r
- $not_mb = 1;\r
- }\r
- else if($interwikis[$match[2]]["opt"] == "" || $interwikis[$match[2]]["opt"] == "std")\r
- {\r
- // ÆâÉôʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¤Þ¤ÞURL¥¨¥ó¥³¡¼¥É\r
- $match[3] = rawurlencode($match[3]);\r
- }\r
- else if($interwikis[$match[2]]["opt"] == "asis" || $interwikis[$match[2]]["opt"] == "raw")\r
- {\r
- // URL¥¨¥ó¥³¡¼¥É¤·¤Ê¤¤\r
- $match[3] = $match[3];\r
- }\r
- else if($interwikis[$match[2]]["opt"] != "")\r
- {\r
- // ¥¨¥¤¥ê¥¢¥¹¤ÎÊÑ´¹\r
- if($interwikis[$match[2]]["opt"] == "sjis")\r
- $interwikis[$match[2]]["opt"] = "SJIS";\r
- else if($interwikis[$match[2]]["opt"] == "euc")\r
- $interwikis[$match[2]]["opt"] = "EUC-JP";\r
- else if($interwikis[$match[2]]["opt"] == "utf8")\r
- $interwikis[$match[2]]["opt"] = "UTF-8";\r
-\r
- // ¤½¤Î¾¡¢»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ø¥¨¥ó¥³¡¼¥É¤·¤ÆURL¥¨¥ó¥³¡¼¥É\r
- if(function_exists("mb_convert_encoding"))\r
- $match[3] = rawurlencode(mb_convert_encoding($match[3],$interwikis[$match[2]]["opt"],"auto"));\r
- else\r
- $not_mb = 1;\r
- }\r
-\r
- if(strpos($interwikis[$match[2]]["url"],'$1') !== FALSE)\r
- $url = str_replace('$1',$match[3],$interwikis[$match[2]]["url"]);\r
- else\r
- $url = $interwikis[$match[2]]["url"] . $match[3];\r
-\r
- if($not_mb)\r
- {\r
- $title = $page = "Not support mb_jstring.";\r
- $body = "This server's PHP does not have \"mb_jstring\" module.Cannot convert encoding.";\r
- }\r
- else\r
- {\r
- header("Location: $url");\r
- die();\r
- }\r
- }\r
- }\r
- // WikiName¡¢BracketName¤¬¸«¤Ä¤«¤é¤º¡¢InterWikiName¤Ç¤â¤Ê¤¤¾ì¹ç\r
- else\r
- {\r
- //$title = strip_bracket($get["page"]);\r
- //$page = make_search($get["page"]);\r
- //$body = "»ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£";\r
-\r
- $title = str_replace('$1',strip_bracket($get["page"]),$_title_edit);\r
- $page = str_replace('$1',make_search($get["page"]),$_title_edit);\r
- $body = edit_form("",$get["page"]);\r
- }\r
-}\r
-// ²¿¤â»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥È¥Ã¥×¥Ú¡¼¥¸¤òɽ¼¨\r
-else\r
-{\r
- $postdata = join("",file(get_filename(encode($defaultpage))));\r
-\r
- $vars["page"] = $defaultpage;\r
- $title = strip_bracket($defaultpage);\r
- $page = make_search($vars["page"]);\r
- $body = convert_html($postdata);\r
-\r
- header_lastmod($vars["page"]);\r
-}\r
-\r
-// ** ½ÐÎϽèÍý **\r
-\r
-catbody($title,$page,$body);\r
-\r
-// ** ³Æ¼ï´Ø¿ô **\r
-\r
-// ËÜʸ¤ò¥Ú¡¼¥¸Ì¾¤«¤é½ÐÎÏ\r
-function catbodyall($page,$title="",$pg="")\r
-{\r
- if($title === "") $title = strip_bracket($page);\r
- if($pg === "") $pg = make_search($page);\r
-\r
- $body = join("",file(get_filename(encode($page))));\r
- $body = convert_html($body);\r
-\r
- header_lastmod($vars["page"]);\r
- catbody($title,$pg,$body);\r
- die();\r
-}\r
-\r
-// ËÜʸ¤ò½ÐÎÏ\r
-function catbody($title,$page,$body)\r
-{\r
- global $script,$vars,$arg,$do_backup,$modifier,$modifierlink,$defaultpage,$whatsnew,$hr;\r
- global $date_format,$weeklabels,$time_format,$longtaketime,$related_link;\r
- global $HTTP_SERVER_VARS,$cantedit;\r
-\r
- if($vars["page"] && !arg_check("backup") && $vars["page"] != $whatsnew)\r
- {\r
- $is_page = 1;\r
- }\r
-\r
- $link_add = "$script?cmd=add&page=".rawurlencode($vars["page"]);\r
- $link_edit = "$script?cmd=edit&page=".rawurlencode($vars["page"]);\r
- $link_diff = "$script?cmd=diff&page=".rawurlencode($vars["page"]);\r
- $link_top = "$script?$defaultpage";\r
- $link_list = "$script?cmd=list";\r
- $link_filelist = "$script?cmd=filelist";\r
- $link_search = "$script?cmd=search";\r
- $link_whatsnew = "$script?$whatsnew";\r
- $link_backup = "$script?cmd=backup&page=".rawurlencode($vars["page"]);\r
- $link_help = "$script?cmd=help";\r
-\r
- if(is_page($vars["page"]) && $is_page)\r
- {\r
- $fmt = @filemtime(get_filename(encode($vars["page"])));\r
- }\r
-\r
- if(is_page($vars["page"]) && $related_link && $is_page && !arg_check("edit") && !arg_check("freeze") && !arg_check("unfreeze"))\r
- {\r
- $related = make_related($vars["page"],false);\r
- }\r
-\r
- if(is_page($vars["page"]) && !in_array($vars["page"],$cantedit) && !arg_check("backup") && !arg_check("edit") && !$vars["preview"])\r
- {\r
- $is_read = TRUE;\r
- }\r
-\r
- //if(!$longtaketime)\r
- $longtaketime = getmicrotime() - MUTIME;\r
- $taketime = sprintf("%01.03f",$longtaketime);\r
-\r
- require(SKIN_FILE);\r
-}\r
-\r
-// ¥Õ¥¡¥¤¥ë¤Ø¤Î½ÐÎÏ\r
-function file_write($dir,$page,$str)\r
-{\r
- global $post,$update_exec;\r
-\r
- if($str == "")\r
- {\r
- @unlink($dir.encode($page).".txt");\r
- }\r
- else\r
- {\r
- if($post["notimestamp"] && is_page($page))\r
- {\r
- $timestamp = @filemtime($dir.encode($page).".txt");\r
- }\r
- $fp = fopen($dir.encode($page).".txt","w");\r
- while(!flock($fp,LOCK_EX));\r
- fputs($fp,$str);\r
- flock($fp,LOCK_UN);\r
- fclose($fp);\r
- if($timestamp)\r
- touch($dir.encode($page).".txt",$timestamp);\r
- }\r
- \r
- if(!$timestamp)\r
- put_lastmodified();\r
-\r
- if($update_exec)\r
- {\r
- system($update_exec." > /dev/null &");\r
- }\r
-}\r
-\r
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×°ìÍ÷¤Î¼èÆÀ\r
-function get_backup_list($_page="")\r
-{\r
- global $script,$date_format,$time_format,$weeklabels,$cantedit;\r
- global $_msg_backuplist,$_msg_diff,$_msg_nowdiff,$_msg_source;\r
-\r
- $ins_date = date($date_format,$val);\r
- $ins_time = date($time_format,$val);\r
- $ins_week = "(".$weeklabels[date("w",$val)].")";\r
- $ins = "$ins_date $ins_week $ins_time";\r
-\r
- if (($dir = @opendir(BACKUP_DIR)) && !$_page)\r
- {\r
- while($file = readdir($dir))\r
- {\r
- if(function_exists(gzopen))\r
- $file = str_replace(".txt",".gz",$file);\r
-\r
- if($file == ".." || $file == ".") continue;\r
- $page = decode(trim(preg_replace("/(\.txt)|(\.gz)$/"," ",$file)));\r
- if(in_array($page,$cantedit)) continue;\r
- $page_url = rawurlencode($page);\r
- $name = $page;\r
- $name = strip_bracket($name);\r
- if(is_page($page))\r
- $vals[$name]["link"] = "<li><a href=\"$script?$page_url\">$name</a></li>";\r
- else\r
- $vals[$name]["link"] = "<li>$name</li>";\r
- $vals[$name]["name"] = $page;\r
- }\r
- closedir($dir);\r
- $vals = list_sort($vals);\r
- $retvars[] = "<ul>";\r
- }\r
- else\r
- {\r
- $page_url = rawurlencode($_page);\r
- $name = strip_bracket($_page);\r
- $vals[$name]["link"] = "";\r
- $vals[$name]["name"] = $_page;\r
- $retvars[] = "<ul>";\r
- $retvars[] .= "<li><a href=\"$script?cmd=backup\">$_msg_backuplist</a></li>\n";\r
- }\r
- \r
- \r
- foreach($vals as $page => $line)\r
- {\r
- $arybackups = get_backup_info(encode($line["name"]).".txt");\r
- $page_url = rawurlencode($line["name"]);\r
- if(count($arybackups)) $line["link"] .= "\n<ul>\n";\r
- foreach($arybackups as $key => $val)\r
- {\r
- $ins_date = date($date_format,$val);\r
- $ins_time = date($time_format,$val);\r
- $ins_week = "(".$weeklabels[date("w",$val)].")";\r
- $backupdate = "($ins_date $ins_week $ins_time)";\r
- if(!$_page)\r
- {\r
- $line["link"] .= "<li><a href=\"$script?cmd=backup&page=$page_url&age=$key\">$key $backupdate</a></li>\n";\r
- }\r
- else\r
- {\r
- $line["link"] .= "<li><a href=\"$script?cmd=backup&page=$page_url&age=$key\">$key $backupdate</a> [ <a href=\"$script?cmd=backup_diff&page=$page_url&age=$key\">$_msg_diff</a> | <a href=\"$script?cmd=backup_nowdiff&page=$page_url&age=$key\">$_msg_nowdiff</a> | <a href=\"$script?cmd=backup_source&page=$page_url&age=$key\">$_msg_source</a> ]</li>\n";\r
- }\r
- }\r
- if(count($arybackups)) $line["link"] .= "</ul>";\r
- $retvars[] = $line["link"];\r
- }\r
- $retvars[] = "</ul>";\r
- \r
- return join("\n",$retvars);\r
-}\r
-\r
-// ºÇ½ª¹¹¿·¥Ú¡¼¥¸¤Î¹¹¿·\r
-function put_lastmodified()\r
-{\r
- global $script,$maxshow,$whatsnew,$date_format,$time_format,$weeklabels,$post,$non_list;\r
-\r
- if($post["notimestamp"]) return;\r
-\r
- if ($dir = @opendir(DATA_DIR))\r
- {\r
- while($file = readdir($dir))\r
- {\r
- $page = decode(trim(preg_replace("/\.txt$/"," ",$file)));\r
-\r
- if($page == $whatsnew || $file == "." || $file == "..") continue;\r
- if(preg_match("/$non_list/",$page)) continue;\r
-\r
- if(file_exists(get_filename(encode($page))))\r
- {\r
- $page_url = rawurlencode($page);\r
- $lastmodtime = filemtime(get_filename(encode($page)));\r
- $lastmod = date($date_format,$lastmodtime)\r
- . " (" . $weeklabels[date("w",$lastmodtime)] . ") "\r
- . date($time_format,$lastmodtime);\r
- $putval[$lastmodtime][] = "-$lastmod - $page";\r
- }\r
- }\r
- closedir($dir);\r
- }\r
- \r
- $cnt = 1;\r
- krsort($putval);\r
- $fp = fopen(get_filename(encode($whatsnew)),"w");\r
- flock($fp,LOCK_EX);\r
- foreach($putval as $pages)\r
- {\r
- foreach($pages as $page)\r
- {\r
- fputs($fp,$page."\n");\r
- $cnt++;\r
- if($cnt > $maxshow) break;\r
- }\r
- if($cnt > $maxshow) break;\r
- }\r
- flock($fp,LOCK_EX);\r
- fclose($fp);\r
-}\r
-\r
-// ¸¡º÷\r
-function do_search($word,$type="AND",$non_format=0)\r
-{\r
- global $script,$whatsnew,$vars;\r
- global $_msg_andresult,$_msg_orresult,$_msg_notfoundresult;\r
- \r
- $database = array();\r
- $retval = array();\r
- $cnt = 0;\r
-\r
- if ($dir = @opendir(DATA_DIR))\r
- {\r
- while($file = readdir($dir))\r
- {\r
- if($file == ".." || $file == ".") continue;\r
- $cnt++;\r
- $page = decode(trim(preg_replace("/\.txt$/"," ",$file)));\r
- if($page == $whatsnew) continue;\r
- if($page == $vars["page"] && $non_format) continue;\r
- $data[$page] = file(DATA_DIR.$file);\r
- }\r
- closedir($dir);\r
- }\r
- \r
- $arywords = explode(" ",$word);\r
- $result_word = $word;\r
- \r
- foreach($data as $name => $lines)\r
- {\r
- $line = join("\n",$lines);\r
- \r
- $hit = 0;\r
- if(strpos($result_word," ") !== FALSE)\r
- {\r
- foreach($arywords as $word)\r
- {\r
- if($type=="AND")\r
- {\r
- if(strpos($line,$word) === FALSE)\r
- {\r
- $hit = 0;\r
- break;\r
- }\r
- else\r
- {\r
- $hit = 1;\r
- }\r
- }\r
- else if($type=="OR")\r
- {\r
- if(strpos($line,$word) !== FALSE)\r
- $hit = 1;\r
- }\r
- }\r
- if($hit==1 || strpos($name,$word)!==FALSE)\r
- {\r
- $page_url = rawurlencode($name);\r
- $word_url = rawurlencode($word);\r
- $name2 = strip_bracket($name);\r
- $str = get_pg_passage($name);\r
- $retval[$name2] = "<li><a href=\"$script?$page_url\">$name2</a>$str</li>";\r
- }\r
- }\r
- else\r
- {\r
- if(stristr($line,$word) || stristr($name,$word))\r
- {\r
- $page_url = rawurlencode($name);\r
- $word_url = rawurlencode($word);\r
- $name2 = strip_bracket($name);\r
- $link_tag = "<a href=\"$script?$page_url\">$name2</a>";\r
- $link_tag .= get_pg_passage($name,false);\r
- if($non_format)\r
- {\r
- $tm = @filemtime(get_filename(encode($name)));\r
- $retval[$tm] = $link_tag;\r
- }\r
- else\r
- {\r
- $retval[$name2] = "<li>$link_tag</li>";\r
- }\r
- }\r
- }\r
- }\r
-\r
- if($non_format)\r
- return $retval;\r
-\r
- $retval = list_sort($retval);\r
-\r
- if(count($retval) && !$non_format)\r
- {\r
- $retvals = "<ul>\n" . join("\n",$retval) . "</ul>\n<br>\n";\r
- \r
- if($type=="AND")\r
- $retvals.= str_replace('$1',$result_word,str_replace('$2',count($retval),str_replace('$3',$cnt,$_msg_andresult)));\r
- else\r
- $retvals.= str_replace('$1',$result_word,str_replace('$2',count($retval),str_replace('$3',$cnt,$_msg_orresult)));\r
-\r
- }\r
- else\r
- $retvals .= str_replace('$1',$result_word,$_msg_notfoundresult);\r
- return $retvals;\r
-}\r
-\r
-// º¹Ê¬¤ÎºîÀ®\r
-function do_diff($strlines1,$strlines2)\r
-{\r
- $lines1 = split("\n",$strlines1);\r
- $lines2 = split("\n",$strlines2);\r
- \r
- $same_lines = $diff_lines = $del_lines = $add_lines = $retdiff = array();\r
- \r
- if(count($lines1) > count($lines2)) { $max_line = count($lines1)+2; }\r
- else { $max_line = count($lines2)+2; }\r
-\r
- //$same_lines = array_intersect($lines1,$lines2);\r
-\r
- $diff_lines = array_diff($lines1,$lines2);\r
- $diff_lines = array_merge($diff_lines,array_diff($lines2,$lines1));\r
-\r
- foreach($diff_lines as $line)\r
- {\r
- $index = array_search($line,$lines1);\r
- if($index > -1)\r
- {\r
- $del_lines[$index] = $line;\r
- }\r
- \r
- //$index = array_search($line,$lines2);\r
- //if($index > -1)\r
- //{\r
- // $add_lines[$index] = $line;\r
- //}\r
- }\r
-\r
- $cnt=0;\r
- foreach($lines2 as $line)\r
- {\r
- $line = rtrim($line);\r
- \r
- while($del_lines[$cnt])\r
- {\r
- $retdiff[] = "- ".$del_lines[$cnt];\r
- $del_lines[$cnt] = "";\r
- $cnt++;\r
- }\r
- \r
- if(in_array($line,$diff_lines))\r
- {\r
- $retdiff[] = "+ $line";\r
- }\r
- else\r
- {\r
- $retdiff[] = " $line";\r
- }\r
-\r
- $cnt++;\r
- }\r
- \r
- foreach($del_lines as $line)\r
- {\r
- if(trim($line))\r
- $retdiff[] = "- $line";\r
- }\r
-\r
- return join("\n",$retdiff);\r
-}\r
-\r
-// °ìÍ÷¤Î¼èÆÀ\r
-function get_list($withfilename)\r
-{\r
- global $script,$list_index,$top,$non_list,$whatsnew;\r
- global $_msg_symbol,$_msg_other;\r
- \r
- $retval = array();\r
- if ($dir = @opendir(DATA_DIR))\r
- {\r
- while($file = readdir($dir))\r
- {\r
- $page = decode(trim(preg_replace("/\.txt$/"," ",$file)));\r
- if($file == ".." || $file == ".") continue;\r
- if(preg_match("/$non_list/",$page) && !$withfilename) continue;\r
- if($page == $whatsnew) continue;\r
- $page_url = rawurlencode($page);\r
- $page2 = strip_bracket($page);\r
- $pg_passage = get_pg_passage($page);\r
- $retval[$page2] .= "<li><a href=\"$script?$page_url\">$page2</a>$pg_passage</li>\n";\r
- if($withfilename)\r
- {\r
- $retval[$page2] .= "<ul><li>$file</li></ul>\n";\r
- }\r
- }\r
- closedir($dir);\r
- }\r
- \r
- $retval = list_sort($retval);\r
- \r
- if($list_index)\r
- {\r
- $head_str = "";\r
- $etc_sw = 0;\r
- $symbol_sw = 0;\r
- $top_link = "";\r
- foreach($retval as $page => $link)\r
- {\r
- $head = substr($page,0,1);\r
- if($head_str != $head && !$etc_sw)\r
- {\r
- $retval2[$page] = "";\r
- \r
- if(preg_match("/([A-Z])|([a-z])/",$head,$match))\r
- {\r
- if($match[1])\r
- $head_nm = "High:$head";\r
- else\r
- $head_nm = "Low:$head";\r
- \r
- if($head_str) $retval2[$page] = "</ul>\n";\r
- $retval2[$page] .= "<li><a href=\"#top:$head_nm\" name=\"$head_nm\"><b>$head</b></a></li>\n<ul>\n";\r
- $head_str = $head;\r
- if($top_link) $top_link .= "|";\r
- $top_link .= "<a href=\"#$head_nm\" name=\"top:$head_nm\"><b> ".$head." </b></a>";\r
- }\r
- else if(preg_match("/[ -~]/",$head))\r
- {\r
- if(!$symbol_sw)\r
- {\r
- if($head_str) $retval2[$page] = "</ul>\n";\r
- $retval2[$page] .= "<li><a href=\"#top:symbol\" name=\"symbol\"><b>$_msg_symbol</b></a></li>\n<ul>\n";\r
- $head_str = $head;\r
- if($top_link) $top_link .= "|";\r
- $top_link .= "<a href=\"#symbol\" name=\"top:symbol\"><b>$_msg_symbol</b></a>";\r
- $symbol_sw = 1;\r
- }\r
- }\r
- else\r
- {\r
- if($head_str) $retval2[$page] = "</ul>\n";\r
- $retval2[$page] .= "<li><a href=\"#top:etc\" name=\"etc\"><b>$_msg_other</b></a></li>\n<ul>\n";\r
- $etc_sw = 1;\r
- if($top_link) $top_link .= "|";\r
- $top_link .= "<a href=\"#etc\" name=\"top:etc\"><b>$_msg_other</b></a>";\r
- }\r
- }\r
- $retval2[$page] .= $link;\r
- }\r
- $retval2[] = "</ul>\n";\r
- \r
- $top_link = "<div align=\"center\"><a name=\"top\">$top_link</a></div><br>\n";\r
- \r
- array_unshift($retval2,$top_link);\r
- }\r
- else\r
- {\r
- $retval2 = $retval;\r
- }\r
- \r
- return join("",$retval2);\r
-}\r
-\r
-// ÊÔ½¸¥Õ¥©¡¼¥à¤Îɽ¼¨\r
-function edit_form($postdata,$page,$add=0)\r
-{\r
- global $script,$rows,$cols,$hr,$vars,$function_freeze;\r
- global $_btn_addtop,$_btn_preview,$_btn_update,$_btn_freeze,$_msg_help,$_btn_notchangetimestamp;\r
- global $whatsnew,$_btn_template,$_btn_load,$non_list,$load_template_func;\r
-\r
- $digest = md5(@join("",@file(get_filename(encode($page)))));\r
-\r
- if($add)\r
- {\r
- $addtag = '<input type="hidden" name="add" value="true">';\r
- $add_top = '<input type="checkbox" name="add_top" value="true"><small>'.$_btn_addtop.'</small>';\r
- }\r
-\r
- if($vars["help"] == "true")\r
- $help = $hr.catrule();\r
- else\r
- $help = "<br>\n<ul><li><a href=\"$script?cmd=edit&help=true&page=".rawurlencode($page)."\">$_msg_help</a></ul></li>\n";\r
-\r
- if($function_freeze)\r
- $str_freeze = '<input type="submit" name="freeze" value="'.$_btn_freeze.'" accesskey="f">';\r
-\r
- if($load_template_func)\r
- {\r
- $vals = array();\r
- if ($dir = @opendir(DATA_DIR))\r
- {\r
- while($file = readdir($dir))\r
- {\r
- $pg_org = decode(trim(preg_replace("/\.txt$/"," ",$file)));\r
- if($file == ".." || $file == "." || $pg_org == $whatsnew) continue;\r
- if(preg_match("/$non_list/",$pg_org)) continue;\r
- $name = strip_bracket($pg_org);\r
- $vals[$name] = " <option value=\"$pg_org\">$name</option>";\r
- }\r
- closedir($dir);\r
- }\r
- @ksort($vals);\r
- \r
- $template = " <select name=\"template_page\">\n"\r
- ." <option value=\"\">-- $_btn_template --</option>\n"\r
- .join("\n",$vals)\r
- ." </select>\n"\r
- ." <input type=\"submit\" name=\"template\" value=\"$_btn_load\" accesskey=\"r\"><br>\n";\r
-\r
- if($vars["refer"]) $refer = $vars["refer"]."\n\n";\r
- }\r
-\r
-return '\r
-<form action="'.$script.'" method="post">\r
-<input type="hidden" name="page" value="'.$page.'">\r
-<input type="hidden" name="digest" value="'.$digest.'">\r
-'.$addtag.'\r
-<table cellspacing="3" cellpadding="0" border="0">\r
- <tr>\r
- <td colspan="2" align="right">\r
-'.$template.'\r
- </td>\r
- </tr>\r
- <tr>\r
- <td colspan="2" align="right">\r
- <textarea name="msg" rows="'.$rows.'" cols="'.$cols.'" wrap="virtual">\r
-'.$refer.$postdata.'</textarea>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td>\r
- <input type="submit" name="preview" value="'.$_btn_preview.'" accesskey="p">\r
- <input type="submit" name="write" value="'.$_btn_update.'" accesskey="s">\r
- '.$add_top.'\r
- <input type="checkbox" name="notimestamp" value="true"><small>'.$_btn_notchangetimestamp.'</small>\r
- </td>\r
- </form>\r
- <form action="'.$script.'?cmd=freeze" method="post">\r
- <input type="hidden" name="page" value="'.$vars["page"].'">\r
- <td align="right">\r
- '.$str_freeze.'\r
- </td>\r
- </form>\r
- </tr>\r
-</table>\r
-' . $help;\r
-}\r
-\r
-// ¥Õ¥¡¥¤¥ë̾¤òÆÀ¤ë(¥¨¥ó¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ëɬÍ×ͤê)\r
-function get_filename($pagename)\r
-{\r
- return DATA_DIR.$pagename.".txt";\r
-}\r
-\r
-// ¥Ú¡¼¥¸¤¬Â¸ºß¤¹¤ë¤«¤·¤Ê¤¤¤«\r
-function is_page($page,$reload=false)\r
-{\r
- global $InterWikiName,$_ispage;\r
-\r
- if(($_ispage[$page] === true || $_ispage[$page] === false) && !$reload) return $_ispage[$page];\r
-\r
- if(preg_match("/($InterWikiName)/",$page))\r
- $_ispage[$page] = false;\r
- else if(!file_exists(get_filename(encode($page))))\r
- $_ispage[$page] = false;\r
- else\r
- $_ispage[$page] = true;\r
- \r
- return $_ispage[$page];\r
-}\r
-\r
-// ¥Ú¡¼¥¸¤¬ÊÔ½¸²Äǽ¤«\r
-function is_editable($page)\r
-{\r
- global $BracketName,$WikiName,$InterWikiName,$cantedit,$_editable;\r
-\r
- if($_editable === true || $_editable === false) return $_editable;\r
-\r
- if(preg_match("/^$InterWikiName$/",$page))\r
- $_editable = false;\r
- elseif(!preg_match("/^$BracketName$/",$page) && !preg_match("/^$WikiName$/",$page))\r
- $_editable = false;\r
- else if(in_array($page,$cantedit))\r
- $_editable = false;\r
- else\r
- $_editable = true;\r
- \r
- return $_editable;\r
-}\r
-\r
-// ¥Ú¡¼¥¸¤¬Åà·ë¤µ¤ì¤Æ¤¤¤ë¤«\r
-function is_freeze($page)\r
-{\r
- global $_freeze;\r
-\r
- if(!is_page($page)) return false;\r
- if($_freeze === true || $_freeze === false) return $_freeze;\r
-\r
- $lines = file(get_filename(encode($page)));\r
- \r
- if($lines[0] == "#freeze\n")\r
- $_freeze = true;\r
- else\r
- $_freeze = false;\r
- \r
- return $_freeze;\r
-}\r
-\r
-// ¥×¥í¥°¥é¥à¤Ø¤Î°ú¿ô¤Î¥Á¥§¥Ã¥¯\r
-function arg_check($str)\r
-{\r
- global $arg,$vars;\r
-\r
- return preg_match("/^".$str."/",$vars["cmd"]);\r
-}\r
-\r
-// ¥Ú¡¼¥¸¥ê¥¹¥È¤Î¥½¡¼¥È\r
-function list_sort($values)\r
-{\r
- if(!is_array($values)) return array();\r
- \r
- // ksort¤Î¤ß¤À¤È¡¢[[ÆüËܸì]]¡¢[[±Ñʸ»ú]]¡¢±Ñʸ»ú¤Î¤ß¡¢¤Ë½ç¤ËʤÙÂؤ¨¤é¤ì¤ë\r
- ksort($values);\r
-\r
- $vals1 = array();\r
- $vals2 = array();\r
- $vals3 = array();\r
-\r
- // ±Ñʸ»ú¤Î¤ß¡¢[[±Ñʸ»ú]]¡¢[[ÆüËܸì]]¡¢¤Î½ç¤ËʤÙÂؤ¨¤ë\r
- foreach($values as $key => $val)\r
- {\r
- if(preg_match("/\[\[[^\w]+\]\]/",$key))\r
- $vals3[$key] = $val;\r
- else if(preg_match("/\[\[[\W]+\]\]/",$key))\r
- $vals2[$key] = $val;\r
- else\r
- $vals1[$key] = $val;\r
- }\r
- return array_merge($vals1,$vals2,$vals3);\r
-}\r
-\r
-// ¥Ú¡¼¥¸Ì¾¤Î¥¨¥ó¥³¡¼¥É\r
-function encode($key)\r
-{\r
- $enkey = '';\r
- $arych = preg_split("//", $key, -1, PREG_SPLIT_NO_EMPTY);\r
- \r
- foreach($arych as $ch)\r
- {\r
- $enkey .= sprintf("%02X", ord($ch));\r
- }\r
-\r
- return $enkey;\r
-}\r
-\r
-// ¥Õ¥¡¥¤¥ë̾¤Î¥Ç¥³¡¼¥É\r
-function decode($key)\r
-{\r
- $dekey = '';\r
- \r
- for($i=0;$i<strlen($key);$i+=2)\r
- {\r
- $ch = substr($key,$i,2);\r
- $dekey .= chr(intval("0x".$ch,16));\r
- }\r
- return urldecode($dekey);\r
-}\r
-\r
-// ¥Æ¥¥¹¥ÈËÜÂΤòHTML¤ËÊÑ´¹¤¹¤ë\r
-function convert_html($string)\r
-{\r
- global $result,$saved,$hr,$script,$page,$vars,$top;\r
- global $note_id,$foot_explain,$digest,$note_hr;\r
- global $user_rules,$str_rules,$line_rules,$strip_link_wall;\r
-\r
- global $longtaketime;\r
-\r
- $string = rtrim($string);\r
- $string = preg_replace("/(\x0D\x0A)/","\n",$string);\r
- $string = preg_replace("/(\x0D)/","\n",$string);\r
- $string = preg_replace("/(\x0A)/","\n",$string);\r
-\r
- $start_mtime = getmicrotime();\r
-\r
- $digest = md5(@join("",@file(get_filename(encode($vars["page"])))));\r
-\r
- $content_id = 0;\r
- $user_rules = array_merge($str_rules,$line_rules);\r
-\r
- $result = array();\r
- $saved = array();\r
- $arycontents = array();\r
-\r
- $string = preg_replace("/^#freeze\n/","",$string);\r
-\r
- $lines = split("\n", $string);\r
- $note_id = 1;\r
- $foot_explain = array();\r
-\r
- $table = 0;\r
-\r
- if(preg_match("/#contents/",$string))\r
- $top_link = "<a href=\"#contents\">$top</a>";\r
-\r
- foreach ($lines as $line)\r
- {\r
- if(!preg_match("/^\/\/(.*)/",$line,$comment_out) && $table != 0)\r
- {\r
- if(!preg_match("/^\|(.+)\|$/",$line,$out))\r
- array_push($result, "</table>");\r
- if(!$out[1] || $table != count(explode("|",$out[1])))\r
- $table = 0;\r
- }\r
-\r
- $comment_out = $comment_out[1];\r
-\r
- if(preg_match("/^(\*{1,3})(.*)/",$line,$out))\r
- {\r
- $result = array_merge($result,$saved); $saved = array();\r
- $str = inline($out[2]);\r
- \r
- $level = strlen($out[1]) + 1;\r
- \r
- array_push($result, "<h$level><a name=\"content:$content_id\">$str</a> $top_link</h$level>");\r
- $arycontents[] = str_repeat("-",$level-1)."<a href=\"#content:$content_id\">".strip_htmltag($str)."</a>\n";\r
- $content_id++;\r
- }\r
- else if(preg_match("/^(-{1,4})(.*)/",$line,$out))\r
- {\r
- if(strlen($out[1]) == 4)\r
- {\r
- $result = array_merge($result,$saved); $saved = array();\r
- array_push($result, $hr);\r
- }\r
- else\r
- {\r
- back_push('ul', strlen($out[1]));\r
- array_push($result, '<li>' . inline($out[2]) . '</li>');\r
- }\r
- }\r
- else if (preg_match("/^:([^:]+):(.*)/",$line,$out))\r
- {\r
- back_push('dl', 1);\r
- array_push($result, '<dt>' . inline($out[1]) . '</dt>', '<dd>' . inline($out[2]) . '</dd>');\r
- }\r
- else if(preg_match("/^(>{1,3})(.*)/",$line,$out))\r
- {\r
- back_push('blockquote', strlen($out[1]));\r
- array_push($result, ltrim(inline($out[2])));\r
- }\r
- else if (preg_match("/^\s*$/",$line,$out))\r
- {\r
- $result = array_merge($result,$saved); $saved = array();\r
- //array_unshift($saved, "</p>");\r
- array_push($result, "<p>");\r
- }\r
- else if(preg_match("/^(\s+.*)/",$line,$out))\r
- {\r
- back_push('pre', 1);\r
- array_push($result, htmlspecialchars($out[1],ENT_NOQUOTES));\r
- }\r
- else if(preg_match("/^\|(.+)\|$/",$line,$out))\r
- {\r
- $arytable = explode("|",$out[1]);\r
-\r
- if(!$table)\r
- {\r
- $result = array_merge($result,$saved); $saved = array();\r
- array_push($result,"<table class=\"style_table\" cellspacing=\"1\" border=\"0\">");\r
- $table = count($arytable);\r
- }\r
-\r
- array_push($result,"<tr>");\r
- foreach($arytable as $td)\r
- {\r
- array_push($result,"<td class=\"style_td\">");\r
- array_push($result,ltrim(inline($td)));\r
- array_push($result,"</td>");\r
- }\r
- array_push($result,"</tr>");\r
-\r
- }\r
- else if(strlen($comment_out) != 0)\r
- {\r
- array_push($result," <!-- ".htmlspecialchars($comment_out)." -->");\r
- }\r
- else\r
- {\r
- array_push($result, inline($line));\r
- }\r
- }\r
- if($table) array_push($result, "</table>");\r
-\r
- $result_last = $result = array_merge($result,$saved); $saved = array();\r
-\r
- if($content_id != 0)\r
- {\r
- $result = array();\r
- $saved = array();\r
-\r
- foreach($arycontents as $line)\r
- {\r
- if(preg_match("/^(-{1,3})(.*)/",$line,$out))\r
- {\r
- back_push('ul', strlen($out[1]));\r
- array_push($result, '<li>'.$out[2].'</li>');\r
- }\r
- }\r
- $result = array_merge($result,$saved); $saved = array();\r
- \r
- $contents = "<a name=\"contents\"></a>\n";\r
- $contents .= join("\n",$result);\r
- if($strip_link_wall)\r
- {\r
- $contents = preg_replace("/\[\[([^\]]+)\]\]/","$1",$contents);\r
- }\r
- }\r
-\r
- $result_last = inline2($result_last);\r
- \r
- $result_last = preg_replace("/^#contents/",$contents,$result_last);\r
-\r
- $str = join("\n", $result_last);\r
-\r
- if($foot_explain)\r
- {\r
- $str .= "\n";\r
- $str .= "$note_hr\n";\r
- //$str .= "<p>\n";\r
- $str .= join("\n",inline2($foot_explain));\r
- //$str .= "</p>\n";\r
- }\r
-\r
- $longtaketime = getmicrotime() - $start_mtime;\r
-\r
- $str = preg_replace("/&((lt;)|(gt;))/","&$1",$str);\r
-\r
- return $str;\r
-}\r
-\r
-// $tag¤Î¥¿¥°¤ò$level¥ì¥Ù¥ë¤Þ¤ÇµÍ¤á¤ë¡£\r
-function back_push($tag, $level)\r
-{\r
- global $result,$saved;\r
- \r
- while (count($saved) > $level) {\r
- array_push($result, array_shift($saved));\r
- }\r
- if ($saved[0] != "</$tag>") {\r
- $result = array_merge($result,$saved); $saved = array();\r
- }\r
- while (count($saved) < $level) {\r
- array_unshift($saved, "</$tag>");\r
- array_push($result, "<$tag>");\r
- }\r
-}\r
-\r
-// ¥ê¥ó¥¯¤ÎÉղ佤ξ\r
-function inline($line)\r
-{\r
- $line = htmlspecialchars($line);\r
-\r
- $line = preg_replace("/(\r
-\r
- (\(\(([^\(\)]+)\)\))\r
- |\r
- (\(\((.+)\)\))\r
-\r
- )/ex","make_note(\"$1\")",$line);\r
-\r
- return $line;\r
-}\r
-\r
-// ¥ê¥ó¥¯¤ÎÉղ佤ξ2\r
-function inline2($str)\r
-{\r
- global $WikiName,$BracketName,$InterWikiName,$vars,$related,$related_link,$script;\r
- $cnts_plain = array();\r
- $cnts_plugin = array();\r
- $arykeep = array();\r
-\r
- for($cnt=0;$cnt<count($str);$cnt++)\r
- {\r
- if(preg_match("/^(\s)/",$str[$cnt]))\r
- {\r
- $arykeep[$cnt] = $str[$cnt];\r
- $str[$cnt] = "";\r
- $cnts_plain[] = $cnt;\r
- }\r
- else if(preg_match("/^\#([^\(]+)\(?(.*)\)?$/",$str[$cnt],$match))\r
- {\r
- if(file_exists(PLUGIN_DIR.$match[1].".inc.php"))\r
- {\r
- require_once(PLUGIN_DIR.$match[1].".inc.php");\r
- if(function_exists("plugin_".$match[1]."_convert"))\r
- {\r
- $aryplugins[$cnt] = $str[$cnt];\r
- $str[$cnt] = "";\r
- $cnts_plugin[] = $cnt;\r
- }\r
- }\r
- }\r
- }\r
-\r
- $str = preg_replace("/'''([^']+?)'''/s","<i>$1</i>",$str); // Italic\r
-\r
- $str = preg_replace("/''([^']+?)''/s","<b>$1</b>",$str); // Bold\r
-\r
- $str = preg_replace("/\r
- (\r
- (\[\[([^\]]+)\:(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\]\])\r
- |\r
- (\[(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\s([^\]]+)\])\r
- |\r
- (https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\r
- |\r
- ([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\r
- |\r
- (\[\[([^\]]+)\:([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\]\])\r
- |\r
- ($InterWikiName)\r
- |\r
- ($BracketName)\r
- |\r
- ($WikiName)\r
- )/ex","make_link('$1')",$str);\r
-\r
- $str = preg_replace("/#related/",make_related($vars["page"],true),$str);\r
-\r
- $str = make_user_rules($str);\r
-\r
- $aryplugins = preg_replace("/^\#([^\(]+)$/ex","plugin_convert('$1','$2')",$aryplugins);\r
- $aryplugins = preg_replace("/^\#([^\(]+)\((.*)\)$/ex","plugin_convert('$1','$2')",$aryplugins);\r
-\r
- $tmp = $str;\r
- $str = preg_replace("/^#norelated$/","",$str);\r
- if($tmp != $str)\r
- $related_link = 0;\r
-\r
- foreach($cnts_plain as $cnt)\r
- $str[$cnt] = $arykeep[$cnt];\r
-\r
- foreach($cnts_plugin as $cnt)\r
- $str[$cnt] = $aryplugins[$cnt];\r
-\r
- return $str;\r
-}\r
-\r
-// Plug-in\r
-function plugin_convert($plugin_name,$plugin_args)\r
-{\r
- $invalid_return = "#${plugin_name}(${plugin_args})";\r
- \r
- if($plugin_args !== "")\r
- $aryargs = explode(",",$plugin_args);\r
- else\r
- $aryargs = array();\r
- $retvar = call_user_func_array("plugin_${plugin_name}_convert",$aryargs);\r
-\r
- if($retvar === FALSE) return $invalid_return;\r
- else return $retvar;\r
-}\r
-\r
-// ´ØÏ¢¤¹¤ë¥Ú¡¼¥¸\r
-function make_related($page,$_isrule)\r
-{\r
- global $related_str,$rule_related_str,$related,$_make_related,$vars;\r
-\r
- $page_name = strip_bracket($vars["page"]);\r
-\r
- if(!is_array($_make_related))\r
- {\r
- $aryrelated = do_search($page,"OR",1);\r
-\r
- if(is_array($aryrelated))\r
- {\r
- foreach($aryrelated as $key => $val)\r
- {\r
- $new_arylerated[$key.md5($val)] = $val;\r
- }\r
- }\r
-\r
- if(is_array($related))\r
- {\r
- foreach($related as $key => $val)\r
- {\r
- $new_arylerated[$key.md5($val)] = $val;\r
- }\r
- }\r
-\r
- @krsort($new_arylerated);\r
- $_make_related = @array_unique($new_arylerated);\r
- }\r
-\r
- if($_isrule)\r
- {\r
- if(is_array($_make_related))\r
- {\r
- foreach($_make_related as $str)\r
- {\r
- preg_match("/<a\shref=\"([^\"]+)\">([^<]+)<\/a>(.*)/",$str,$out);\r
- \r
- if($out[3]) $title = " title=\"$out[2] $out[3]\"";\r
- \r
- $aryret[$out[2]] = "<a href=\"$out[1]\"$title>$out[2]</a>";\r
- }\r
- @ksort($aryret);\r
- }\r
- }\r
- else\r
- {\r
- $aryret = $_make_related;\r
- }\r
-\r
- if($_isrule) $str = $rule_related_str;\r
- else $str = $related_str;\r
-\r
- return @join($str,$aryret);\r
-}\r
-\r
-// Ãí¼á½èÍý\r
-function make_note($str)\r
-{\r
- global $note_id,$foot_explain;\r
-\r
- $str = preg_replace("/^\(\(/","",$str);\r
- $str = preg_replace("/\)\)$/","",$str);\r
-\r
- $str= str_replace("\\'","'",$str);\r
-\r
- $str = make_user_rules($str);\r
-\r
- $foot_explain[] = "<a name=\"notefoot:$note_id\" href=\"#notetext:$note_id\"><sup><small>*$note_id</small></sup></a> <small>$str</small><br />\n";\r
- $note = "<a name=\"notetext:$note_id\" href=\"#notefoot:$note_id\"><sup><small>*$note_id</small></sup></a>";\r
- $note_id++;\r
-\r
- return $note;\r
-}\r
-\r
-// ¥ê¥ó¥¯¤òÉղ乤ë\r
-function make_link($name)\r
-{\r
- global $BracketName,$WikiName,$InterWikiName,$script,$link_target,$interwiki_target;\r
- global $related,$show_passage,$vars,$defaultpage;\r
-\r
- $aryconv_htmlspecial = array("&","<",">");\r
- $aryconv_html = array("&","<",">");\r
-\r
- $page = $name;\r
-\r
- if(preg_match("/^\[\[([^\]]+)\:((https?|ftp|news)([^\]]+))\]\]$/",$name,$match))\r
- {\r
- $match[2] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[2]);\r
- return "<a href=\"$match[2]\" target=\"$link_target\">$match[1]</a>";\r
- }\r
- else if(preg_match("/^\[((https?|ftp|news)([^\]\s]+))\s([^\]]+)\]$/",$name,$match))\r
- {\r
- $match[1] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[1]);\r
- return "<a href=\"$match[1]\" target=\"$link_target\">$match[4]</a>";\r
- }\r
- else if(preg_match("/^(https?|ftp|news).*?(\.gif|\.png|\.jpeg|\.jpg)?$/",$name,$match))\r
- {\r
- $name = str_replace($aryconv_htmlspecial,$aryconv_html,$name);\r
- if($match[2])\r
- return "<a href=\"$name\" target=\"$link_target\"><img src=\"$name\" border=\"0\"></a>";\r
- else\r
- return "<a href=\"$name\" target=\"$link_target\">$page</a>";\r
- }\r
- else if(preg_match("/^\[\[([^\]]+)\:([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\]\]/",$name,$match))\r
- {\r
- $match[1] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[1]);\r
- $match[2] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[2]);\r
-\r
- return "<a href=\"mailto:$match[2]\">$match[1]</a>";\r
- }\r
- else if(preg_match("/^([[:alnum:]\-_]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)/",$name))\r
- {\r
- $name = str_replace($aryconv_htmlspecial,$aryconv_html,$name);\r
- return "<a href=\"mailto:$name\">$page</a>";\r
- }\r
- else if(preg_match("/^($InterWikiName)$/",str_replace($aryconv_htmlspecial,$aryconv_html,$name)))\r
- {\r
- $page = strip_bracket($page);\r
- $percent_name = str_replace($aryconv_htmlspecial,$aryconv_html,$name);\r
- $percent_name = rawurlencode($percent_name);\r
-\r
- return "<a href=\"$script?$percent_name\" target=\"$interwiki_target\">$page</a>";\r
- }\r
- else if(preg_match("/^($BracketName)|($WikiName)$/",str_replace($aryconv_htmlspecial,$aryconv_html,$name)))\r
- {\r
- if(preg_match("/^([^>]+)>([^>]+)$/",strip_bracket(str_replace($aryconv_htmlspecial,$aryconv_html,$name)),$match))\r
- {\r
- $page = $match[1];\r
- $name = $match[2];\r
- if(!preg_match("/^($BracketName)|($WikiName)$/",$page))\r
- $page = "[[$page]]";\r
- if(!preg_match("/^($BracketName)|($WikiName)$/",$name))\r
- $name = "[[$name]]";\r
- }\r
- \r
- if(preg_match("/^\[\[\.\/([^\]]*)\]\]/",str_replace($aryconv_htmlspecial,$aryconv_html,$name),$match))\r
- {\r
- if(!$match[1])\r
- $name = $vars["page"];\r
- else\r
- $name = "[[".strip_bracket($vars[page])."/$match[1]]]";\r
- }\r
- else if(preg_match("/^\[\[\..\/([^\]]+)\]\]/",str_replace($aryconv_htmlspecial,$aryconv_html,$name),$match))\r
- {\r
- for($i=0;$i<substr_count($name,"../");$i++)\r
- $name = preg_replace("/(.+)\/([^\/]+)$/","$1",strip_bracket($vars["page"]));\r
-\r
- if(!preg_match("/^($BracketName)|($WikiName)$/",$name))\r
- $name = "[[$name]]";\r
- \r
- if($vars["page"]==$name)\r
- $name = "[[$match[1]]]";\r
- else\r
- $name = "[[".strip_bracket($name)."/$match[1]]]";\r
- }\r
- else if($name == "[[../]]")\r
- {\r
- $name = preg_replace("/(.+)\/([^\/]+)$/","$1",strip_bracket($vars["page"]));\r
- \r
- if(!preg_match("/^($BracketName)|($WikiName)$/",$name))\r
- $name = "[[$name]]";\r
- if($vars["page"]==$name)\r
- $name = $defaultpage;\r
- }\r
- \r
- $page = strip_bracket($page);\r
- $pagename = strip_bracket($name);\r
- $percent_name = str_replace($aryconv_htmlspecial,$aryconv_html,$name);\r
- $percent_name = rawurlencode($percent_name);\r
-\r
- $refer = rawurlencode($vars["page"]);\r
- if(is_page($name))\r
- {\r
- $str = get_pg_passage($name,false);\r
- $tm = @filemtime(get_filename(encode($name)));\r
- if($vars["page"] != $name)\r
- $related[$tm] = "<a href=\"$script?$percent_name\">$pagename</a>$str";\r
- if($show_passage)\r
- {\r
- $str_title = "title=\"$pagename $str\"";\r
- }\r
- return "<a href=\"$script?$percent_name\" $str_title>$page</a>";\r
- }\r
- else\r
- return "<span class=\"noexists\">$page<a href=\"$script?cmd=edit&page=$percent_name&refer=$refer\">?</a></span>";\r
- }\r
- else\r
- {\r
- return $page;\r
- }\r
-}\r
-\r
-// ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë(¥½¡¼¥¹¤òÃÖ´¹¤¹¤ë)\r
-function user_rules_str($str)\r
-{\r
- global $str_rules;\r
-\r
- $arystr = split("\n",$str);\r
-\r
- // ÆüÉÕ¡¦»þ¹ïÃÖ´¹½èÍý\r
- foreach($arystr as $str)\r
- {\r
- if(substr($str,0,1) != " ")\r
- {\r
- foreach($str_rules as $rule => $replace)\r
- {\r
- $str = preg_replace("/$rule/",$replace,$str);\r
- }\r
- }\r
- $retvars[] = $str;\r
- }\r
-\r
- return join("\n",$retvars);\r
-}\r
-\r
-// ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë(¥½¡¼¥¹¤ÏÃÖ´¹¤»¤º¥³¥ó¥Ð¡¼¥È)\r
-function make_user_rules($str)\r
-{\r
- global $user_rules;\r
-\r
- foreach($user_rules as $rule => $replace)\r
- {\r
- $str = preg_replace("/$rule/",$replace,$str);\r
- }\r
-\r
- return $str;\r
-}\r
-\r
-// InterWikiName List ¤Î²ò¼á(ÊÖÃÍ:£²¼¡¸µÇÛÎó)\r
-function open_interwikiname_list()\r
-{\r
- global $interwiki;\r
- \r
- $retval = array();\r
- $aryinterwikiname = file(get_filename(encode($interwiki)));\r
-\r
- $cnt = 0;\r
- foreach($aryinterwikiname as $line)\r
- {\r
- if(preg_match("/\[((https?|ftp|news)(\:\/\/[[:alnum:]\+\$\;\?\.%,!#~\*\/\:@&=_\-]+))\s([^\]]+)\]\s?([^\s]*)/",$line,$match))\r
- {\r
- $retval[$match[4]]["url"] = $match[1];\r
- $retval[$match[4]]["opt"] = $match[5];\r
- }\r
- }\r
-\r
- return $retval;\r
-}\r
-\r
-// zlib´Ø¿ô¤¬»ÈÍѤǤ¤ì¤Ð¡¢°µ½Ì¤·¤Æ»ÈÍѤ¹¤ë¤¿¤á¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à´Ø¿ô\r
-function backup_fopen($filename,$mode)\r
-{\r
- if(function_exists(gzopen))\r
- return gzopen(str_replace(".txt",".gz",$filename),$mode);\r
- else\r
- return fopen($filename,$mode);\r
-}\r
-function backup_fputs($zp,$str)\r
-{\r
- if(function_exists(gzputs))\r
- return gzputs($zp,$str);\r
- else\r
- return fputs($zp,$str);\r
-}\r
-function backup_fclose($zp)\r
-{\r
- if(function_exists(gzclose))\r
- return gzclose($zp);\r
- else\r
- return fclose($zp);\r
-}\r
-function backup_file($filename)\r
-{\r
- if(function_exists(gzfile))\r
- return @gzfile(str_replace(".txt",".gz",$filename));\r
- else\r
- return @file($filename);\r
-}\r
-function backup_delete($filename)\r
-{\r
- if(function_exists(gzopen))\r
- return @unlink(str_replace(".txt",".gz",$filename));\r
- else\r
- return @unlink($filename);\r
-}\r
-\r
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤òºîÀ®¤¹¤ë\r
-function make_backup($filename,$body,$oldtime)\r
-{\r
- global $splitter,$cycle,$maxage;\r
- $aryages = array();\r
- $arystrout = array();\r
-\r
- if(function_exists(gzfile))\r
- $filename = str_replace(".txt",".gz",$filename);\r
-\r
- $realfilename = BACKUP_DIR.$filename;\r
-\r
- if(time() - @filemtime($realfilename) > (60 * 60 * $cycle))\r
- {\r
- $aryages = read_backup($filename);\r
- if(count($aryages) >= $maxage)\r
- {\r
- array_shift($aryages);\r
- }\r
- \r
- foreach($aryages as $lines)\r
- {\r
- foreach($lines as $key => $line)\r
- {\r
- if($key && $key == "timestamp")\r
- {\r
- $arystrout[] = "$splitter " . rtrim($line);\r
- }\r
- else\r
- {\r
- $arystrout[] = rtrim($line);\r
- }\r
- }\r
- }\r
-\r
- $strout = join("\n",$arystrout);\r
- if(!preg_match("/\n$/",$strout) && trim($strout)) $strout .= "\n";\r
-\r
- $body = "$splitter " . $oldtime . "\n" . $body;\r
- if(!preg_match("/\n$/",$body)) $body .= "\n";\r
-\r
- $fp = backup_fopen($realfilename,"w");\r
- backup_fputs($fp,$strout);\r
- backup_fputs($fp,$body);\r
- backup_fclose($fp);\r
- }\r
- \r
- return true;\r
-}\r
-\r
-// ÆÃÄê¤ÎÀ¤Âå¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤ò¼èÆÀ\r
-function get_backup($age,$filename)\r
-{\r
- $aryages = read_backup($filename);\r
- \r
- foreach($aryages as $key => $lines)\r
- {\r
- if($key != $age) continue;\r
- foreach($lines as $key => $line)\r
- {\r
- if($key && $key == "timestamp") continue;\r
- $retvars[] = $line;\r
- }\r
- }\r
-\r
- return $retvars;\r
-}\r
-\r
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×¾ðÊó¤òÊÖ¤¹\r
-function get_backup_info($filename)\r
-{\r
- global $splitter;\r
- $lines = array();\r
- $retvars = array();\r
- $lines = backup_file(BACKUP_DIR.$filename);\r
-\r
- if(!is_array($lines)) return array();\r
-\r
- $age = 0;\r
- foreach($lines as $line)\r
- {\r
- preg_match("/^$splitter\s(\d+)$/",trim($line),$match);\r
- if($match[1])\r
- {\r
- $age++;\r
- $retvars[$age] = $match[1];\r
- }\r
- }\r
- \r
- return $retvars;\r
-}\r
-\r
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿Á´ÂΤò¼èÆÀ\r
-function read_backup($filename)\r
-{\r
- global $splitter;\r
- $lines = array();\r
- $lines = backup_file(BACKUP_DIR.$filename);\r
-\r
- if(!is_array($lines)) return array();\r
-\r
- $age = 0;\r
- foreach($lines as $line)\r
- {\r
- preg_match("/^$splitter\s(\d+)$/",trim($line),$match);\r
- if($match[1])\r
- {\r
- $age++;\r
- $retvars[$age]["timestamp"] = $match[1] . "\n";\r
- }\r
- else\r
- {\r
- $retvars[$age][] = $line;\r
- }\r
- }\r
-\r
- return $retvars;\r
-}\r
-\r
-// [[ ]] ¤ò¼è¤ê½ü¤¯\r
-function strip_bracket($str)\r
-{\r
- global $strip_link_wall;\r
- \r
- if($strip_link_wall)\r
- {\r
- preg_match("/^\[\[(.*)\]\]$/",$str,$match);\r
- if($match[1])\r
- $str = $match[1];\r
- }\r
- return $str;\r
-}\r
-\r
-// HTML¥¿¥°¤ò¼è¤ê½ü¤¯\r
-function strip_htmltag($str)\r
-{\r
- //$str = preg_replace("/<a[^>]+>\?<\/a>/","",$str);\r
- return preg_replace("/<[^>]+>/","",$str);\r
-}\r
-\r
-// ¥Æ¥¥¹¥ÈÀ°·Á¥ë¡¼¥ë¤òɽ¼¨¤¹¤ë\r
-function catrule()\r
-{\r
- global $rule_body;\r
- return $rule_body;\r
-}\r
-\r
-// ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë\r
-function die_message($msg)\r
-{\r
- $title = $page = "Runtime error";\r
-\r
- $body = "<h3>Runtime error</h3>\n";\r
- $body .= "<b>Error message : $msg</b>\n";\r
-\r
- catbody($title,$page,$body);\r
-\r
- die();\r
-}\r
-\r
-// »ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤Î·Ð²á»þ¹ï\r
-function get_pg_passage($page,$sw=true)\r
-{\r
- global $_pg_passage,$show_passage;\r
-\r
- if(!$show_passage) return "";\r
-\r
- if(isset($_pg_passage[$page]))\r
- {\r
- if($sw)\r
- return $_pg_passage[$page]["str"];\r
- else\r
- return $_pg_passage[$page]["label"];\r
- }\r
- if($pgdt = @filemtime(get_filename(encode($page))))\r
- {\r
- $pgdt = UTIME - $pgdt;\r
- if(ceil($pgdt / 60) < 60)\r
- $_pg_passage[$page]["label"] = "(".ceil($pgdt / 60)."m)";\r
- else if(ceil($pgdt / 60 / 60) < 24)\r
- $_pg_passage[$page]["label"] = "(".ceil($pgdt / 60 / 60)."h)";\r
- else\r
- $_pg_passage[$page]["label"] = "(".ceil($pgdt / 60 / 60 / 24)."d)";\r
- \r
- $_pg_passage[$page]["str"] = "<small>".$_pg_passage[$page]["label"]."</small>";\r
- }\r
- else\r
- {\r
- $_pg_passage[$page]["label"] = "";\r
- $_pg_passage[$page]["str"] = "";\r
- }\r
-\r
- if($sw)\r
- return $_pg_passage[$page]["str"];\r
- else\r
- return $_pg_passage[$page]["label"];\r
-}\r
-\r
-// ¸½ºß»þ¹ï¤ò¥Þ¥¤¥¯¥íÉäǼèÆÀ\r
-function getmicrotime()\r
-{\r
- list($usec, $sec) = explode(" ",microtime());\r
- return ((float)$sec + (float)$usec);\r
-}\r
-\r
-// ¥Ú¡¼¥¸Ì¾¤«¤é¥Ú¡¼¥¸Ì¾¤ò¸¡º÷¤¹¤ë¥ê¥ó¥¯¤òºîÀ®\r
-function make_search($page)\r
-{\r
- global $script,$WikiName;\r
-\r
- $page = htmlspecialchars($page);\r
- $name = strip_bracket($page);\r
- $url = rawurlencode($page);\r
-\r
- //WikiWikiWeb like...\r
- //if(preg_match("/^$WikiName$/",$page))\r
- // $name = preg_replace("/([A-Z][a-z]+)/","$1 ",$name);\r
-\r
- return "<a href=\"$script?cmd=search&word=$url\">$name</a> ";\r
-}\r
-\r
-// Last-Modified ¥Ø¥Ã¥À\r
-function header_lastmod($page)\r
-{\r
- global $lastmod;\r
- \r
- if($lastmod && is_page($page))\r
- {\r
- header("Last-Modified: ".gmdate("D, d M Y H:i:s", filemtime(get_filename(encode($page))))." GMT");\r
- }\r
-}\r
-\r
-// RecentChanges ¤Î RSS ¤ò½ÐÎÏ\r
-function catrss($rss)\r
-{\r
- global $rss_max,$page_title,$WikiName,$BracketName,$script,$whatsnew;\r
-\r
- $lines = file(get_filename(encode($whatsnew)));\r
- header("Content-type: application/xml");\r
-\r
- $item = "";\r
- $rdf_li = "";\r
- $cnt = 0;\r
- foreach($lines as $line)\r
- {\r
- if($cnt > $rss_max - 1) break;\r
-\r
- if(preg_match("/(($WikiName)|($BracketName))/",$line,$match))\r
- {\r
- if($match[2])\r
- {\r
- $title = $url = $match[1];\r
- }\r
- else\r
- {\r
- if(function_exists("mb_convert_encoding"))\r
- $title = mb_convert_encoding(strip_bracket($match[1]),"UTF-8","auto");\r
- else\r
- $title = strip_bracket($match[1]);\r
-\r
- $url = $match[1];\r
- }\r
- \r
- $desc = date("D, d M Y H:i:s T",filemtime(get_filename(encode($match[1]))));\r
- \r
- if($rss==2)\r
- $items.= "<item rdf:about=\"http://".SERVER_NAME.PHP_SELF."?".rawurlencode($url)."\">\n";\r
- else\r
- $items.= "<item>\n";\r
- $items.= " <title>$title</title>\n";\r
- $items.= " <link>http://".SERVER_NAME.PHP_SELF."?".rawurlencode($url)."</link>\n";\r
- $items.= " <description>$desc</description>\n";\r
- $items.= "</item>\n\n";\r
- $rdf_li.= " <rdf:li rdf:resource=\"http://".SERVER_NAME.PHP_SELF."?".rawurlencode($url)."\"/>\n";\r
-\r
- }\r
-\r
- $cnt++;\r
- }\r
-\r
- if($rss==1)\r
- {\r
-?>\r
-<?='<?xml version="1.0" encoding="UTF-8"?>'?>\r
-\r
-\r
-<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"\r
- "http://my.netscape.com/publish/formats/rss-0.91.dtd">\r
-\r
-<rss version="0.91">\r
-\r
-<channel>\r
-<title><?=$page_title?></title>\r
-<link><?="http://".SERVER_NAME.PHP_SELF."?$whatsnew"?></link>\r
-<description>PukiWiki RecentChanges</description>\r
-<language>ja</language>\r
-\r
-<?=$items?>\r
-</channel>\r
-</rss>\r
-<?\r
- }\r
- else if($rss==2)\r
- {\r
-?>\r
-<?='<?xml version="1.0" encoding="utf-8"?>'?>\r
-\r
-\r
-<rdf:RDF \r
- xmlns="http://purl.org/rss/1.0/"\r
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" \r
- xml:lang="ja">\r
-\r
- <channel rdf:about="<?="http://".SERVER_NAME.PHP_SELF."?rss"?>">\r
- <title><?=$page_title?></title>\r
- <link><?="http://".SERVER_NAME.PHP_SELF."?$whatsnew"?></link>\r
- <description>PukiWiki RecentChanges</description>\r
- <items>\r
- <rdf:Seq>\r
-<?=$rdf_li?>\r
- </rdf:Seq>\r
- </items>\r
- </channel>\r
-\r
-<?=$items?>\r
-</rdf:RDF>\r
-<?\r
- }\r
-}\r
-?>\r
+<?php
+// PukiWiki - Yet another WikiWikiWeb clone.
+// $Id: pukiwiki.php,v 1.39 2004/09/20 00:48:34 henoheno Exp $
+
+/////////////////////////////////////////////////
+// Error reporting
+
+// error_reporting(0): // Nothing
+error_reporting(E_ERROR | E_PARSE); // Avoid E_WARNING, E_NOTICE, etc
+// error_reporting(E_ALL);
+
+/////////////////////////////////////////////////
+// Directory definition
+// (Ended with a slash like '../path/to/pkwk/', or '')
+define('DATA_HOME', '');
+define('LIB_DIR', 'lib/');
+
+/////////////////////////////////////////////////
+require(LIB_DIR . 'pukiwiki.php');
+?>