OSDN Git Service

MASUI'z Edition first beta release masui1_3_1b1
authormasui <masui>
Fri, 21 Jun 2002 05:21:46 +0000 (14:21 +0900)
committermasui <masui>
Fri, 21 Jun 2002 05:21:46 +0000 (14:21 +0900)
-split program files pukiwiki.php -> *.php
-add new plugins
-update plugins
-fix & update

40 files changed:
backup.php [new file with mode: 0644]
devel/make_funclist.sh [new file with mode: 0644]
en.lng
file.php [new file with mode: 0644]
func.php [new file with mode: 0644]
html.php [new file with mode: 0644]
init.php [new file with mode: 0644]
ja.lng
plugin.php [new file with mode: 0644]
plugin/aname.inc.php
plugin/anchor.inc.php [new file with mode: 0644]
plugin/article.inc.php [new file with mode: 0644]
plugin/attach.inc.php
plugin/calendar.inc.php
plugin/calendar2.inc.php [new file with mode: 0644]
plugin/calendar_edit.inc.php
plugin/calendar_read.inc.php
plugin/comment.inc.php
plugin/counter.inc.php [new file with mode: 0644]
plugin/img.inc.php [new file with mode: 0644]
plugin/insert.inc.php [new file with mode: 0644]
plugin/lookup.inc.php
plugin/ls.inc.php [new file with mode: 0644]
plugin/memo.inc.php [new file with mode: 0644]
plugin/newpage.inc.php [new file with mode: 0644]
plugin/online.inc.php
plugin/readme.ja.txt
plugin/recent.inc.php [new file with mode: 0644]
plugin/source.inc.php [new file with mode: 0644]
plugin/update.inc.php [new file with mode: 0644]
plugin/version.inc.php
plugin/vote.inc.php [new file with mode: 0644]
pukiwiki.ini.php
pukiwiki.php
readme.txt
rss.php [new file with mode: 0644]
skin/pukiwiki.skin.en.php [moved from pukiwiki.skin.en.php with 100% similarity]
skin/pukiwiki.skin.ja.php [moved from pukiwiki.skin.ja.php with 82% similarity]
skin/pukiwiki.skin.php [moved from pukiwiki.skin.php with 91% similarity]
template.php [new file with mode: 0644]

diff --git a/backup.php b/backup.php
new file mode 100644 (file)
index 0000000..12cf613
--- /dev/null
@@ -0,0 +1,238 @@
+<?
+// PukiWiki - Yet another WikiWikiWeb clone.
+// $Id: backup.php,v 1.1 2002/06/21 05:21:46 masui Exp $
+/////////////////////////////////////////////////
+
+// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤òºîÀ®¤¹¤ë
+function make_backup($filename,$body,$oldtime)
+{
+       global $splitter,$cycle,$maxage;
+       $aryages = array();
+       $arystrout = array();
+
+       if(function_exists(gzfile))
+               $filename = str_replace(".txt",".gz",$filename);
+
+       $realfilename = BACKUP_DIR.$filename;
+
+       if(time() - @filemtime($realfilename) > (60 * 60 * $cycle))
+       {
+               $aryages = read_backup($filename);
+               if(count($aryages) >= $maxage)
+               {
+                       array_shift($aryages);
+               }
+               
+               foreach($aryages as $lines)
+               {
+                       foreach($lines as $key => $line)
+                       {
+                               if($key && $key == "timestamp")
+                               {
+                                       $arystrout[] = "$splitter " . rtrim($line);
+                               }
+                               else
+                               {
+                                       $arystrout[] = rtrim($line);
+                               }
+                       }
+               }
+
+               $strout = join("\n",$arystrout);
+               if(!preg_match("/\n$/",$strout) && trim($strout)) $strout .= "\n";
+
+               $body = "$splitter " . $oldtime . "\n" . $body;
+               if(!preg_match("/\n$/",$body)) $body .= "\n";
+
+               $fp = backup_fopen($realfilename,"w");
+               backup_fputs($fp,$strout);
+               backup_fputs($fp,$body);
+               backup_fclose($fp);
+       }
+       
+       return true;
+}
+
+// ÆÃÄê¤ÎÀ¤Âå¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤ò¼èÆÀ
+function get_backup($age,$filename)
+{
+       $aryages = read_backup($filename);
+       
+       foreach($aryages as $key => $lines)
+       {
+               if($key != $age) continue;
+               foreach($lines as $key => $line)
+               {
+                       if($key && $key == "timestamp") continue;
+                       $retvars[] = $line;
+               }
+       }
+
+       return $retvars;
+}
+
+// ¥Ð¥Ã¥¯¥¢¥Ã¥×¾ðÊó¤òÊÖ¤¹
+function get_backup_info($filename)
+{
+       global $splitter;
+       $lines = array();
+       $retvars = array();
+       $lines = backup_file(BACKUP_DIR.$filename);
+
+       if(!is_array($lines)) return array();
+
+       $age = 0;
+       foreach($lines as $line)
+       {
+               preg_match("/^$splitter\s(\d+)$/",trim($line),$match);
+               if($match[1])
+               {
+                       $age++;
+                       $retvars[$age] = $match[1];
+               }
+       }
+       
+       return $retvars;
+}
+
+// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿Á´ÂΤò¼èÆÀ
+function read_backup($filename)
+{
+       global $splitter;
+       $lines = array();
+       $lines = backup_file(BACKUP_DIR.$filename);
+
+       if(!is_array($lines)) return array();
+
+       $age = 0;
+       foreach($lines as $line)
+       {
+               preg_match("/^$splitter\s(\d+)$/",trim($line),$match);
+               if($match[1])
+               {
+                       $age++;
+                       $retvars[$age]["timestamp"] = $match[1] . "\n";
+               }
+               else
+               {
+                       $retvars[$age][] = $line;
+               }
+       }
+
+       return $retvars;
+}
+
+// ¥Ð¥Ã¥¯¥¢¥Ã¥×°ìÍ÷¤Î¼èÆÀ
+function get_backup_list($_page="")
+{
+       global $script,$date_format,$time_format,$weeklabels,$cantedit;
+       global $_msg_backuplist,$_msg_diff,$_msg_nowdiff,$_msg_source;
+
+       $ins_date = date($date_format,$val);
+       $ins_time = date($time_format,$val);
+       $ins_week = "(".$weeklabels[date("w",$val)].")";
+       $ins = "$ins_date $ins_week $ins_time";
+
+       if (($dir = @opendir(BACKUP_DIR)) && !$_page)
+       {
+               while($file = readdir($dir))
+               {
+                       if(function_exists(gzopen))
+                               $file = str_replace(".txt",".gz",$file);
+
+                       if($file == ".." || $file == ".") continue;
+                       $page = decode(trim(preg_replace("/(\.txt)|(\.gz)$/"," ",$file)));
+                       if(in_array($page,$cantedit)) continue;
+                       $page_url = rawurlencode($page);
+                       $name = $page;
+                       $name = strip_bracket($name);
+                       if(is_page($page))
+                               $vals[$name]["link"] = "<li><a href=\"$script?$page_url\">$name</a></li>";
+                       else
+                               $vals[$name]["link"] = "<li>$name</li>";
+                       $vals[$name]["name"] = $page;
+               }
+               closedir($dir);
+               $vals = list_sort($vals);
+               $retvars[] = "<ul>";
+       }
+       else
+       {
+               $page_url = rawurlencode($_page);
+               $name = strip_bracket($_page);
+               $vals[$name]["link"] = "";
+               $vals[$name]["name"] = $_page;
+               $retvars[] = "<ul>";
+               $retvars[] .= "<li><a href=\"$script?cmd=backup\">$_msg_backuplist</a></li>\n";
+       }
+       
+       
+       foreach($vals as $page => $line)
+       {
+               $arybackups = get_backup_info(encode($line["name"]).".txt");
+               $page_url = rawurlencode($line["name"]);
+               if(count($arybackups)) $line["link"] .= "\n<ul>\n";
+               foreach($arybackups as $key => $val)
+               {
+                       $ins_date = date($date_format,$val);
+                       $ins_time = date($time_format,$val);
+                       $ins_week = "(".$weeklabels[date("w",$val)].")";
+                       $backupdate = "($ins_date $ins_week $ins_time)";
+                       if(!$_page)
+                       {
+                               $line["link"] .= "<li><a href=\"$script?cmd=backup&page=$page_url&age=$key\">$key $backupdate</a></li>\n";
+                       }
+                       else
+                       {
+                               $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";
+                       }
+               }
+               if(count($arybackups)) $line["link"] .= "</ul>";
+               $retvars[] = $line["link"];
+       }
+       $retvars[] = "</ul>";
+       
+       return join("\n",$retvars);
+}
+
+// zlib´Ø¿ô¤¬»ÈÍѤǤ­¤ì¤Ð¡¢°µ½Ì¤·¤Æ»ÈÍѤ¹¤ë¤¿¤á¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à´Ø¿ô
+function backup_fopen($filename,$mode)
+{
+       if(function_exists(gzopen))
+               return gzopen(str_replace(".txt",".gz",$filename),$mode);
+       else
+               return fopen($filename,$mode);
+}
+
+function backup_fputs($zp,$str)
+{
+       if(function_exists(gzputs))
+               return gzputs($zp,$str);
+       else
+               return fputs($zp,$str);
+}
+
+function backup_fclose($zp)
+{
+       if(function_exists(gzclose))
+               return gzclose($zp);
+       else
+               return fclose($zp);
+}
+
+function backup_file($filename)
+{
+       if(function_exists(gzfile))
+               return @gzfile(str_replace(".txt",".gz",$filename));
+       else
+               return @file($filename);
+}
+
+function backup_delete($filename)
+{
+       if(function_exists(gzopen))
+               return @unlink(str_replace(".txt",".gz",$filename));
+       else
+               return @unlink($filename);
+}
+?>
diff --git a/devel/make_funclist.sh b/devel/make_funclist.sh
new file mode 100644 (file)
index 0000000..29e4d4e
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+grep -B1 "^function" ../*.php | sed -e "s/^\.\.\///" | sed "s/[a-z]*\.php\:function[ \t]*//"  
diff --git a/en.lng b/en.lng
index 5025eaf..4cf6876 100644 (file)
--- a/en.lng
+++ b/en.lng
@@ -79,6 +79,7 @@ $_btn_notchangetimestamp = 'Not change timestamp';
 $_btn_addtop = 'Add to top of page';
 $_btn_template = 'Page for use template';
 $_btn_load = 'Load';
+$_btn_edit = 'Edit';
 
 ///////////////////////////////////////
 // plug-in message
@@ -87,6 +88,7 @@ $_btn_load = 'Load';
 // comment
 $_btn_name = 'Name: ';
 $_btn_comment = 'Submit';
+$_msg_comment = 'Comment: ';
 
 ///////////////////////////////////////
 // attach file
@@ -94,6 +96,7 @@ $_title_uploaded = 'Uploaded file to $1';
 $_title_file_deleted = 'Deleted file in $1';
 $_title_notfound = 'Not found the file in $1';
 $_title_upload = 'Upload at $1';
+$_title_confirm_delete = 'Delete %s';
 
 $_msg_noparm = 'Cannot upload/delete in $1';
 $_msg_already_exists = 'Already exists file in $1';
@@ -102,6 +105,16 @@ $_msg_maxsize = 'Maximum file size is $1.';
 $_msg_delete = 'Delete \'$1\'';
 $_msg_exceed = 'File size is too big to $1';
 $_msg_attachfile = 'Attach file';
+$_msg_confirm_delete = '<center>comfirm Delete '%s'<br>%s</center>';
 $_btn_upload = 'Upload';
 $_btn_delete = 'Del';
+
+///////////////////////////////////////
+// newpage
+$_msg_newpage = 'new page';
+
+///////////////////////////////////////
+// recent
+$_recent_plugin_frame = '<span align="center"><h5 class="side_label">recent(%d)</h5></span><small>%s</small>';
+$_recent_plugin_li = '.';
 ?>
diff --git a/file.php b/file.php
new file mode 100644 (file)
index 0000000..5a28c7f
--- /dev/null
+++ b/file.php
@@ -0,0 +1,223 @@
+<?
+// PukiWiki - Yet another WikiWikiWeb clone.
+// $Id: file.php,v 1.1 2002/06/21 05:21:46 masui Exp $
+/////////////////////////////////////////////////
+
+// ¥½¡¼¥¹¤ò¼èÆÀ
+function get_source($page)
+{      
+  if(page_exists($page)) {
+     return file(get_filename(encode($page)));
+  }
+
+  return array();
+}
+
+// ¥Ú¡¼¥¸¤¬Â¸ºß¤¹¤ë¤«¡©
+function page_exists($page)
+{
+       return file_exists(get_filename(encode($page)));
+}
+
+// ¥Õ¥¡¥¤¥ë¤Ø¤Î½ÐÎÏ
+function file_write($dir,$page,$str)
+{
+       global $post,$update_exec;
+
+       if($str == "")
+       {
+               @unlink($dir.encode($page).".txt");
+       }
+       else
+       {
+               if($post["notimestamp"] && is_page($page))
+               {
+                       $timestamp = @filemtime($dir.encode($page).".txt");
+               }
+               $fp = fopen($dir.encode($page).".txt","w");
+               while(!flock($fp,LOCK_EX));
+               fputs($fp,$str);
+               flock($fp,LOCK_UN);
+               fclose($fp);
+               if($timestamp)
+                       touch($dir.encode($page).".txt",$timestamp);
+       }
+       
+       if(!$timestamp)
+               put_lastmodified();
+
+       if($update_exec)
+       {
+               system($update_exec." > /dev/null &");
+       }
+}
+
+// ºÇ½ª¹¹¿·¥Ú¡¼¥¸¤Î¹¹¿·
+function put_lastmodified()
+{
+       global $script,$maxshow,$whatsnew,$date_format,$time_format,$weeklabels,$post,$non_list;
+
+       if($post["notimestamp"]) return;
+
+       $files = get_existpages();
+       foreach($files as $page) {
+               if($page == $whatsnew) continue;
+               if(preg_match("/$non_list/",$page)) continue;
+
+               if(file_exists(get_filename(encode($page))))
+                       {
+                       $page_url = rawurlencode($page);
+                       $lastmodtime = filemtime(get_filename(encode($page)));
+                       $lastmod = date($date_format,$lastmodtime)
+                                . " (" . $weeklabels[date("w",$lastmodtime)] . ") "
+                                . date($time_format,$lastmodtime);
+                       $putval[$lastmodtime][] = "-$lastmod - $page";
+               }
+       }
+       
+       $cnt = 1;
+       krsort($putval);
+       $fp = fopen(get_filename(encode($whatsnew)),"w");
+       flock($fp,LOCK_EX);
+       foreach($putval as $pages)
+       {
+               foreach($pages as $page)
+               {
+                       fputs($fp,$page."\n");
+                       $cnt++;
+                       if($cnt > $maxshow) break;
+               }
+               if($cnt > $maxshow) break;
+       }
+       flock($fp,LOCK_EX);
+       fclose($fp);
+}
+
+// ¥Õ¥¡¥¤¥ë̾¤òÆÀ¤ë(¥¨¥ó¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ëɬÍ×Í­¤ê)
+function get_filename($pagename)
+{
+       return DATA_DIR.$pagename.".txt";
+}
+
+// ¥Ú¡¼¥¸¤¬Â¸ºß¤¹¤ë¤«¤·¤Ê¤¤¤«
+function is_page($page,$reload=false)
+{
+       global $InterWikiName,$_ispage;
+
+       if(($_ispage[$page] === true || $_ispage[$page] === false) && !$reload) return $_ispage[$page];
+
+       if(preg_match("/($InterWikiName)/",$page))
+               $_ispage[$page] = false;
+       else if(!page_exists($page))
+               $_ispage[$page] = false;
+       else
+               $_ispage[$page] = true;
+       
+       return $_ispage[$page];
+}
+
+// ¥Ú¡¼¥¸¤¬ÊÔ½¸²Äǽ¤«
+function is_editable($page)
+{
+       global $BracketName,$WikiName,$InterWikiName,$cantedit,$_editable;
+
+       if($_editable === true || $_editable === false) return $_editable;
+
+       if(preg_match("/^$InterWikiName$/",$page))
+               $_editable = false;
+       elseif(!preg_match("/^$BracketName$/",$page) && !preg_match("/^$WikiName$/",$page))
+               $_editable = false;
+       else if(in_array($page,$cantedit))
+               $_editable = false;
+       else
+               $_editable = true;
+       
+       return $_editable;
+}
+
+// ¥Ú¡¼¥¸¤¬Åà·ë¤µ¤ì¤Æ¤¤¤ë¤«
+function is_freeze($page)
+{
+       global $_freeze;
+
+       if(!is_page($page)) return false;
+       if($_freeze === true || $_freeze === false) return $_freeze;
+
+       $lines = get_source($page);
+       
+       if($lines[0] == "#freeze\n")
+               $_freeze = true;
+       else
+               $_freeze = false;
+       
+       return $_freeze;
+}
+
+// »ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤Î·Ð²á»þ¹ï
+function get_pg_passage($page,$sw=true)
+{
+       global $_pg_passage,$show_passage;
+
+       if(!$show_passage) return "";
+
+       if(isset($_pg_passage[$page]))
+       {
+               if($sw)
+                       return $_pg_passage[$page]["str"];
+               else
+                       return $_pg_passage[$page]["label"];
+       }
+       if($pgdt = @filemtime(get_filename(encode($page))))
+       {
+               $pgdt = UTIME - $pgdt;
+               if(ceil($pgdt / 60) < 60)
+                       $_pg_passage[$page]["label"] = "(".ceil($pgdt / 60)."m)";
+               else if(ceil($pgdt / 60 / 60) < 24)
+                       $_pg_passage[$page]["label"] = "(".ceil($pgdt / 60 / 60)."h)";
+               else
+                       $_pg_passage[$page]["label"] = "(".ceil($pgdt / 60 / 60 / 24)."d)";
+               
+               $_pg_passage[$page]["str"] = "<small>".$_pg_passage[$page]["label"]."</small>";
+       }
+       else
+       {
+               $_pg_passage[$page]["label"] = "";
+               $_pg_passage[$page]["str"] = "";
+       }
+
+       if($sw)
+               return $_pg_passage[$page]["str"];
+       else
+               return $_pg_passage[$page]["label"];
+}
+
+// Last-Modified ¥Ø¥Ã¥À
+function header_lastmod($page)
+{
+       global $lastmod;
+       
+       if($lastmod && is_page($page))
+       {
+               header("Last-Modified: ".gmdate("D, d M Y H:i:s", filemtime(get_filename(encode($page))))." GMT");
+       }
+}
+
+// Á´¥Ú¡¼¥¸Ì¾¤òÇÛÎó¤Ë
+function get_existpages()
+{
+       $aryret = array();
+
+       if ($dir = @opendir(DATA_DIR))
+       {
+               while($file = readdir($dir))
+               {
+                       if($file == ".." || $file == "." || strstr($file,".txt")===FALSE) continue;
+                       $page = decode(trim(preg_replace("/\.txt$/"," ",$file)));
+                       array_push($aryret,$page);
+               }
+               closedir($dir);
+       }
+       
+       return $aryret;
+}
+?>
diff --git a/func.php b/func.php
new file mode 100644 (file)
index 0000000..819762c
--- /dev/null
+++ b/func.php
@@ -0,0 +1,340 @@
+<?\r
+// PukiWiki - Yet another WikiWikiWeb clone.\r
+// $Id: func.php,v 1.1 2002/06/21 05:21:46 masui Exp $\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
+       $files = get_existpages();\r
+       foreach($files as $page) {\r
+               $cnt++;\r
+               if($page == $whatsnew) continue;\r
+               if($page == $vars["page"] && $non_format) continue;\r
+               $data[$page] = get_source($page);\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 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
+// InterWikiName List ¤Î²ò¼á(ÊÖÃÍ:£²¼¡¸µÇÛÎó)\r
+function open_interwikiname_list()\r
+{\r
+       global $interwiki;\r
+       \r
+       $retval = array();\r
+       $aryinterwikiname = get_source($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
+// [[ ]] ¤ò¼è¤ê½ü¤¯\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
+// ¥Æ¥­¥¹¥ÈÀ°·Á¥ë¡¼¥ë¤òɽ¼¨¤¹¤ë\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 getmicrotime()\r
+{\r
+       list($usec, $sec) = explode(" ",microtime());\r
+       return ((float)$sec + (float)$usec);\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_lines2 = array_diff($lines2,$lines1);\r
+       $diff_lines = array_merge($diff_lines2,array_diff($lines1,$lines2));\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
+// º¹Ê¬¤ÎºîÀ®\r
+function do_update_diff($oldstr,$newstr)\r
+{\r
+       $oldlines = split("\n",$oldstr);\r
+       $newlines = split("\n",$newstr);\r
+       \r
+       $retdiff = $props = array();\r
+       $auto = true;\r
+       \r
+       foreach($newlines as $newline) {\r
+         $flg = false;\r
+         $cnt = 0;\r
+         foreach($oldlines as $oldline) {\r
+           if($oldline == $newline) {\r
+             if($cnt>0) {\r
+               for($i=0; $i<$cnt; ++$i) {\r
+                 array_push($retdiff,array_shift($oldlines));\r
+                 array_push($props,'! ');\r
+                 $auto = false;\r
+               }\r
+             }\r
+             array_push($retdiff,array_shift($oldlines));\r
+             array_push($props,'');\r
+             $flg = true;\r
+             break;\r
+           }\r
+           $cnt++;\r
+         }\r
+         if(!$flg) {\r
+           array_push($retdiff,$newline);\r
+           array_push($props,'+ ');\r
+         }\r
+       }\r
+       foreach($oldlines as $oldline) {\r
+         array_push($retdiff,$oldline);\r
+         array_push($props,'! ');\r
+         $auto = false;\r
+       }\r
+       if($auto) {\r
+         return array(join("\n",$retdiff),$auto);\r
+       }\r
+\r
+       $ret = '';\r
+       foreach($retdiff as $line) {\r
+         $ret .= array_shift($props) . $line . "\n";\r
+       }\r
+       return array($ret,$auto);\r
+}\r
+?>\r
diff --git a/html.php b/html.php
new file mode 100644 (file)
index 0000000..23756f9
--- /dev/null
+++ b/html.php
@@ -0,0 +1,760 @@
+<?
+// PukiWiki - Yet another WikiWikiWeb clone.
+// $Id: html.php,v 1.1 2002/06/21 05:21:46 masui Exp $
+/////////////////////////////////////////////////
+
+// ËÜʸ¤ò¥Ú¡¼¥¸Ì¾¤«¤é½ÐÎÏ
+function catbodyall($page,$title="",$pg="")
+{
+       if($title === "") $title = strip_bracket($page);
+       if($pg === "") $pg = make_search($page);
+
+       $body = join("",get_source($page));
+       $body = convert_html($body);
+
+       header_lastmod($vars["page"]);
+       catbody($title,$pg,$body);
+       die();
+}
+
+// ËÜʸ¤ò½ÐÎÏ
+function catbody($title,$page,$body)
+{
+       global $script,$vars,$arg,$do_backup,$modifier,$modifierlink,$defaultpage,$whatsnew,$hr;
+       global $date_format,$weeklabels,$time_format,$longtaketime,$related_link;
+       global $HTTP_SERVER_VARS,$cantedit;
+
+       if($vars["page"] && !arg_check("backup") && $vars["page"] != $whatsnew)
+       {
+               $is_page = 1;
+       }
+
+       $link_add = "$script?cmd=add&page=".rawurlencode($vars["page"]);
+       $link_edit = "$script?cmd=edit&page=".rawurlencode($vars["page"]);
+       $link_diff = "$script?cmd=diff&page=".rawurlencode($vars["page"]);
+       $link_top = "$script?$defaultpage";
+       $link_list = "$script?cmd=list";
+       $link_filelist = "$script?cmd=filelist";
+       $link_search = "$script?cmd=search";
+       $link_whatsnew = "$script?$whatsnew";
+       $link_backup = "$script?cmd=backup&page=".rawurlencode($vars["page"]);
+       $link_help = "$script?cmd=help";
+
+       if(is_page($vars["page"]) && $is_page)
+       {
+               $fmt = @filemtime(get_filename(encode($vars["page"])));
+       }
+
+       if(is_page($vars["page"]) && $related_link && $is_page && !arg_check("edit") && !arg_check("freeze") && !arg_check("unfreeze"))
+       {
+               $related = make_related($vars["page"],false);
+       }
+
+       if(is_page($vars["page"]) && !in_array($vars["page"],$cantedit) && !arg_check("backup") && !arg_check("edit") && !$vars["preview"])
+       {
+               $is_read = TRUE;
+       }
+
+       //if(!$longtaketime)
+               $longtaketime = getmicrotime() - MUTIME;
+       $taketime = sprintf("%01.03f",$longtaketime);
+
+       require(SKIN_FILE);
+}
+
+// ¥Æ¥­¥¹¥ÈËÜÂΤòHTML¤ËÊÑ´¹¤¹¤ë
+function convert_html($string)
+{
+       global $result,$saved,$hr,$script,$page,$vars,$top;
+       global $note_id,$foot_explain,$digest,$note_hr;
+       global $user_rules,$str_rules,$line_rules,$strip_link_wall;
+
+       global $longtaketime;
+
+       $string = rtrim($string);
+       $string = preg_replace("/(\x0D\x0A)/","\n",$string);
+       $string = preg_replace("/(\x0D)/","\n",$string);
+       $string = preg_replace("/(\x0A)/","\n",$string);
+
+       $start_mtime = getmicrotime();
+
+       $digest = md5(@join("",get_source($vars["page"])));
+
+       $content_id = 0;
+       $user_rules = array_merge($str_rules,$line_rules);
+
+       $result = array();
+       $saved = array();
+       $arycontents = array();
+
+       $string = preg_replace("/^#freeze\n/","",$string);
+
+       $lines = split("\n", $string);
+       $note_id = 1;
+       $foot_explain = array();
+
+       $table = 0;
+
+       if(preg_match("/#contents/",$string))
+               $top_link = "<a href=\"#contents\">$top</a>";
+
+       foreach ($lines as $line)
+       {
+               if(!preg_match("/^\/\/(.*)/",$line,$comment_out) && $table != 0)
+               {
+                       if(!preg_match("/^\|(.+)\|$/",$line,$out))
+                               array_push($result, "</table>");
+                       if(!$out[1] || $table != count(explode("|",$out[1])))
+                               $table = 0;
+               }
+
+               $comment_out = $comment_out[1];
+
+               if(preg_match("/^(\*{1,3})(.*)/",$line,$out))
+               {
+                       $result = array_merge($result,$saved); $saved = array();
+                       $str = inline($out[2]);
+                       
+                       $level = strlen($out[1]) + 1;
+                       
+                       array_push($result, "<h$level><a name=\"content:$content_id\">$str</a> $top_link</h$level>");
+                       $arycontents[] = str_repeat("-",$level-1)."<a href=\"#content:$content_id\">".strip_htmltag($str)."</a>\n";
+                       $content_id++;
+               }
+               else if(preg_match("/^(-{1,4})(.*)/",$line,$out))
+               {
+                       if(strlen($out[1]) == 4)
+                       {
+                               $result = array_merge($result,$saved); $saved = array();
+                               array_push($result, $hr);
+                       }
+                       else
+                       {
+                               back_push('ul', strlen($out[1]));
+                               array_push($result, '<li>' . inline($out[2]) . '</li>');
+                       }
+               }
+               else if (preg_match("/^:([^:]+):(.*)/",$line,$out))
+               {
+                       back_push('dl', 1);
+                       array_push($result, '<dt>' . inline($out[1]) . '</dt>', '<dd>' . inline($out[2]) . '</dd>');
+               }
+               else if(preg_match("/^(>{1,3})(.*)/",$line,$out))
+               {
+                       back_push('blockquote', strlen($out[1]));
+                       array_push($result, ltrim(inline($out[2])));
+               }
+               else if (preg_match("/^\s*$/",$line,$out))
+               {
+                       $result = array_merge($result,$saved); $saved = array();
+                       //array_unshift($saved, "</p>");
+                       array_push($result, "<p>");
+               }
+               else if(preg_match("/^(\s+.*)/",$line,$out))
+               {
+                       back_push('pre', 1);
+                       array_push($result, htmlspecialchars($out[1],ENT_NOQUOTES));
+               }
+               else if(preg_match("/^\|(.+)\|$/",$line,$out))
+               {
+                       $arytable = explode("|",$out[1]);
+
+                       if(!$table)
+                       {
+                               $result = array_merge($result,$saved); $saved = array();
+                               array_push($result,"<table class=\"style_table\" cellspacing=\"1\" border=\"0\">");
+                               $table = count($arytable);
+                       }
+
+                       array_push($result,"<tr>");
+                       foreach($arytable as $td)
+                       {
+                               array_push($result,"<td class=\"style_td\">");
+                               array_push($result,ltrim(inline($td)));
+                               array_push($result,"</td>");
+                       }
+                       array_push($result,"</tr>");
+
+               }
+               else if(strlen($comment_out) != 0)
+               {
+                       array_push($result," <!-- ".htmlspecialchars($comment_out)." -->");
+               }
+               else
+               {
+                       array_push($result, inline($line));
+               }
+       }
+       if($table) array_push($result, "</table>");
+
+       $result_last = $result = array_merge($result,$saved); $saved = array();
+
+       if($content_id != 0)
+       {
+               $result = array();
+               $saved = array();
+
+               foreach($arycontents as $line)
+               {
+                       if(preg_match("/^(-{1,3})(.*)/",$line,$out))
+                       {
+                               back_push('ul', strlen($out[1]));
+                               array_push($result, '<li>'.$out[2].'</li>');
+                       }
+               }
+               $result = array_merge($result,$saved); $saved = array();
+               
+               $contents = "<a name=\"contents\"></a>\n";
+               $contents .= join("\n",$result);
+               if($strip_link_wall)
+               {
+                       $contents = preg_replace("/\[\[([^\]]+)\]\]/","$1",$contents);
+               }
+       }
+
+       $result_last = inline2($result_last);
+       
+       $result_last = preg_replace("/^#contents/",$contents,$result_last);
+
+       $str = join("\n", $result_last);
+
+       if($foot_explain)
+       {
+               $str .= "\n";
+               $str .= "$note_hr\n";
+               //$str .= "<p>\n";
+               $str .= join("\n",inline2($foot_explain));
+               //$str .= "</p>\n";
+       }
+
+       $longtaketime = getmicrotime() - $start_mtime;
+
+       $str = preg_replace("/&((amp)|(quot)|(nbsp)|(lt)|(gt));/","&$1;",$str);
+
+       return $str;
+}
+
+// $tag¤Î¥¿¥°¤ò$level¥ì¥Ù¥ë¤Þ¤ÇµÍ¤á¤ë¡£
+function back_push($tag, $level)
+{
+       global $result,$saved;
+       
+       while (count($saved) > $level) {
+               array_push($result, array_shift($saved));
+       }
+       if ($saved[0] != "</$tag>") {
+               $result = array_merge($result,$saved); $saved = array();
+       }
+       while (count($saved) < $level) {
+               array_unshift($saved, "</$tag>");
+               array_push($result, "<$tag>");
+       }
+}
+
+// ¥ê¥ó¥¯¤ÎÉղ佤ξ
+function inline($line)
+{
+       $line = htmlspecialchars($line);
+
+       $line = preg_replace("/(
+
+                                       (\(\(([^\(\)]+)\)\))
+                                       |
+                                       (\(\((.+)\)\))
+
+                               )/ex","make_note(\"$1\")",$line);
+
+       return $line;
+}
+
+// ¥ê¥ó¥¯¤ÎÉղ佤ξ2
+function inline2($str)
+{
+       global $WikiName,$BracketName,$InterWikiName,$vars,$related,$related_link,$script;
+       $cnts_plain = array();
+       $cnts_plugin = array();
+       $arykeep = array();
+
+       for($cnt=0;$cnt<count($str);$cnt++)
+       {
+               if(preg_match("/^(\s)/",$str[$cnt]))
+               {
+                       $arykeep[$cnt] = $str[$cnt];
+                       $str[$cnt] = "";
+                       $cnts_plain[] = $cnt;
+               }
+               else if(preg_match("/^\#([^\(]+)\(?(.*)\)?$/",$str[$cnt],$match))
+               {
+                 if(exist_plugin_convert($match[1])) {
+                       $aryplugins[$cnt] = $str[$cnt];
+                       $str[$cnt] = "";
+                       $cnts_plugin[] = $cnt;
+                 }
+               }
+       }
+
+       $str = preg_replace("/'''([^']+?)'''/s","<i>$1</i>",$str);      // Italic
+
+       $str = preg_replace("/''([^']+?)''/s","<b>$1</b>",$str);        // Bold
+
+       $str = preg_replace("/
+               (
+                       (\[\[([^\]]+)\:(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\]\])
+                       |
+                       (\[(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\s([^\]]+)\])
+                       |
+                       (https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)
+                       |
+                       ([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)
+                       |
+                       (\[\[([^\]]+)\:([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\]\])
+                       |
+                       ($InterWikiName)
+                       |
+                       ($BracketName)
+                       |
+                       ($WikiName)
+               )/ex","make_link('$1')",$str);
+
+       $str = preg_replace("/#related/",make_related($vars["page"],true),$str);
+
+       $str = make_user_rules($str);
+
+       $aryplugins = preg_replace("/^\#([^\(]+)$/ex","do_plugin_convert('$1','$2')",$aryplugins);
+       $aryplugins = preg_replace("/^\#([^\(]+)\((.*)\)$/ex","do_plugin_convert('$1','$2')",$aryplugins);
+
+       $tmp = $str;
+       $str = preg_replace("/^#norelated$/","",$str);
+       if($tmp != $str)
+               $related_link = 0;
+
+       foreach($cnts_plain as $cnt)
+               $str[$cnt] = $arykeep[$cnt];
+
+       foreach($cnts_plugin as $cnt)
+               $str[$cnt] = $aryplugins[$cnt];
+
+       return $str;
+}
+
+// °ìÍ÷¤Î¼èÆÀ
+function get_list($withfilename)
+{
+       global $script,$list_index,$top,$non_list,$whatsnew;
+       global $_msg_symbol,$_msg_other;
+       
+       $retval = array();
+       $files = get_existpages();
+       foreach($files as $page) {
+               if(preg_match("/$non_list/",$page) && !$withfilename) continue;
+               if($page == $whatsnew) continue;
+               $page_url = rawurlencode($page);
+               $page2 = strip_bracket($page);
+               $pg_passage = get_pg_passage($page);
+               $retval[$page2] .= "<li><a href=\"$script?$page_url\">$page2</a>$pg_passage</li>\n";
+               if($withfilename)
+               {
+                       $retval[$page2] .= "<ul><li>$file</li></ul>\n";
+               }
+       }
+       
+       $retval = list_sort($retval);
+       
+       if($list_index)
+       {
+               $head_str = "";
+               $etc_sw = 0;
+               $symbol_sw = 0;
+               $top_link = "";
+               foreach($retval as $page => $link)
+               {
+                       $head = substr($page,0,1);
+                       if($head_str != $head && !$etc_sw)
+                       {
+                               $retval2[$page] = "";
+                               
+                               if(preg_match("/([A-Z])|([a-z])/",$head,$match))
+                               {
+                                       if($match[1])
+                                               $head_nm = "High:$head";
+                                       else
+                                               $head_nm = "Low:$head";
+                                       
+                                       if($head_str) $retval2[$page] = "</ul>\n";
+                                       $retval2[$page] .= "<li><a href=\"#top:$head_nm\" name=\"$head_nm\"><b>$head</b></a></li>\n<ul>\n";
+                                       $head_str = $head;
+                                       if($top_link) $top_link .= "|";
+                                       $top_link .= "<a href=\"#$head_nm\" name=\"top:$head_nm\"><b>&nbsp;".$head."&nbsp;</b></a>";
+                               }
+                               else if(preg_match("/[ -~]/",$head))
+                               {
+                                       if(!$symbol_sw)
+                                       {
+                                               if($head_str) $retval2[$page] = "</ul>\n";
+                                               $retval2[$page] .= "<li><a href=\"#top:symbol\" name=\"symbol\"><b>$_msg_symbol</b></a></li>\n<ul>\n";
+                                               $head_str = $head;
+                                               if($top_link) $top_link .= "|";
+                                               $top_link .= "<a href=\"#symbol\" name=\"top:symbol\"><b>$_msg_symbol</b></a>";
+                                               $symbol_sw = 1;
+                                       }
+                               }
+                               else
+                               {
+                                       if($head_str) $retval2[$page] = "</ul>\n";
+                                       $retval2[$page] .= "<li><a href=\"#top:etc\" name=\"etc\"><b>$_msg_other</b></a></li>\n<ul>\n";
+                                       $etc_sw = 1;
+                                       if($top_link) $top_link .= "|";
+                                       $top_link .= "<a href=\"#etc\" name=\"top:etc\"><b>$_msg_other</b></a>";
+                               }
+                       }
+                       $retval2[$page] .= $link;
+               }
+               $retval2[] = "</ul>\n";
+               
+               $top_link = "<div align=\"center\"><a name=\"top\">$top_link</a></div><br>\n";
+               
+               array_unshift($retval2,$top_link);
+       }
+       else
+       {
+               $retval2 = $retval;
+       }
+       
+       return join("",$retval2);
+}
+
+// ÊÔ½¸¥Õ¥©¡¼¥à¤Îɽ¼¨
+function edit_form($postdata,$page,$add=0)
+{
+       global $script,$rows,$cols,$hr,$vars,$function_freeze;
+       global $_btn_addtop,$_btn_preview,$_btn_update,$_btn_freeze,$_msg_help,$_btn_notchangetimestamp;
+       global $whatsnew,$_btn_template,$_btn_load,$non_list,$load_template_func;
+
+       $digest = md5(@join("",get_source($page)));
+
+       if($add)
+       {
+               $addtag = '<input type="hidden" name="add" value="true">';
+               $add_top = '<input type="checkbox" name="add_top" value="true"><small>'.$_btn_addtop.'</small>';
+       }
+
+       if($vars["help"] == "true")
+               $help = $hr.catrule();
+       else
+               $help = "<br>\n<ul><li><a href=\"$script?cmd=edit&help=true&page=".rawurlencode($page)."\">$_msg_help</a></ul></li>\n";
+
+       if($function_freeze)
+               $str_freeze = '<input type="submit" name="freeze" value="'.$_btn_freeze.'" accesskey="f">';
+
+       if($load_template_func)
+       {
+               $vals = array();
+
+               $files = get_existpages();
+               foreach($files as $pg_org) {
+                       if($pg_org == $whatsnew) continue;
+                       if(preg_match("/$non_list/",$pg_org)) continue;
+                       $name = strip_bracket($pg_org);
+                       $vals[$name] = "    <option value=\"$pg_org\">$name</option>";
+               }
+               @ksort($vals);
+               
+               $template = "   <select name=\"template_page\">\n"
+                          ."    <option value=\"\">-- $_btn_template --</option>\n"
+                          .join("\n",$vals)
+                          ."   </select>\n"
+                          ."   <input type=\"submit\" name=\"template\" value=\"$_btn_load\" accesskey=\"r\"><br>\n";
+
+               if($vars["refer"]) $refer = $vars["refer"]."\n\n";
+       }
+
+return '
+<form action="'.$script.'" method="post">
+<input type="hidden" name="page" value="'.$page.'">
+<input type="hidden" name="digest" value="'.$digest.'">
+'.$addtag.'
+<table cellspacing="3" cellpadding="0" border="0">
+ <tr>
+  <td colspan="2" align="right">
+'.$template.'
+  </td>
+ </tr>
+ <tr>
+  <td colspan="2" align="right">
+   <textarea name="msg" rows="'.$rows.'" cols="'.$cols.'" wrap="virtual">
+'.htmlspecialchars($refer.$postdata).'</textarea>
+  </td>
+ </tr>
+ <tr>
+  <td>
+   <input type="submit" name="preview" value="'.$_btn_preview.'" accesskey="p">
+   <input type="submit" name="write" value="'.$_btn_update.'" accesskey="s">
+   '.$add_top.'
+   <input type="checkbox" name="notimestamp" value="true"><small>'.$_btn_notchangetimestamp.'</small>
+  </td>
+  </form>
+  <form action="'.$script.'?cmd=freeze" method="post">
+   <input type="hidden" name="page" value="'.$vars["page"].'">
+  <td align="right">
+   '.$str_freeze.'
+  </td>
+  </form>
+ </tr>
+</table>
+' . $help;
+}
+
+// ´ØÏ¢¤¹¤ë¥Ú¡¼¥¸
+function make_related($page,$_isrule)
+{
+       global $related_str,$rule_related_str,$related,$_make_related,$vars;
+
+       $page_name = strip_bracket($vars["page"]);
+
+       if(!is_array($_make_related))
+       {
+               $aryrelated = do_search($page,"OR",1);
+
+               if(is_array($aryrelated))
+               {
+                       foreach($aryrelated as $key => $val)
+                       {
+                               $new_arylerated[$key.md5($val)] = $val;
+                       }
+               }
+
+               if(is_array($related))
+               {
+                       foreach($related as $key => $val)
+                       {
+                               $new_arylerated[$key.md5($val)] = $val;
+                       }
+               }
+
+               @krsort($new_arylerated);
+               $_make_related = @array_unique($new_arylerated);
+       }
+
+       if($_isrule)
+       {
+               if(is_array($_make_related))
+               {
+                       foreach($_make_related as $str)
+                       {
+                               preg_match("/<a\shref=\"([^\"]+)\">([^<]+)<\/a>(.*)/",$str,$out);
+                               
+                               if($out[3]) $title = " title=\"$out[2] $out[3]\"";
+                               
+                               $aryret[$out[2]] = "<a href=\"$out[1]\"$title>$out[2]</a>";
+                       }
+                       @ksort($aryret);
+               }
+       }
+       else
+       {
+               $aryret = $_make_related;
+       }
+
+       if($_isrule) $str = $rule_related_str;
+       else         $str = $related_str;
+
+       return @join($str,$aryret);
+}
+
+// Ãí¼á½èÍý
+function make_note($str)
+{
+       global $note_id,$foot_explain;
+
+       $str = preg_replace("/^\(\(/","",$str);
+       $str = preg_replace("/\)\)$/","",$str);
+
+       $str= str_replace("\\'","'",$str);
+
+       $str = make_user_rules($str);
+
+       $foot_explain[] = "<a name=\"notefoot:$note_id\" href=\"#notetext:$note_id\"><sup><small>*$note_id</small></sup></a> <small>$str</small><br />\n";
+       $note =  "<a name=\"notetext:$note_id\" href=\"#notefoot:$note_id\"><sup><small>*$note_id</small></sup></a>";
+       $note_id++;
+
+       return $note;
+}
+
+// ¥ê¥ó¥¯¤òÉղ乤ë
+function make_link($name)
+{
+       global $BracketName,$WikiName,$InterWikiName,$script,$link_target,$interwiki_target;
+       global $related,$show_passage,$vars,$defaultpage;
+
+       $aryconv_htmlspecial = array("&amp;","&lt;","&gt;");
+       $aryconv_html = array("&","<",">");
+
+       $page = $name;
+
+       if(preg_match("/^\[\[([^\]]+)\:((https?|ftp|news)([^\]]+))\]\]$/",$name,$match))
+       {
+               $match[2] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[2]);
+               return "<a href=\"$match[2]\" target=\"$link_target\">$match[1]</a>";
+       }
+       else if(preg_match("/^\[((https?|ftp|news)([^\]\s]+))\s([^\]]+)\]$/",$name,$match))
+       {
+               $match[1] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[1]);
+               return "<a href=\"$match[1]\" target=\"$link_target\">$match[4]</a>";
+       }
+       else if(preg_match("/^(https?|ftp|news).*?(\.gif|\.png|\.jpeg|\.jpg)?$/",$name,$match))
+       {
+               $name = str_replace($aryconv_htmlspecial,$aryconv_html,$name);
+               if($match[2])
+                       return "<a href=\"$name\" target=\"$link_target\"><img src=\"$name\" border=\"0\"></a>";
+               else
+                       return "<a href=\"$name\" target=\"$link_target\">$page</a>";
+       }
+       else if(preg_match("/^\[\[([^\]]+)\:([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\]\]/",$name,$match))
+       {
+               $match[1] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[1]);
+               $match[2] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[2]);
+
+               return "<a href=\"mailto:$match[2]\">$match[1]</a>";
+       }
+       else if(preg_match("/^([[:alnum:]\-_]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)/",$name))
+       {
+               $name = str_replace($aryconv_htmlspecial,$aryconv_html,$name);
+               return "<a href=\"mailto:$name\">$page</a>";
+       }
+       else if(preg_match("/^($InterWikiName)$/",str_replace($aryconv_htmlspecial,$aryconv_html,$name)))
+       {
+               $page = strip_bracket($page);
+               $percent_name = str_replace($aryconv_htmlspecial,$aryconv_html,$name);
+               $percent_name = rawurlencode($percent_name);
+
+               return "<a href=\"$script?$percent_name\" target=\"$interwiki_target\">$page</a>";
+       }
+       else if(preg_match("/^($BracketName)|($WikiName)$/",str_replace($aryconv_htmlspecial,$aryconv_html,$name)))
+       {
+               if(preg_match("/^([^>]+)>([^>]+)$/",strip_bracket(str_replace($aryconv_htmlspecial,$aryconv_html,$name)),$match))
+               {
+                       $page = $match[1];
+                       $name = $match[2];
+                       if(!preg_match("/^($BracketName)|($WikiName)$/",$page))
+                               $page = "[[$page]]";
+                       if(!preg_match("/^($BracketName)|($WikiName)$/",$name))
+                               $name = "[[$name]]";
+               }
+               
+               if(preg_match("/^\[\[\.\/([^\]]*)\]\]/",str_replace($aryconv_htmlspecial,$aryconv_html,$name),$match))
+               {
+                       if(!$match[1])
+                               $name = $vars["page"];
+                       else
+                               $name = "[[".strip_bracket($vars[page])."/$match[1]]]";
+               }
+               else if(preg_match("/^\[\[\..\/([^\]]+)\]\]/",str_replace($aryconv_htmlspecial,$aryconv_html,$name),$match))
+               {
+                       for($i=0;$i<substr_count($name,"../");$i++)
+                               $name = preg_replace("/(.+)\/([^\/]+)$/","$1",strip_bracket($vars["page"]));
+
+                       if(!preg_match("/^($BracketName)|($WikiName)$/",$name))
+                               $name = "[[$name]]";
+                       
+                       if($vars["page"]==$name)
+                               $name = "[[$match[1]]]";
+                       else
+                               $name = "[[".strip_bracket($name)."/$match[1]]]";
+               }
+               else if($name == "[[../]]")
+               {
+                       $name = preg_replace("/(.+)\/([^\/]+)$/","$1",strip_bracket($vars["page"]));
+                       
+                       if(!preg_match("/^($BracketName)|($WikiName)$/",$name))
+                               $name = "[[$name]]";
+                       if($vars["page"]==$name)
+                               $name = $defaultpage;
+               }
+               
+               $page = strip_bracket($page);
+               $pagename = strip_bracket($name);
+               $percent_name = str_replace($aryconv_htmlspecial,$aryconv_html,$name);
+               $percent_name = rawurlencode($percent_name);
+
+               $refer = rawurlencode($vars["page"]);
+               if(is_page($name))
+               {
+                       $str = get_pg_passage($name,false);
+                       $tm = @filemtime(get_filename(encode($name)));
+                       if($vars["page"] != $name)
+                               $related[$tm] = "<a href=\"$script?$percent_name\">$pagename</a>$str";
+                       if($show_passage)
+                       {
+                               $str_title = "title=\"$pagename $str\"";
+                       }
+                       return "<a href=\"$script?$percent_name\" $str_title>$page</a>";
+               }
+               else
+                       return "<span class=\"noexists\">$page<a href=\"$script?cmd=edit&page=$percent_name&refer=$refer\">?</a></span>";
+       }
+       else
+       {
+               return $page;
+       }
+}
+
+// ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë(¥½¡¼¥¹¤òÃÖ´¹¤¹¤ë)
+function user_rules_str($str)
+{
+       global $str_rules;
+
+       $arystr = split("\n",$str);
+
+       // ÆüÉÕ¡¦»þ¹ïÃÖ´¹½èÍý
+       foreach($arystr as $str)
+       {
+               if(substr($str,0,1) != " ")
+               {
+                       foreach($str_rules as $rule => $replace)
+                       {
+                               $str = preg_replace("/$rule/",$replace,$str);
+                       }
+               }
+               $retvars[] = $str;
+       }
+
+       return join("\n",$retvars);
+}
+
+// ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë(¥½¡¼¥¹¤ÏÃÖ´¹¤»¤º¥³¥ó¥Ð¡¼¥È)
+function make_user_rules($str)
+{
+       global $user_rules;
+
+       foreach($user_rules as $rule => $replace)
+       {
+               $str = preg_replace("/$rule/",$replace,$str);
+       }
+
+       return $str;
+}
+
+// HTML¥¿¥°¤ò¼è¤ê½ü¤¯
+function strip_htmltag($str)
+{
+       //$str = preg_replace("/<a[^>]+>\?<\/a>/","",$str);
+       return preg_replace("/<[^>]+>/","",$str);
+}
+
+// ¥Ú¡¼¥¸Ì¾¤«¤é¥Ú¡¼¥¸Ì¾¤ò¸¡º÷¤¹¤ë¥ê¥ó¥¯¤òºîÀ®
+function make_search($page)
+{
+       global $script,$WikiName;
+
+       $page = htmlspecialchars($page);
+       $name = strip_bracket($page);
+       $url = rawurlencode($page);
+
+       //WikiWikiWeb like...
+       //if(preg_match("/^$WikiName$/",$page))
+       //      $name = preg_replace("/([A-Z][a-z]+)/","$1 ",$name);
+
+       return "<a href=\"$script?cmd=search&word=$url\">$name</a> ";
+}
+
+?>
diff --git a/init.php b/init.php
new file mode 100644 (file)
index 0000000..4f0da72
--- /dev/null
+++ b/init.php
@@ -0,0 +1,103 @@
+<?
+// PukiWiki - Yet another WikiWikiWeb clone.
+// $Id: init.php,v 1.1 2002/06/21 05:21:46 masui Exp $
+/////////////////////////////////////////////////
+
+// ÀßÄê¥Õ¥¡¥¤¥ë¤Î¾ì½ê
+define("INI_FILE","./pukiwiki.ini.php");
+
+//** ½é´üÀßÄê **
+
+define("S_VERSION","1.3.1(MASUI'z Edition)");
+define("S_COPYRIGHT","<b>\"PukiWiki\" ".S_VERSION."</b> Copyright &copy; 2001,2002 <a href=\"mailto:sng@factage.com\">sng</a>, <a href=\"http://masui.net/pukiwiki/\">MASUI</a>. License is <a href=\"http://www.gnu.org/\">GNU/GPL</a>.");
+define("UTIME",time());
+define("HTTP_USER_AGENT",$HTTP_SERVER_VARS["HTTP_USER_AGENT"]);
+define("PHP_SELF",$HTTP_SERVER_VARS["PHP_SELF"]);
+define("SERVER_NAME",$HTTP_SERVER_VARS["SERVER_NAME"]);
+
+define("MUTIME",getmicrotime());
+
+$script = getenv('SCRIPT_NAME');
+
+$WikiName = '([A-Z][a-z]+([A-Z][a-z]+)+)';
+$BracketName = '\[\[(\[*[^\s\]]+?\]*)\]\]';
+$InterWikiName = '\[\[(\[*[^\s\]]+?\]*):(\[*[^>\]]+?\]*)\]\]';
+
+//** ÆþÎÏÃͤÎÀ°·Á **
+
+$post = $HTTP_POST_VARS;
+$get = $HTTP_GET_VARS;
+
+if($get["page"]) $get["page"] = rawurldecode($get["page"]);
+if($post["word"]) $post["word"] = rawurldecode($post["word"]);
+if($get["word"]) $get["word"] = rawurldecode($get["word"]);
+if(get_magic_quotes_gpc())
+{
+       if($get["page"]) $get["page"] = stripslashes($get["page"]);
+       if($post["page"]) $post["page"] = stripslashes($post["page"]);
+       if($get["word"]) $get["word"] = stripslashes($get["word"]);
+       if($post["word"]) $post["word"] = stripslashes($post["word"]);
+       if($post["msg"]) $post["msg"] = stripslashes($post["msg"]);
+}
+if($post["msg"])
+{
+       $post["msg"] = preg_replace("/<\/(textarea[^>]*)>/i", "&lt;/$1&gt;", $post["msg"]);
+       $post["msg"] = preg_replace("/(\x0D\x0A)/","\n",$post["msg"]);
+       $post["msg"] = preg_replace("/(\x0D)/","\n",$post["msg"]);
+       $post["msg"] = preg_replace("/(\x0A)/","\n",$post["msg"]);
+}
+
+$vars = array_merge($post,$get);
+$arg = rawurldecode($HTTP_SERVER_VARS["argv"][0]);
+
+//** ½é´ü½èÍý **
+
+$update_exec = "";
+
+// ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÆɹþ
+@require(INI_FILE);
+@require(LANG.".lng");
+
+// ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÊÑ¿ô¥Á¥§¥Ã¥¯
+$wrong_ini_file = "";
+if(!isset($rss_max)) $wrong_ini_file .= '$rss_max ';
+if(!isset($page_title)) $wrong_ini_file .= '$page_title ';
+if(!isset($note_hr)) $wrong_ini_file .= '$note_hr ';
+if(!isset($related_link)) $wrong_ini_file .= '$related_link ';
+if(!isset($show_passage)) $wrong_ini_file .= '$show_passage ';
+if(!isset($rule_related_str)) $wrong_ini_file .= '$rule_related_str ';
+if(!isset($load_template_func)) $wrong_ini_file .= '$load_template_func ';
+if(!defined("LANG")) $wrong_ini_file .= 'LANG ';
+if(!defined("PLUGIN_DIR")) $wrong_ini_file .= 'PLUGIN_DIR ';
+
+if(!is_writable(DATA_DIR))
+       die_message("DATA_DIR is not found or not writable.");
+if(!is_writable(DIFF_DIR))
+       die_message("DIFF_DIR is not found or not writable.");
+if($do_backup && !is_writable(BACKUP_DIR))
+       die_message("BACKUP_DIR is not found or not writable.");
+if(!file_exists(INI_FILE))
+       die_message("INI_FILE is not found.");
+if($wrong_ini_file)
+       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");
+//if(ini_get("register_globals") !== "0")
+//     die_message("Wrong PHP4 setting in 'register_globals',set value 'Off' to httpd.conf or .htaccess.");
+if(!file_exists(SKIN_FILE))
+       die_message("SKIN_FILE is not found.");
+if(!file_exists(LANG.".lng"))
+       die_message(LANG.".lng(language file) is not found.");
+
+if(!file_exists(get_filename(encode($defaultpage))))
+       touch(get_filename(encode($defaultpage)));
+if(!file_exists(get_filename(encode($whatsnew))))
+       touch(get_filename(encode($whatsnew)));
+if(!file_exists(get_filename(encode($interwiki))))
+       touch(get_filename(encode($interwiki)));
+
+$ins_date = date($date_format,UTIME);
+$ins_time = date($time_format,UTIME);
+$ins_week = "(".$weeklabels[date("w",UTIME)].")";
+
+$now = "$ins_date $ins_week $ins_time";
+
+?>
diff --git a/ja.lng b/ja.lng
index f55e136..d131d6d 100644 (file)
--- a/ja.lng
+++ b/ja.lng
@@ -39,8 +39,12 @@ $_msg_add = '
 $_msg_preview = '°Ê²¼¤Î¥×¥ì¥Ó¥å¡¼¤ò³Îǧ¤·¤Æ¡¢¤è¤±¤ì¤Ð¥Ú¡¼¥¸²¼Éô¤Î¥Ü¥¿¥ó¤Ç¹¹¿·¤·¤Æ¤¯¤À¤µ¤¤¡£';
 $_msg_preview_delete = '¡Ê¥Ú¡¼¥¸¤ÎÆâÍƤ϶õ¤Ç¤¹¡£¹¹¿·¤¹¤ë¤È¤³¤Î¥Ú¡¼¥¸¤Ïºï½ü¤µ¤ì¤Þ¤¹¡£¡Ë';
 $_msg_collided = '¤¢¤Ê¤¿¤¬¤³¤Î¥Ú¡¼¥¸¤òÊÔ½¸¤·¤Æ¤¤¤ë´Ö¤Ë¡¢Â¾¤Î¿Í¤¬Æ±¤¸¥Ú¡¼¥¸¤ò¹¹¿·¤·¤Æ¤·¤Þ¤Ã¤¿¤è¤¦¤Ç¤¹¡£<br>
-°Ê²¼¤Ë¤¢¤Ê¤¿¤ÎÊÔ½¸¤·¤¿¥Æ¥­¥¹¥È¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤¢¤Ê¤¿¤ÎÊÔ½¸ÆâÍƤ¬¼º¤ï¤ì¤Ê¤¤¤è¤¦¤Ë<br>
-¥¨¥Ç¥£¥¿¤Ë¥³¥Ô¡¼¡õ¥Ú¡¼¥¹¥È¤·¤Æ¤¯¤À¤µ¤¤¡£¤½¤Î¸å¤ÇºÇ¿·¤ÎÆâÍƤ«¤éºÆÅÙÊÔ½¸¤·Ä¾¤·¤Æ¤¯¤À¤µ¤¤¡£';
+º£²óÄɲä·¤¿¹Ô¤Ï +¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£<br>
+!¤Ç»Ï¤Þ¤ë¹Ô¤¬Êѹ¹¤µ¤ì¤¿²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£<br>
+!¤ä+¤Ç»Ï¤Þ¤ë¹Ô¤ò½¤Àµ¤·¤ÆºÆÅÙ¥Ú¡¼¥¸¤Î¹¹¿·¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£<br>';
+$_msg_collided_auto = '¤¢¤Ê¤¿¤¬¤³¤Î¥Ú¡¼¥¸¤òÊÔ½¸¤·¤Æ¤¤¤ë´Ö¤Ë¡¢Â¾¤Î¿Í¤¬Æ±¤¸¥Ú¡¼¥¸¤ò¹¹¿·¤·¤Æ¤·¤Þ¤Ã¤¿¤è¤¦¤Ç¤¹¡£<br>
+¼«Æ°¤Ç¾×Æͤò²ò¾Ã¤·¤Þ¤·¤¿¤¬¡¢ÌäÂ꤬¤¢¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£<br>
+³Îǧ¸å¡¢[¥Ú¡¼¥¸¤Î¹¹¿·]¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£<br>';
 $_msg_freezing = 'Åà·ëÍѤΥѥ¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£';
 $_msg_unfreezing = 'Åà·ë²ò½üÍѤΥѥ¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£';
 $_msg_invalidpass = '¥Ñ¥¹¥ï¡¼¥É¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡£';
@@ -78,6 +82,7 @@ $_btn_notchangetimestamp = '
 $_btn_addtop = '¥Ú¡¼¥¸¤Î¾å¤ËÄɲÃ';
 $_btn_template = '¿÷·Á¤È¤¹¤ë¥Ú¡¼¥¸';
 $_btn_load = 'Æɹþ';
+$_btn_edit = 'ÊÔ½¸';
 
 ///////////////////////////////////////
 // plug-in message
@@ -86,6 +91,10 @@ $_btn_load = '
 // comment
 $_btn_name = '¤ªÌ¾Á°: ';
 $_btn_comment = '¥³¥á¥ó¥È¤ÎÁÞÆþ';
+$_msg_comment = '¥³¥á¥ó¥È: ';
+$_title_comment_collided = '$1 ¤Ç¡Ú¹¹¿·¤Î¾×ÆÍ¡Û¤¬µ¯¤­¤Þ¤·¤¿';
+$_msg_comment_collided = '¤¢¤Ê¤¿¤¬¤³¤Î¥Ú¡¼¥¸¤òÊÔ½¸¤·¤Æ¤¤¤ë´Ö¤Ë¡¢Â¾¤Î¿Í¤¬Æ±¤¸¥Ú¡¼¥¸¤ò¹¹¿·¤·¤Æ¤·¤Þ¤Ã¤¿¤è¤¦¤Ç¤¹¡£<br>
+¥³¥á¥ó¥È¤òÄɲä·¤Þ¤·¤¿¤¬¡¢°ã¤¦°ÌÃÖ¤ËÁÞÆþ¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£<p>';
 
 ///////////////////////////////////////
 // attach file
@@ -93,6 +102,7 @@ $_title_uploaded = '$1 
 $_title_file_deleted = '$1 ¤«¤é¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤·¤¿';
 $_title_notfound = '$1 ¤Ë¤½¤Î¥Õ¥¡¥¤¥ë¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó';
 $_title_upload = '$1 ¤Ø¤ÎźÉÕ';
+$_title_confirm_delete = '%s ¤òºï½ü¤·¤Þ¤¹';
 
 $_msg_noparm = '$1 ¤Ø¤Ï¥¢¥Ã¥×¥í¡¼¥É¡¦ºï½ü¤Ï¤Ç¤­¤Þ¤»¤ó';
 $_msg_already_exists = '$1 ¤ËƱ¤¸¥Õ¥¡¥¤¥ë̾¤¬Â¸ºß¤·¤Þ¤¹';
@@ -101,7 +111,17 @@ $_msg_maxsize = '
 $_msg_delete = '\'$1\' ¤òºï½ü¤·¤Þ¤¹';
 $_msg_exceed = '$1 ¤Ø¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬Â礭¤¹¤®¤Þ¤¹';
 $_msg_attachfile = 'źÉÕ¥Õ¥¡¥¤¥ë';
+$_msg_confirm_delete = '<center>%s ¤òºï½ü¤·¤Þ¤¹¡£<br>%s</center>';
 
 $_btn_upload = '¥¢¥Ã¥×¥í¡¼¥É';
 $_btn_delete = 'ºï½ü';
+
+///////////////////////////////////////
+// newpage
+$_msg_newpage = '¥Ú¡¼¥¸¿·µ¬ºîÀ®';
+
+///////////////////////////////////////
+// recent
+$_recent_plugin_frame = '<span align="center"><h5 class="side_label">ºÇ¿·¤Î%d·ï</h5></span><small>%s</small>';
+$_recent_plugin_li = '¡¦';
 ?>
diff --git a/plugin.php b/plugin.php
new file mode 100644 (file)
index 0000000..2bb1849
--- /dev/null
@@ -0,0 +1,96 @@
+<?
+// PukiWiki - Yet another WikiWikiWeb clone.
+// $Id: plugin.php,v 1.1 2002/06/21 05:21:46 masui Exp $
+/////////////////////////////////////////////////
+
+// ¥×¥é¥°¥¤¥óÍѤË̤ÄêµÁ¤ÎÊÑ¿ô¤òÀßÄê
+function set_plugin_messages($messages)
+{
+  foreach ($messages as $name=>$val) {
+    global $$name;
+    if(!isset($$name)) {
+      $$name = $val;
+    }
+  }
+}
+
+//¥×¥é¥°¥¤¥ó(action)¤¬Â¸ºß¤¹¤ë¤«
+function exist_plugin_action($name) {
+  if(!file_exists(PLUGIN_DIR.$name.".inc.php"))
+    {
+      return false;
+    }
+  else
+    {
+      require_once(PLUGIN_DIR.$name.".inc.php");
+      if(!function_exists("plugin_".$name."_action"))
+       {
+         return false;
+       }
+    }
+  return true;
+}
+
+//¥×¥é¥°¥¤¥ó(convert)¤¬Â¸ºß¤¹¤ë¤«
+function exist_plugin_convert($name) {
+  if(!file_exists(PLUGIN_DIR.$name.".inc.php"))
+    {
+      return false;
+    }
+  else
+    {
+      require_once(PLUGIN_DIR.$name.".inc.php");
+      if(!function_exists("plugin_".$name."_convert"))
+       {
+         return false;
+       }
+    }
+  return true;
+}
+
+//¥×¥é¥°¥¤¥ó¤Î½é´ü²½¤ò¼Â¹Ô
+function do_plugin_init($name) {
+  $funcname = "plugin_".$name."_init";
+  if(!function_exists($funcname))
+    {
+      return false;
+    }
+  
+  $func_check = "_funccheck_".$funcname;
+  global $$func_check;
+  if($$func_check)
+    {
+      return false;
+    }
+  $$func_check = true;
+  return @call_user_func($funcname);
+}
+
+//¥×¥é¥°¥¤¥ó(action)¤ò¼Â¹Ô
+function do_plugin_action($name) {
+  if(!exist_plugin_action($name)) {
+    return array();
+  }
+  do_plugin_init($name);
+  return @call_user_func("plugin_".$name."_action");
+}
+
+//¥×¥é¥°¥¤¥ó(convert)¤ò¼Â¹Ô
+function do_plugin_convert($plugin_name,$plugin_args)
+{
+  $invalid_return = "#${plugin_name}(${plugin_args})";
+  
+  if($plugin_args !== "")
+    $aryargs = explode(",",$plugin_args);
+  else
+    $aryargs = array();
+
+  do_plugin_init($plugin_name);
+  $retvar = call_user_func_array("plugin_${plugin_name}_convert",$aryargs);
+  
+  if($retvar === FALSE) return $invalid_return;
+  else                  return $retvar;
+}
+
+
+?>
\ No newline at end of file
index 37a2f8f..8c06048 100644 (file)
@@ -1,11 +1,11 @@
-<?\r
-function plugin_aname_convert()\r
-{\r
-       if(func_num_args())\r
-               $aryargs = func_get_args();\r
-       else\r
-               $aryargs = array();\r
-\r
-       return "<a name=\"$aryargs[0]\"></a>";\r
-}\r
-?>\r
+<?
+function plugin_aname_convert()
+{
+       if(func_num_args())
+               $aryargs = func_get_args();
+       else
+               $aryargs = array();
+
+       return "<a name=\"$aryargs[0]\"></a>";
+}
+?>
diff --git a/plugin/anchor.inc.php b/plugin/anchor.inc.php
new file mode 100644 (file)
index 0000000..f23319c
--- /dev/null
@@ -0,0 +1,29 @@
+<?
+function plugin_anchor_convert()
+{
+       global $WikiName,$BracketName,$script,$vars;
+
+       if(func_num_args() == 1)
+               $aryargs = func_get_args();
+       else
+               return FALSE;
+
+       list($wbn,$aname) = explode("#",$aryargs[0]);
+
+       if(!$aname) return FALSE;
+
+       if(!preg_match("/^$WikiName|$BracketName$/",$wbn) && $wbn)
+               $wbn = "[[$wbn]]";
+
+       if(!preg_match("/^$WikiName|$BracketName$/",$aryargs[0]))
+               $page = "[[$aryargs[0]]]";
+       else
+               $page = $aryargs[0];
+
+       $page = strip_bracket($page);
+
+       if($wbn) $wbn = "$script?".rawurlencode($wbn);
+
+       return "<a href=\"$wbn#$aname\">$page</a>";
+}
+?>
diff --git a/plugin/article.inc.php b/plugin/article.inc.php
new file mode 100644 (file)
index 0000000..0086315
--- /dev/null
@@ -0,0 +1,228 @@
+<?
+ /*
+ PukiWiki BBSÉ÷¥×¥é¥°¥¤¥ó
+
+ CopyRight 2002 OKAWARA,Satoshi
+ http://www.dml.co.jp/~kawara/pukiwiki/pukiwiki.php
+ kawara@dml.co.jp
+ LANGUAGE¥Õ¥¡¥¤¥ë¤Ë²¼µ­¤ÎÃͤòÄɲ䷤Ƥ«¤é¤´»ÈÍѤ¯¤À¤µ¤¤
+       $_btn_name = '¤ªÌ¾Á°';
+       $_btn_article = 'µ­»ö¤ÎÅê¹Æ';
+       $_btn_subject = 'Âê̾: ';
+
+ ¢¨$_btn_name¤Ïcomment¥×¥é¥°¥¤¥ó¤Ç´û¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹
+ Åê¹ÆÆâÍƤμ«Æ°¥á¡¼¥ëžÁ÷µ¡Ç½¤ò¤´»ÈÍѤˤʤꤿ¤¤¾ì¹ç¤Ï
+ -Åê¹ÆÆâÍƤΥ᡼¥ë¼«Æ°ÇÛ¿®
+ -Åê¹ÆÆâÍƤΥ᡼¥ë¼«Æ°ÇÛ¿®Àè
+ ¤òÀßÄê¤Î¾å¡¢¤´»ÈÍѤ¯¤À¤µ¤¤¡£
+ */
+
+/////////////////////////////////////////////////
+// ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¥«¥é¥à¿ô
+define("article_COLS",70);
+/////////////////////////////////////////////////
+// ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¹Ô¿ô
+define("article_ROWS",5);
+/////////////////////////////////////////////////
+// Ì¾Á°¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¥«¥é¥à¿ô
+define("NAME_COLS",24);
+/////////////////////////////////////////////////
+// Âê̾¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¥«¥é¥à¿ô
+define("SUBJECT_COLS",60);
+/////////////////////////////////////////////////
+// Ì¾Á°¤ÎÁÞÆþ¥Õ¥©¡¼¥Þ¥Ã¥È
+$name_format = '[[$name]]';
+/////////////////////////////////////////////////
+// Âê̾¤ÎÁÞÆþ¥Õ¥©¡¼¥Þ¥Ã¥È
+$subject_format = '**$subject';
+/////////////////////////////////////////////////
+// Âê̾¤¬Ì¤µ­Æþ¤Î¾ì¹ç¤Îɽµ­ 
+$no_subject = '̵Âê';
+/////////////////////////////////////////////////
+// ÁÞÆþ¤¹¤ë°ÌÃÖ 1:Íó¤ÎÁ° 0:Íó¤Î¸å
+define("ARTICLE_INS",0);
+/////////////////////////////////////////////////
+// ½ñ¤­¹þ¤ß¤Î²¼¤Ë°ì¹Ô¥³¥á¥ó¥È¤òÆþ¤ì¤ë 1:Æþ¤ì¤ë 0:Æþ¤ì¤Ê¤¤
+define("ARTICLE_COMMENT",1);
+/////////////////////////////////////////////////
+// ²þ¹Ô¤ò¼«Æ°ÅªÊÑ´¹ 1:¤¹¤ë 0:¤·¤Ê¤¤
+define("ARTICLE_AUTO_BR",1);
+
+/////////////////////////////////////////////////
+// Åê¹ÆÆâÍƤΥ᡼¥ë¼«Æ°ÇÛ¿® 1:¤¹¤ë 0:¤·¤Ê¤¤
+define("MAIL_AUTO_SEND",0);
+/////////////////////////////////////////////////
+// Åê¹ÆÆâÍƤΥ᡼¥ëÁ÷¿®»þ¤ÎÁ÷¿®¼Ô¥á¡¼¥ë¥¢¥É¥ì¥¹
+define("MAIL_FROM",'');
+/////////////////////////////////////////////////
+// Åê¹ÆÆâÍƤΥ᡼¥ëÁ÷¿®»þ¤ÎÂê̾
+define("MAIL_SUBJECT_PREFIX",'[someone\'sPukiWiki]');
+/////////////////////////////////////////////////
+// Åê¹ÆÆâÍƤΥ᡼¥ë¼«Æ°ÇÛ¿®Àè
+$_mailto = array (
+       ''
+);
+
+
+function plugin_article_action()
+{
+       global $post,$vars,$script,$cols,$rows,$del_backup,$do_backup,$now;
+       global $name_format, $subject_format, $no_subject;
+       global $_title_collided,$_msg_collided,$_title_updated;
+       global $_mailto;
+
+       if($post["msg"])
+       {
+               $postdata = "";
+               $postdata_old  = file(get_filename(encode($post["refer"])));
+               $article_no = 0;
+
+               if($post[name])
+               {
+                       $name = str_replace('$name',$post[name],$name_format);
+               }
+               if($post[subject])
+               {
+                       $subject = str_replace('$subject',$post[subject],$subject_format);
+               } else {
+                       $subject = str_replace('$subject',$no_subject,$subject_format);
+               }
+
+               $article  = $subject."\n>";
+               $article .= $name." (".$now.")\n>~\n";
+
+               if(ARTICLE_AUTO_BR){
+                       //²þ¹Ô¤Î¼è¤ê°·¤¤¤Ï¤±¤Ã¤³¤¦Ìñ²ð¡£ÆäËURL¤¬Íí¤ó¤À¤È¤­¤Ï¡Ä
+                       $article_body = $post[msg];
+                       $article_body = str_replace("\n","\n>~\n",$article_body);
+                       $article_body = preg_replace("/\n\n/","\n",$article_body);
+                       $article .= $article_body;
+               } else {
+                       $article .= ">".$post[msg];
+               }
+
+               if(ARTICLE_COMMENT){
+                       $article .= "\n\n#comment\n";
+               }
+
+               foreach($postdata_old as $line)
+               {
+                       if(!ARTICLE_INS) $postdata .= $line;
+                       if(preg_match("/^#article$/",$line))
+                       {
+                               if($article_no == $post["article_no"] && $post[msg]!="")
+                               {
+                                       $postdata .= "$article\n";
+                               }
+                               $article_no++;
+                       }
+                       if(ARTICLE_INS) $postdata .= $line;
+               }
+
+               $postdata_input = "$article\n";
+       }
+       else
+               return;
+
+       if(md5(@join("",@file(get_filename(encode($post["refer"]))))) != $post["digest"])
+       {
+               $title = $_title_collided;
+
+               $body = "$_msg_collided\n";
+
+               $body .= "<form action=\"$script?cmd=preview\" method=\"post\">\n"
+                       ."<input type=\"hidden\" name=\"refer\" value=\"".$post["refer"]."\">\n"
+                       ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"
+                       ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\" id=\"textarea\">$postdata_input</textarea><br>\n"
+                       ."</form>\n";
+       }
+       else
+       {
+               $postdata = user_rules_str($postdata);
+
+               // º¹Ê¬¥Õ¥¡¥¤¥ë¤ÎºîÀ®
+               if(is_page($post["refer"]))
+                       $oldpostdata = join("",file(get_filename(encode($post["refer"]))));
+               else
+                       $oldpostdata = "\n";
+               if($postdata)
+                       $diffdata = do_diff($oldpostdata,$postdata);
+               file_write(DIFF_DIR,$post["refer"],$diffdata);
+
+               // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎºîÀ®
+               if(is_page($post["refer"]))
+                       $oldposttime = filemtime(get_filename(encode($post["refer"])));
+               else
+                       $oldposttime = time();
+
+               // ÊÔ½¸ÆâÍƤ¬²¿¤â½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤È¥Ð¥Ã¥¯¥¢¥Ã¥×¤âºï½ü¤¹¤ë?¤·¤Ê¤¤¤Ç¤¹¤è¤Í¡£
+               if(!$postdata && $del_backup)
+                       backup_delete(BACKUP_DIR.encode($post["refer"]).".txt");
+               else if($do_backup && is_page($post["refer"]))
+                       make_backup(encode($post["refer"]).".txt",$oldpostdata,$oldposttime);
+
+               // ¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß
+               file_write(DATA_DIR,$post["refer"],$postdata);
+
+               // Åê¹ÆÆâÍƤΥ᡼¥ë¼«Æ°Á÷¿®
+               if(MAIL_AUTO_SEND){
+                       $mailaddress = implode(',' ,$_mailto);
+                       $mailsubject = MAIL_SUBJECT_PREFIX." ".str_replace("**","",$subject);
+                       if($post["name"]){
+                               $mailsubject .= '/'.$post["name"];
+                       }
+                       $mailsubject = mb_encode_mimeheader($mailsubject);
+
+                       $mailbody = $post["msg"];
+                       $mailbody .= "\n\n---\n";
+                       $mailbody .= "Åê¹Æ¼Ô: ".$post["name"]." ($now)\n";
+                       $mailbody .= "Åê¹ÆÀè: ".$post["refer"]."\n";
+                       $mailbody .= "¡¡ URL: ".$script.'?'.rawurlencode($post["refer"])."\n";
+                       $mailbody = mb_convert_encoding( $mailbody, "JIS" );
+
+                       $mailaddheader = "From: ".MAIL_FROM;
+
+                       mail($mailaddress, $mailsubject, $mailbody, $mailaddheader);
+               }
+
+               // is_page¤Î¥­¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢¤¹¤ë¡£
+               is_page($post["refer"],true);
+
+               $title = $_title_updated;
+       }
+       $retvars["msg"] = $title;
+       $retvars["body"] = $body;
+
+       $post["page"] = $post["refer"];
+       $vars["page"] = $post["refer"];
+
+       return $retvars;
+}
+function plugin_article_convert()
+{
+       global $script,$article_no,$vars,$digest;
+       global $_btn_article,$_btn_name,$_btn_subject,$vars;
+
+       if((arg_check("read")||$vars["cmd"] == ""||arg_check("unfreeze")||arg_check("freeze")||$vars["write"]||$vars["article"]))
+               $button = "<input type=\"submit\" name=\"article\" value=\"$_btn_article\">\n";
+
+       $string = "<form action=\"$script\" method=\"post\">\n"
+                ."<input type=\"hidden\" name=\"article_no\" value=\"$article_no\">\n"
+                ."<input type=\"hidden\" name=\"refer\" value=\"$vars[page]\">\n"
+                ."<input type=\"hidden\" name=\"plugin\" value=\"article\">\n"
+                ."<input type=\"hidden\" name=\"digest\" value=\"$digest\">\n"
+                ."$_btn_name<input type=\"text\" name=\"name\" size=\"".NAME_COLS."\"><br>\n"
+                ."$_btn_subject<input type=\"text\" name=\"subject\" size=\"".SUBJECT_COLS."\"><br>\n"
+                ."<textarea name=\"msg\" rows=\"".article_ROWS."\" cols=\"".article_COLS."\">\n</textarea><br>\n"
+                .$button
+                ."</form>";
+
+       $article_no++;
+
+       return $string;
+}
+?>
index 653e5b2..b4b3aac 100644 (file)
@@ -1,6 +1,8 @@
 <?
 // ¥×¥é¥°¥¤¥ó attach
 
+// changed by Y.MASUI <masui@hisec.co.jp> http://masui.net/pukiwiki/
+
 // set PHP value to enable file upload
 ini_set("file_uploads","1");
 
@@ -31,7 +33,7 @@ function plugin_attach_convert()
                while($file = readdir($dir))
                {
                        if($file == ".." || $file == ".") continue;
-                       if(!preg_match("/^${decoded_pgname}_(.*)$/",$file,$match)) continue;
+                       if(!preg_match("/^${decoded_pgname}_([^.]+)$/",$file,$match)) continue;
                        
                        $lastmod = date("Y/m/d H:i:s",filemtime(UPLOAD_DIR.$file));
                        
@@ -44,8 +46,15 @@ function plugin_attach_convert()
                        $filename_url = rawurlencode($filename);
                        $refername_url = rawurlencode($vars[page]);
                        
-                       $del = "[<a href=\"$script?plugin=attach&delfile=${filename_url}&refer=${refername_url}\" title=\"".str_replace('$1',$filename,$_msg_delete)."\">$_btn_delete</a>]";
-                       $open = "<a href=\"$script?plugin=attach&openfile=${filename_url}&refer=${refername_url}\" title=\"$lastmod $file_size\">$icon$filename</a>\n";
+                       $counter = '';
+                       if(file_exists(UPLOAD_DIR.$file.'.log')) {
+                               $list = file(UPLOAD_DIR.$file.'.log');
+                               
+                               $counter = ' <small>' . chop($list[0]) . '·ï</small>';
+                       }
+                       
+                       $del = "[<a href=\"$script?plugin=attach&mode=confirm&delfile=${filename_url}&refer=${refername_url}\" title=\"".str_replace('$1',$filename,$_msg_delete)."\">$_btn_delete</a>]";
+                       $open = "<a href=\"$script?plugin=attach&openfile=${filename_url}&refer=${refername_url}\" title=\"$lastmod $file_size\">$icon$filename</a>$counter\n";
                        
                        $into = "$open <small>$del</small>";
                        
@@ -87,11 +96,12 @@ function plugin_attach_action()
 {
        global $vars,$script,$max_size,$HTTP_POST_FILES;
        global $_title_uploaded,$_title_file_deleted,$_title_notfound,$_msg_noparm,$_msg_already_exists,$_msg_attach_filelist,$_msg_delete,$_msg_exceed,$_btn_delete;
-       global $_msg_maxsize,$_btn_upload,$_msg_attachfile,$_title_upload;
+       global $_msg_maxsize,$_btn_upload,$_msg_attachfile,$_title_upload,$_title_confirm_delete,$_msg_confirm_delete;
        
        $postfiles = $HTTP_POST_FILES;
        $icon = FILE_ICON;
 
+       $vars["mode"] = rawurldecode($vars["mode"]);
        $vars["openfile"] = rawurldecode($vars["openfile"]);
        $vars["delfile"] = rawurldecode($vars["delfile"]);
        $vars["refer"] = rawurldecode($vars["refer"]);
@@ -114,18 +124,32 @@ function plugin_attach_action()
        }
        else if($vars["delfile"])
        {
-               $filename = encode($vars["refer"])."_".encode($vars["delfile"]);
-               if(is_freeze($vars["refer"]) || !is_editable($vars["refer"])) return array("msg" => $_msg_noparm);
+                if($vars["mode"] == "confirm") {
+                 $form = "<form action=\"$script\" method=\"post\">\n";
+                 $form .= "<input type=\"hidden\" name=\"plugin\" value=\"attach\">\n";
+                 $form .= "<input type=\"hidden\" name=\"refer\" value=\"$vars[refer]\">\n";
+                 $form .= "<input type=\"hidden\" name=\"delfile\" value=\"$vars[delfile]\">\n";
+                 $form .= "<input type=\"submit\" value=\"$_btn_delete\">\n";
+                 $form .= "</form>";
+
+                 $retvars["body"] = sprintf($_msg_confirm_delete,$vars["delfile"],$form);
+                 $retvars["msg"] = sprintf($_title_confirm_delete,$vars["delfile"]);
+                 return $retvars;
+               }
+               else {
+                 $filename = encode($vars["refer"])."_".encode($vars["delfile"]);
+                 if(is_freeze($vars["refer"]) || !is_editable($vars["refer"])) return array("msg" => $_msg_noparm);
                
-               if(!file_exists(UPLOAD_DIR.$filename))
+                 if(!file_exists(UPLOAD_DIR.$filename))
                        return array("msg" => $_title_notfound);
                
-               @unlink(UPLOAD_DIR.$filename);
+                 @unlink(UPLOAD_DIR.$filename);
 
-               if(file_exists(DATA_DIR.encode($vars["refer"]).".txt"))
-                       @touch(DATA_DIR.encode($vars["refer"]).".txt");
+                 if(file_exists(DATA_DIR.encode($vars["refer"]).".txt"))
+                   @touch(DATA_DIR.encode($vars["refer"]).".txt");
                
-               return array("msg" => $_title_file_deleted);
+                 return array("msg" => $_title_file_deleted);
+               }
        }
        else if($vars["openfile"])
        {
@@ -145,9 +169,10 @@ function plugin_attach_action()
                        $pgname_keep = "";
                        $retbody = "";
                        $aryret = array();
+                       $pagenames = array();
                        while($file = readdir($dir))
                        {
-                               if($file == ".." || $file == ".") continue;
+                               if($file == ".." || $file == "." || strstr($file,".log")!=FALSE) continue;
                                
                                settype($dfile_size,"double");
                                $dfile_size = round(filesize(UPLOAD_DIR.$file)/1000,1);
@@ -163,34 +188,22 @@ function plugin_attach_action()
                                $passage = get_pg_passage($pagename);
                                
                                $pagename = strip_bracket($pagename);
-                               $page = "<a href=\"$script?${pagename_url}\">$pagename</a>$passage\n";
-                               
-                               $strtmp = "";
-                               if($pgname_keep != $pagename)
-                               {
-                                       if($pgname_keep!="")
-                                               $strtmp .= "</ul>\n";
-                                       
-                                       $strtmp .= "<li>$page</li>\n";
-                                       $strtmp .= "<ul>\n";
-                                       $aryret[$pagename] = $strtmp;
-                                       $pgname_keep = $pagename;
-                               }
+                               $pagenames[$pagename] = "<li><a href=\"$script?${pagename_url}\">$pagename</a>$passage</li>\n";
                                
                                $lastmod = date("Y/m/d H:i:s",filemtime(UPLOAD_DIR.$file));
                                
-                               $del = "[<a href=\"$script?plugin=attach&delfile=${filename_url}&refer=${pagename_url}\" title=\"".str_replace('$1',$filename,$_msg_delete)."\">$_btn_delete</a>]";
+                               $del = "[<a href=\"$script?plugin=attach&mode=confirm&delfile=${filename_url}&refer=${pagename_url}\" title=\"".str_replace('$1',$filename,$_msg_delete)."\">$_btn_delete</a>]";
                                
                                $open = "<a href=\"$script?plugin=attach&openfile=${filename_url}&refer=${pagename_url}\" title=\"$lastmod $file_size\">$filename</a>";
 
-                               
-                               $into = "<li>$open <small>$del</small></li>\n";
-                               
-                               $aryret[$pagename.$filename] = $into;
+                               $aryret[$pagename] .= "<li>$open <small>$del</small></li>\n";
                        }
                        closedir($dir);
                        ksort($aryret);
-                       $retbody = join("",$aryret);
+                       $retbody = '';
+                       foreach($aryret as $pagename => $list) {
+                               $retbody .= $pagenames[$pagename] . "<ul>\n" . $list . "</ul>\n";
+                       }
                }
                
                $retvars["msg"] = $_msg_attach_filelist;
@@ -233,7 +246,18 @@ function attach_filelist()
 function download_file($path_file,$filename)
 {
        $content_length = filesize($path_file);
-
+       
+       $list = array(1);
+       if(file_exists($path_file.'.log')) {
+               $list = file($path_file.'.log');
+               $list[0] = chop($list[0]) + 1;
+       }
+       $fp = fopen($path_file.'.log','w');
+       foreach ($list as $l) {
+               fputs($fp,$l);
+       }
+       fclose($fp);
+       
        // for japanese
        if(function_exists("mb_convert_encoding"))
                $filename = mb_convert_encoding($filename,"SJIS","auto");
index c263151..3e7926a 100644 (file)
-<?\r
-function plugin_calendar_convert()\r
-{\r
-       global $script,$weeklabels,$vars,$command,$WikiName,$BracketName;\r
-       \r
-       $args = func_get_args();\r
-       \r
-       if(func_num_args() == 0)\r
-       {\r
-               $date_str = date("Ym");\r
-               $pre = $vars[page];\r
-               $prefix = preg_replace("/^\[\[(.*)\]\]$/","$1",$vars[page])."/";\r
-       }\r
-       else if(func_num_args() == 1)\r
-       {\r
-               if(is_numeric($args[0]) && strlen($args[0]) == 6)\r
-               {\r
-                       $date_str = $args[0];\r
-                       $pre = $vars[page];\r
-                       $prefix = preg_replace("/^\[\[(.*)\]\]$/","$1",$vars[page])."/";\r
-               }\r
-               else\r
-               {\r
-                       $date_str = date("Ym");\r
-                       $pre = $args[0];\r
-                       $prefix = $args[0];\r
-               }\r
-       }\r
-       else if(func_num_args() == 2)\r
-       {\r
-               if(is_numeric($args[0]) && strlen($args[0]) == 6)\r
-               {\r
-                       $date_str = $args[0];\r
-                       $pre = $args[1];\r
-                       $prefix = $args[1];\r
-               }\r
-               else if(is_numeric($args[1]) && strlen($args[1]) == 6)\r
-               {\r
-                       $date_str = $args[1];\r
-                       $pre = $args[0];\r
-                       $prefix = $args[0];\r
-               }\r
-               else\r
-               {\r
-                       $date_str = date("Ym");\r
-                       $pre = $vars[page];\r
-                       $prefix = preg_replace("/^\[\[(.*)\]\]$/","$1",$vars[page])."/";\r
-               }\r
-       }\r
-       else\r
-       {\r
-               return FALSE;\r
-       }\r
-\r
-       if(!$command) $cmd = "read";\r
-       else          $cmd = $command;\r
-       \r
-       $prefix = strip_tags($prefix);\r
-       \r
-       $yr = substr($date_str,0,4);\r
-       $mon = substr($date_str,4,2);\r
-       if($yr != date("Y") || $mon != date("m"))\r
-       {\r
-               $now_day = 1;\r
-               $other_month = 1;\r
-       }\r
-       else\r
-       {\r
-               $now_day = date("d");\r
-               $other_month = 0;\r
-       }\r
-       $today = getdate(mktime(0,0,0,$mon,$now_day,$yr));\r
-       \r
-       $m_num = $today[mon];\r
-       $d_num = $today[mday];\r
-       $year = $today[year];\r
-       $f_today = getdate(mktime(0,0,0,$m_num,1,$year));\r
-       $wday = $f_today[wday];\r
-       $day = 1;\r
-       $fweek = true;\r
-\r
-       $m_name = "$year.$m_num ($cmd)";\r
-\r
-       if(!preg_match("/^(($WikiName)|($BracketName))$/",$pre))\r
-               $prefix_url = "[[".$pre."]]";\r
-       else\r
-               $prefix_url = $pre;\r
-\r
-       $prefix_url = rawurlencode($prefix_url);\r
-       $pre = strip_bracket($pre);\r
-\r
-       $ret .= '\r
-<table class="style_calendar" cellspacing="1" width="150" border="0">\r
-  <tbody>\r
-  <tr>\r
-    <td align="middle" class="style_td_caltop" colspan="7" height="15">\r
-      <div align="center"><small><b>'.$m_name.'</b><br>[<a href="'.$script.'?'.$prefix_url.'">'.$pre.'</a>]</small></div>\r
-    </td>\r
-  </tr>\r
-  <tr>\r
-';\r
-\r
-       foreach($weeklabels as $label)\r
-       {\r
-               $ret .= '\r
-    <td align="middle" class="style_td_week" height="15">\r
-      <div align="center"><small><b>'.$label.'</b></small></div>\r
-    </td>';\r
-       }\r
-\r
-       $ret .= "</tr>\n<tr>\n";\r
-\r
-       while(checkdate($m_num,$day,$year))\r
-       {\r
-               $dt = sprintf("%4d%02d%02d", $year, $m_num, $day);\r
-               $name = "$prefix$dt";\r
-               $page = "[[$prefix$dt]]";\r
-               $page_url = rawurlencode("[[$prefix$dt]]");\r
-               \r
-               if($cmd == "edit") $refer = "&refer=$page_url";\r
-               else               $refer = "";\r
-               \r
-               if($cmd == "read" && !is_page($page))\r
-                       $link = "<b>$day</b>";\r
-               else\r
-                       $link = "<a href=\"$script?cmd=$cmd&page=$page_url$refer\" title=\"$name\"><b>$day</b></a>";\r
-\r
-               if($fweek)\r
-               {\r
-                       for($i=0;$i<$wday;$i++)\r
-                       { // Blank \r
-                               $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_blank\" height=\"19\">\81@</td>\n"; \r
-                       } \r
-               $fweek=false;\r
-               }\r
-\r
-               if($wday == 0) $ret .= "  </tr><tr>\n";\r
-               if(!$other_month && ($day == $today[mday]) && ($m_num == $today[mon]) && ($year == $today[year]))\r
-               {\r
-                       //  Today \r
-                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_today\" height=\"19\"><small>$link</small></td>\n"; \r
-               }\r
-               else if($wday == 0)\r
-               {\r
-                       //  Sunday \r
-                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_sun\" height=\"19\"><small>$link</small></td>\n";\r
-               }\r
-               else if($wday == 6)\r
-               {\r
-                       //  Saturday \r
-                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_sat\" height=\"19\"><small>$link</small></td>\n";\r
-               }\r
-               else\r
-               {\r
-                       // Weekday \r
-                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td\" height=\"19\"><small>$link</small></td>\n";\r
-               }\r
-               $day++;\r
-               $wday++;\r
-               $wday = $wday % 7;\r
-       }\r
-       if($wday > 0)\r
-       {\r
-               while($wday < 7)\r
-               { // Blank \r
-                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_blank\" height=\"19\">\81@</td>\n";\r
-               $wday++;\r
-               } \r
-       }\r
-\r
-       $ret .= "  </tr>\n</table>\n";\r
-       return $ret;\r
-}\r
+<?
+function plugin_calendar_convert()
+{
+       global $script,$weeklabels,$vars,$command,$WikiName,$BracketName;
+       
+       $args = func_get_args();
+       
+       if(func_num_args() == 0)
+       {
+               $date_str = date("Ym");
+               $pre = $vars[page];
+               $prefix = preg_replace("/^\[\[(.*)\]\]$/","$1",$vars[page])."/";
+       }
+       else if(func_num_args() == 1)
+       {
+               if(is_numeric($args[0]) && strlen($args[0]) == 6)
+               {
+                       $date_str = $args[0];
+                       $pre = $vars[page];
+                       $prefix = preg_replace("/^\[\[(.*)\]\]$/","$1",$vars[page])."/";
+               }
+               else
+               {
+                       $date_str = date("Ym");
+                       $pre = $args[0];
+                       $prefix = $args[0];
+               }
+       }
+       else if(func_num_args() == 2)
+       {
+               if(is_numeric($args[0]) && strlen($args[0]) == 6)
+               {
+                       $date_str = $args[0];
+                       $pre = $args[1];
+                       $prefix = $args[1];
+               }
+               else if(is_numeric($args[1]) && strlen($args[1]) == 6)
+               {
+                       $date_str = $args[1];
+                       $pre = $args[0];
+                       $prefix = $args[0];
+               }
+               else
+               {
+                       $date_str = date("Ym");
+                       $pre = $vars[page];
+                       $prefix = preg_replace("/^\[\[(.*)\]\]$/","$1",$vars[page])."/";
+               }
+       }
+       else
+       {
+               return FALSE;
+       }
+
+       if(!$command) $cmd = "read";
+       else          $cmd = $command;
+       
+       $prefix = strip_tags($prefix);
+       
+       $yr = substr($date_str,0,4);
+       $mon = substr($date_str,4,2);
+       if($yr != date("Y") || $mon != date("m"))
+       {
+               $now_day = 1;
+               $other_month = 1;
+       }
+       else
+       {
+               $now_day = date("d");
+               $other_month = 0;
+       }
+       $today = getdate(mktime(0,0,0,$mon,$now_day,$yr));
+       
+       $m_num = $today[mon];
+       $d_num = $today[mday];
+       $year = $today[year];
+       $f_today = getdate(mktime(0,0,0,$m_num,1,$year));
+       $wday = $f_today[wday];
+       $day = 1;
+       $fweek = true;
+
+       $m_name = "$year.$m_num ($cmd)";
+
+       if(!preg_match("/^(($WikiName)|($BracketName))$/",$pre))
+               $prefix_url = "[[".$pre."]]";
+       else
+               $prefix_url = $pre;
+
+       $prefix_url = rawurlencode($prefix_url);
+       $pre = strip_bracket($pre);
+
+       $ret .= '
+<table class="style_calendar" cellspacing="1" width="150" border="0">
+  <tbody>
+  <tr>
+    <td align="middle" class="style_td_caltop" colspan="7" height="15">
+      <div align="center"><small><b>'.$m_name.'</b><br>[<a href="'.$script.'?'.$prefix_url.'">'.$pre.'</a>]</small></div>
+    </td>
+  </tr>
+  <tr>
+';
+
+       foreach($weeklabels as $label)
+       {
+               $ret .= '
+    <td align="middle" class="style_td_week" height="15">
+      <div align="center"><small><b>'.$label.'</b></small></div>
+    </td>';
+       }
+
+       $ret .= "</tr>\n<tr>\n";
+
+       while(checkdate($m_num,$day,$year))
+       {
+               $dt = sprintf("%4d%02d%02d", $year, $m_num, $day);
+               $name = "$prefix$dt";
+               $page = "[[$prefix$dt]]";
+               $page_url = rawurlencode("[[$prefix$dt]]");
+               
+               if($cmd == "edit") $refer = "&refer=$page_url";
+               else               $refer = "";
+               
+               if($cmd == "read" && !is_page($page))
+                       $link = "<b>$day</b>";
+               else
+                       $link = "<a href=\"$script?cmd=$cmd&page=$page_url$refer\" title=\"$name\"><b>$day</b></a>";
+
+               if($fweek)
+               {
+                       for($i=0;$i<$wday;$i++)
+                       { // Blank 
+                               $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_blank\" height=\"19\">¡¡</td>\n"; 
+                       } 
+               $fweek=false;
+               }
+
+               if($wday == 0) $ret .= "  </tr><tr>\n";
+               if(!$other_month && ($day == $today[mday]) && ($m_num == $today[mon]) && ($year == $today[year]))
+               {
+                       //  Today 
+                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_today\" height=\"19\"><small>$link</small></td>\n"; 
+               }
+               else if($wday == 0)
+               {
+                       //  Sunday 
+                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_sun\" height=\"19\"><small>$link</small></td>\n";
+               }
+               else if($wday == 6)
+               {
+                       //  Saturday 
+                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_sat\" height=\"19\"><small>$link</small></td>\n";
+               }
+               else
+               {
+                       // Weekday 
+                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td\" height=\"19\"><small>$link</small></td>\n";
+               }
+               $day++;
+               $wday++;
+               $wday = $wday % 7;
+       }
+       if($wday > 0)
+       {
+               while($wday < 7)
+               { // Blank 
+                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_blank\" height=\"19\">¡¡</td>\n";
+               $wday++;
+               } 
+       }
+
+       $ret .= "  </tr>\n</table>\n";
+       return $ret;
+}
 ?>
\ No newline at end of file
diff --git a/plugin/calendar2.inc.php b/plugin/calendar2.inc.php
new file mode 100644 (file)
index 0000000..530dc4b
--- /dev/null
@@ -0,0 +1,243 @@
+<?
+
+function plugin_calendar2_convert()
+{
+       global $script,$weeklabels,$vars,$command,$WikiName,$BracketName;
+       
+       $args = func_get_args();
+       
+       if(func_num_args() == 0)
+       {
+               $date_str = date("Ym");
+               $pre = strip_bracket($vars['page']);
+               $prefix = strip_bracket($vars['page'])."/";
+       }
+       else if(func_num_args() == 1)
+       {
+               if(is_numeric($args[0]) && strlen($args[0]) == 6)
+               {
+                       $date_str = $args[0];
+                       $pre = strip_bracket($vars['page']);
+                       $prefix = strip_bracket($vars['page'])."/";
+               }
+               else
+               {
+                       $date_str = date("Ym");
+                       $pre = strip_bracket($args[0]);
+                       $prefix = strip_bracket($args[0]);
+               }
+       }
+       else if(func_num_args() == 2)
+       {
+               if(is_numeric($args[0]) && strlen($args[0]) == 6)
+               {
+                       $date_str = $args[0];
+                       $pre = strip_bracket($args[1]);
+                       $prefix = strip_bracket($args[1]);
+               }
+               else if(is_numeric($args[1]) && strlen($args[1]) == 6)
+               {
+                       $date_str = $args[1];
+                       $pre = strip_bracket($args[0]);
+                       $prefix = strip_bracket($args[0]).'/';
+               }
+               else
+               {
+                       $date_str = date("Ym");
+                       $pre = strip_bracket($vars[page]);
+                       $prefix = strip_bracket($vars[page])."/";
+               }
+       }
+       else
+       {
+               return FALSE;
+       }
+       if($pre == "*") {
+               $prefix = '';
+               $pre = '';
+       }
+       $prefix_ = rawurlencode($pre);
+       $prefix = strip_tags($prefix);
+       
+       if(!$command) $cmd = "read";
+       else          $cmd = $command;
+       
+       
+       $yr = substr($date_str,0,4);
+       $mon = substr($date_str,4,2);
+       if($yr != date("Y") || $mon != date("m")) {
+               $now_day = 1;
+               $other_month = 1;
+       }
+       else {
+               $now_day = date("d");
+               $other_month = 0;
+       }
+       $today = getdate(mktime(0,0,0,$mon,$now_day,$yr));
+       
+       $m_num = $today[mon];
+       $d_num = $today[mday];
+       $year = $today[year];
+       $f_today = getdate(mktime(0,0,0,$m_num,1,$year));
+       $wday = $f_today[wday];
+       $day = 1;
+       $fweek = true;
+
+       $m_name = "$year.$m_num ($cmd)";
+
+       if(!preg_match("/^(($WikiName)|($BracketName))$/",$pre))
+               $prefix_url = "[[".$pre."]]";
+       else
+               $prefix_url = $pre;
+
+       $prefix_url = rawurlencode($prefix_url);
+       $pre = strip_bracket($pre);
+       
+       $ret .= '<table border="0" width="100%"><tr><td valign="top">';
+       
+       $y = substr($date_str,0,4)+0;
+       $m = substr($date_str,4,2)+0;
+       
+       $prev_date_str = sprintf("%04d%02d",$y,$m-1);
+       if($m-1<1) {
+               $prev_date_str = sprintf("%04d%02d",$y-1,12);
+       }
+       $next_date_str = sprintf("%04d%02d",$y,$m+1);
+       if($m+1>12) {
+               $next_date_str = sprintf("%04d%02d",$y+1,1);
+       }
+       
+       if($prefix == "") {
+               $ret .= '
+<table class="style_calendar" cellspacing="1" width="150" border="0">
+  <tbody>
+  <tr>
+    <td align="middle" class="style_td_caltop" colspan="7" height="15">
+      <div align="center"><small><a href="'.$script.'?plugin=calendar2&file='.$prefix_.'&date='.$prev_date_str.'">&lt;&lt;</a> <b>'.$m_name.'</b> <a href="'.$script.'?plugin=calendar2&file='.$prefix_.'&date='.$next_date_str.'">&gt;&gt;</a></small></div>
+    </td>
+  </tr>
+  <tr>
+';
+       }
+       else {
+               $ret .= '
+<table class="style_calendar" cellspacing="1" width="150" border="0">
+  <tbody>
+  <tr>
+    <td align="middle" class="style_td_caltop" colspan="7" height="15">
+      <div align="center"><small><a href="'.$script.'?plugin=calendar2&file='.$prefix_.'&date='.$prev_date_str.'">&lt;&lt;</a> <b>'.$m_name.'</b> <a href="'.$script.'?plugin=calendar2&file='.$prefix_.'&date='.$next_date_str.'">&gt;&gt;</a><br>[<a href="'.$script.'?'.$prefix_url.'">'.$pre.'</a>]</small></div>
+    </td>
+  </tr>
+  <tr>
+';
+       }
+       
+       foreach($weeklabels as $label)
+       {
+               $ret .= '
+    <td align="middle" class="style_td_week" height="15">
+      <div align="center"><small><b>'.$label.'</b></small></div>
+    </td>';
+       }
+
+       $ret .= "</tr>\n<tr>\n";
+
+       while(checkdate($m_num,$day,$year))
+       {
+               $dt = sprintf("%4d-%02d-%02d", $year, $m_num, $day);
+               $name = "$prefix$dt";
+               $page = "[[$prefix$dt]]";
+               $page_url = rawurlencode("[[$prefix$dt]]");
+               
+               if($cmd == "edit") $refer = "&refer=$page_url";
+               else               $refer = "";
+               
+               if($cmd == "read" && !is_page($page))
+                       $link = "<small><a href=\"$script?cmd=$cmd&page=$page_url$refer\" title=\"$name\">$day</a></small>";
+               else
+                       $link = "<a href=\"$script?cmd=$cmd&page=$page_url$refer\" title=\"$name\"><b>$day</b></a>";
+
+               if($fweek)
+               {
+                       for($i=0;$i<$wday;$i++)
+                       { // Blank 
+                               $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_blank\" height=\"19\">&nbsp;</td>\n"; 
+                       } 
+               $fweek=false;
+               }
+
+               if($wday == 0) $ret .= "  </tr><tr>\n";
+               if(!$other_month && ($day == $today[mday]) && ($m_num == $today[mon]) && ($year == $today[year]))
+               {
+                       //  Today 
+                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_today\" height=\"19\">$link</td>\n"; 
+               }
+               else if($wday == 0)
+               {
+                       //  Sunday 
+                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_sun\" height=\"19\">$link</td>\n";
+               }
+               else if($wday == 6)
+               {
+                       //  Saturday 
+                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_sat\" height=\"19\">$link</td>\n";
+               }
+               else
+               {
+                       // Weekday 
+                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td\" height=\"19\">$link</td>\n";
+               }
+               $day++;
+               $wday++;
+               $wday = $wday % 7;
+       }
+       if($wday > 0)
+       {
+               while($wday < 7)
+               { // Blank 
+                       $ret .= "    <td width=\"14%\" align=\"center\" class=\"style_td_blank\" height=\"19\">&nbsp;</td>\n";
+               $wday++;
+               } 
+       }
+
+       $ret .= "  </tr>\n</table>\n";
+       
+       $page = sprintf("[[%s%4d-%02d-%02d]]", $prefix, $today[year], $today[mon], $today[mday]);
+       $page_url = rawurlencode($page);
+       if(is_page($page)) {
+               $str = convert_html(join("",file(get_filename(encode($page)))));
+               $str .= "<hr><small><a href=\"$script?cmd=edit&page=$page\">[¤³¤ÎÆüµ­¤òÊÔ½¸]</a></small>";
+       }
+       else {
+               $str = make_link(sprintf('[[%s%4d-%02d-%02d]]',$prefix, $today[year], $today[mon], $today[mday])).'¤Ï¶õ¤Ç¤¹¡£';
+       }
+       
+       $ret .= "</td><td valign=\"top\">".$str."</td></tr></table>";
+       
+       return $ret;
+}
+
+function plugin_calendar2_action()
+{
+       global $command,$vars;
+       
+       $command = 'read';
+       $page = strip_bracket($vars['page']);
+       $vars['page'] = '*';
+       if($vars['file']) $vars['page'] = $vars['file'];
+       
+       $date = $vars['date'];
+       if($date=='') {
+               $date = date("Ym");
+       }
+       
+       $aryargs = array($vars['page'],$date);
+       $ret["msg"] = "calendar ".$vars['page']."/".$vars['date'];
+       $ret["body"] = call_user_func_array("plugin_calendar2_convert",$aryargs);
+       
+       $vars['page'] = $page;
+       
+       return $ret;
+}
+
+?>
\ No newline at end of file
index 8ede3d0..3b9f545 100644 (file)
@@ -1,24 +1,24 @@
-<?\r
-function plugin_calendar_edit_convert()\r
-{\r
-       global $command;\r
-       \r
-       $command = edit;\r
-\r
-       if(func_num_args())\r
-               $aryargs = func_get_args();\r
-       else\r
-               $aryargs = array();\r
-\r
-       \r
-       if(file_exists(PLUGIN_DIR."calendar.inc.php"))\r
-       {\r
-               require_once PLUGIN_DIR."calendar.inc.php";\r
-               return call_user_func_array("plugin_calendar_convert",$aryargs);\r
-       }\r
-       else\r
-       {\r
-               return FALSE;\r
-       }\r
-}\r
-?>\r
+<?
+function plugin_calendar_edit_convert()
+{
+       global $command;
+       
+       $command = edit;
+
+       if(func_num_args())
+               $aryargs = func_get_args();
+       else
+               $aryargs = array();
+
+       
+       if(file_exists(PLUGIN_DIR."calendar.inc.php"))
+       {
+               require_once PLUGIN_DIR."calendar.inc.php";
+               return call_user_func_array("plugin_calendar_convert",$aryargs);
+       }
+       else
+       {
+               return FALSE;
+       }
+}
+?>
index 8234a85..20ba5ec 100644 (file)
@@ -1,23 +1,23 @@
-<?\r
-function plugin_calendar_read_convert()\r
-{\r
-       global $command;\r
-       \r
-       $command = read;\r
-\r
-       if(func_num_args())\r
-               $aryargs = func_get_args();\r
-       else\r
-               $aryargs = array();\r
-       \r
-       if(file_exists(PLUGIN_DIR."calendar.inc.php"))\r
-       {\r
-               require_once PLUGIN_DIR."calendar.inc.php";\r
-               return call_user_func_array("plugin_calendar_convert",$aryargs);\r
-       }\r
-       else\r
-       {\r
-               return FALSE;\r
-       }\r
-}\r
-?>\r
+<?
+function plugin_calendar_read_convert()
+{
+       global $command;
+       
+       $command = read;
+
+       if(func_num_args())
+               $aryargs = func_get_args();
+       else
+               $aryargs = array();
+       
+       if(file_exists(PLUGIN_DIR."calendar.inc.php"))
+       {
+               require_once PLUGIN_DIR."calendar.inc.php";
+               return call_user_func_array("plugin_calendar_convert",$aryargs);
+       }
+       else
+       {
+               return FALSE;
+       }
+}
+?>
index 8f24955..6eabb58 100644 (file)
-<?\r
-global $name_cols,$comment_cols;\r
-\r
-/////////////////////////////////////////////////\r
-// \83R\83\81\83\93\83g\82Ì\96¼\91O\83e\83L\83X\83g\83G\83\8a\83A\82Ì\83J\83\89\83\80\90\94\r
-$name_cols = 15;\r
-/////////////////////////////////////////////////\r
-// \83R\83\81\83\93\83g\82Ì\83e\83L\83X\83g\83G\83\8a\83A\82Ì\83J\83\89\83\80\90\94\r
-$comment_cols = 70;\r
-/////////////////////////////////////////////////\r
-// \83R\83\81\83\93\83g\82Ì\91}\93ü\83t\83H\81[\83}\83b\83g(\96¼\91O)\r
-$name_format = '[[$name]]';\r
-/////////////////////////////////////////////////\r
-// \83R\83\81\83\93\83g\82Ì\91}\93ü\83t\83H\81[\83}\83b\83g(\83R\83\81\83\93\83g\93à\97e)\r
-$comment_format = '$now $name $msg';\r
-/////////////////////////////////////////////////\r
-// \83R\83\81\83\93\83g\82ð\91}\93ü\82·\82é\88Ê\92u 1:\97\93\82Ì\91O 0:\97\93\82Ì\8cã\r
-$comment_ins = 1;\r
-\r
-\r
-// initialize\r
-$comment_no = 0;\r
-\r
-function plugin_comment_action()\r
-{\r
-       global $post,$vars,$script,$cols,$rows,$del_backup,$do_backup,$update_exec,$now;\r
-       global $name_cols,$comment_cols,$name_format,$comment_format,$comment_ins;\r
-       global $_title_collided,$_msg_collided,$_title_updated;\r
-\r
-       if($post["msg"])\r
-       {\r
-               $post["msg"] = preg_replace("/\n/","",$post["msg"]);\r
-\r
-               $postdata = "";\r
-               $postdata_old  = file(get_filename(encode($post["refer"])));\r
-               $comment_no = 0;\r
-\r
-               if($post[name])\r
-               {\r
-                       $name = str_replace('$name',$post[name],$name_format);\r
-               }\r
-               if($post[msg])\r
-               {\r
-                       if(preg_match("/^(-{1,2})(.*)/",$post[msg],$match))\r
-                       {\r
-                               $head = $match[1];\r
-                               $post[msg] = $match[2];\r
-                       }\r
-                       \r
-                       $comment = str_replace('$msg',$post[msg],$comment_format);\r
-                       $comment = str_replace('$name',$name,$comment);\r
-                       $comment = str_replace('$now',$now,$comment);\r
-               }\r
-               $comment = $head.$comment;\r
-\r
-               foreach($postdata_old as $line)\r
-               {\r
-                       if(!$comment_ins) $postdata .= $line;\r
-                       if(preg_match("/^#comment/",$line))\r
-                       {\r
-                               if($comment_no == $post["comment_no"] && $post[msg]!="")\r
-                               {\r
-                                       $postdata .= "-$comment\n";\r
-                               }\r
-                               $comment_no++;\r
-                       }\r
-                       if($comment_ins) $postdata .= $line;\r
-               }\r
-\r
-               $postdata_input = "-$comment\n";\r
-       }\r
-       \r
-       if(md5(@join("",@file(get_filename(encode($post["refer"]))))) != $post["digest"])\r
-       {\r
-               $title = $_title_collided;\r
-               \r
-               $body = "$_msg_collided\n";\r
-\r
-               $body .= "<form action=\"$script?cmd=preview\" method=\"post\">\n"\r
-                       ."<input type=\"hidden\" name=\"refer\" value=\"".$post["refer"]."\">\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
-               // \8d·\95ª\83t\83@\83C\83\8b\82Ì\8dì\90¬\r
-               if(is_page($post["refer"]))\r
-                       $oldpostdata = join("",file(get_filename(encode($post["refer"]))));\r
-               else\r
-                       $oldpostdata = "\n";\r
-               if($postdata)\r
-                       $diffdata = do_diff($oldpostdata,$postdata);\r
-               file_write(DIFF_DIR,$post["refer"],$diffdata);\r
-\r
-               // \83o\83b\83N\83A\83b\83v\82Ì\8dì\90¬\r
-               if(is_page($post["refer"]))\r
-                       $oldposttime = filemtime(get_filename(encode($post["refer"])));\r
-               else\r
-                       $oldposttime = time();\r
-\r
-               // \95Ò\8fW\93à\97e\82ª\89½\82à\8f\91\82©\82ê\82Ä\82¢\82È\82¢\82Æ\83o\83b\83N\83A\83b\83v\82à\8dí\8f\9c\82·\82é?\82µ\82È\82¢\82Å\82·\82æ\82Ë\81B\r
-               if(!$postdata && $del_backup)\r
-                       backup_delete(BACKUP_DIR.encode($post["refer"]).".txt");\r
-               else if($do_backup && is_page($post["refer"]))\r
-                       make_backup(encode($post["refer"]).".txt",$oldpostdata,$oldposttime);\r
-\r
-               // \83t\83@\83C\83\8b\82Ì\8f\91\82«\8d\9e\82Ý\r
-               file_write(DATA_DIR,$post["refer"],$postdata);\r
-\r
-               // is_page\82Ì\83L\83\83\83b\83V\83\85\82ð\83N\83\8a\83A\82·\82é\81B\r
-               is_page($post["refer"],true);\r
-\r
-               $title = $_title_updated;\r
-       }\r
-       $retvars["msg"] = $title;\r
-       $retvars["body"] = $body;\r
-       \r
-       $post["page"] = $post["refer"];\r
-       $vars["page"] = $post["refer"];\r
-       \r
-       return $retvars;\r
-}\r
-function plugin_comment_convert()\r
-{\r
-       global $script,$comment_no,$vars,$name_cols,$comment_cols,$digest;\r
-       global $_btn_comment,$_btn_name,$vars;\r
-\r
-       if((arg_check("read")||$vars["cmd"] == ""||arg_check("unfreeze")||arg_check("freeze")||$vars["write"]||$vars["comment"]))\r
-               $button = "<input type=\"submit\" name=\"comment\" value=\"$_btn_comment\">\n";\r
-\r
-       $string = "<form action=\"$script\" method=\"post\">\n"\r
-                ."<input type=\"hidden\" name=\"comment_no\" value=\"$comment_no\">\n"\r
-                ."<input type=\"hidden\" name=\"refer\" value=\"$vars[page]\">\n"\r
-                ."<input type=\"hidden\" name=\"plugin\" value=\"comment\">\n"\r
-                ."<input type=\"hidden\" name=\"digest\" value=\"$digest\">\n"\r
-                ."$_btn_name<input type=\"text\" name=\"name\" size=\"$name_cols\">\n"\r
-                ."<input type=\"text\" name=\"msg\" size=\"$comment_cols\">\n"\r
-                .$button\r
-                ."</form>";\r
-\r
-       $comment_no++;\r
-\r
-       return $string;\r
-}\r
-?>\r
+<?
+global $name_cols, $comment_cols, $msg_format, $name_format;
+global $msg_format, $now_format, $comment_format;
+global $comment_ins, $comment_mail, $comment_no;
+
+
+/////////////////////////////////////////////////
+// ¥³¥á¥ó¥È¤Î̾Á°¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¥«¥é¥à¿ô
+$name_cols = 15;
+/////////////////////////////////////////////////
+// ¥³¥á¥ó¥È¤Î¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¥«¥é¥à¿ô
+$comment_cols = 70;
+/////////////////////////////////////////////////
+// ¥³¥á¥ó¥È¤ÎÁÞÆþ¥Õ¥©¡¼¥Þ¥Ã¥È
+$name_format = '[[$name]]';
+$msg_format = '$msg';
+$now_format = 'SIZE(1):$now';
+/////////////////////////////////////////////////
+// ¥³¥á¥ó¥È¤ÎÁÞÆþ¥Õ¥©¡¼¥Þ¥Ã¥È(¥³¥á¥ó¥ÈÆâÍÆ)
+$comment_format = '$msg -- $name $now';
+/////////////////////////////////////////////////
+// ¥³¥á¥ó¥È¤òÁÞÆþ¤¹¤ë°ÌÃÖ 1:Íó¤ÎÁ° 0:Íó¤Î¸å
+$comment_ins = 1;
+/////////////////////////////////////////////////
+// ¥³¥á¥ó¥È¤¬Åê¹Æ¤µ¤ì¤¿¾ì¹ç¡¢ÆâÍƤò¥á¡¼¥ë¤ÇÁ÷¤ëÀè
+$comment_mail = FALSE;
+
+// initialize
+$comment_no = 0;
+
+function plugin_comment_action()
+{
+       global $post,$vars,$script,$cols,$rows,$del_backup,$do_backup,$update_exec,$now;
+       global $name_cols,$comment_cols,$name_format,$msg_format,$now_format,$comment_format,$comment_ins;
+       global $_title_collided,$_msg_collided,$_title_updated;
+       global $_msg_comment_collided,$_title_comment_collided;
+
+       $_comment_format = $comment_format;
+       if($post["nodate"]=="1") {
+               $_comment_format = str_replace('$now','',$_comment_format);
+       }
+       if($post["msg"]=="") {
+               $retvars["msg"] = $name;
+               $post["page"] = $post["refer"];
+               $vars["page"] = $post["refer"];
+               $retvars["body"] = convert_html(join("",file(get_filename(encode($post["refer"])))));
+               return $retvars;
+       }
+       if($post["msg"])
+       {
+               $post["msg"] = preg_replace("/\n/","",$post["msg"]);
+
+               $postdata = "";
+               $postdata_old  = file(get_filename(encode($post["refer"])));
+               $comment_no = 0;
+
+               if($post["name"])
+               {
+                       $name = str_replace('$name',$post["name"],$name_format);
+               }
+               if($post["msg"])
+               {
+                       if(preg_match("/^(-{1,2})(.*)/",$post["msg"],$match))
+                       {
+                               $head = $match[1];
+                               $post["msg"] = $match[2];
+                       }
+                       
+                       $comment = str_replace('$msg',str_replace('$msg',$post["msg"],$msg_format),$_comment_format);
+                       $comment = str_replace('$name',$name,$comment);
+                       $comment = str_replace('$now',str_replace('$now',$now,$now_format),$comment);
+                       $comment = $head.$comment;
+               }
+
+               foreach($postdata_old as $line)
+               {
+                       if(!$comment_ins) $postdata .= $line;
+                       if(preg_match("/^#comment/",$line))
+                       {
+                               if($comment_no == $post["comment_no"] && $post[msg]!="")
+                               {
+                                       $postdata .= "-$comment\n";
+                               }
+                               $comment_no++;
+                       }
+                       if($comment_ins) $postdata .= $line;
+               }
+
+               $postdata_input = "-$comment\n";
+       }
+
+       $title = $_title_updated;
+       if(md5(@join("",@file(get_filename(encode($post["refer"]))))) != $post["digest"])
+       {
+               $title = $_title_comment_collided;
+               $body = $_msg_comment_collided . make_link($post["refer"]);
+       }
+       
+       $postdata = user_rules_str($postdata);
+
+       // º¹Ê¬¥Õ¥¡¥¤¥ë¤ÎºîÀ®
+       if(is_page($post["refer"]))
+               $oldpostdata = join("",file(get_filename(encode($post["refer"]))));
+       else
+               $oldpostdata = "\n";
+       if($postdata)
+               $diffdata = do_diff($oldpostdata,$postdata);
+       file_write(DIFF_DIR,$post["refer"],$diffdata);
+               // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎºîÀ®
+       if(is_page($post["refer"]))
+               $oldposttime = filemtime(get_filename(encode($post["refer"])));
+       else
+               $oldposttime = time();
+
+       // ÊÔ½¸ÆâÍƤ¬²¿¤â½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤È¥Ð¥Ã¥¯¥¢¥Ã¥×¤âºï½ü¤¹¤ë?¤·¤Ê¤¤¤Ç¤¹¤è¤Í¡£
+       if(!$postdata && $del_backup)
+               backup_delete(BACKUP_DIR.encode($post["refer"]).".txt");
+       else if($do_backup && is_page($post["refer"]))
+       make_backup(encode($post["refer"]).".txt",$oldpostdata,$oldposttime);
+
+       // ¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß
+       file_write(DATA_DIR,$post["refer"],$postdata);
+
+       // is_page¤Î¥­¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢¤¹¤ë¡£
+       is_page($post["refer"],true);
+
+       $retvars["msg"] = $title;
+       $retvars["body"] = $body;
+       
+       $post["page"] = $post["refer"];
+       $vars["page"] = $post["refer"];
+       
+       return $retvars;
+}
+function plugin_comment_convert()
+{
+       global $script,$comment_no,$vars,$name_cols,$comment_cols,$digest;
+       global $_btn_comment,$_btn_name,$_msg_comment,$vars;
+
+       $options = func_get_args();
+       
+       $nametags = "$_btn_name<input type=\"text\" name=\"name\" size=\"$name_cols\">\n";
+       if(is_array($options) && in_array("noname",$options)) {
+               $nametags = $_msg_comment;
+       }
+
+       $nodate = '0';
+       if(is_array($options) && in_array("nodate",$options)) {
+               $nodate = '1';
+       }
+
+       if((arg_check("read")||$vars["cmd"] == ""||arg_check("unfreeze")||arg_check("freeze")||$vars["write"]||$vars["comment"]))
+               $button = "<input type=\"submit\" name=\"comment\" value=\"$_btn_comment\">\n";
+
+       $string = "<p><form action=\"$script\" method=\"post\">\n"
+                ."<input type=\"hidden\" name=\"comment_no\" value=\"$comment_no\">\n"
+                ."<input type=\"hidden\" name=\"refer\" value=\"$vars[page]\">\n"
+                ."<input type=\"hidden\" name=\"plugin\" value=\"comment\">\n"
+                ."<input type=\"hidden\" name=\"nodate\" value=\"$nodate\">\n"
+                ."<input type=\"hidden\" name=\"digest\" value=\"$digest\">\n"
+                ."$nametags"
+                ."<input type=\"text\" name=\"msg\" size=\"$comment_cols\">\n"
+                .$button
+                ."</form>";
+
+       $comment_no++;
+
+       return $string;
+}
+?>
diff --git a/plugin/counter.inc.php b/plugin/counter.inc.php
new file mode 100644 (file)
index 0000000..d921ed8
--- /dev/null
@@ -0,0 +1,52 @@
+<?
+/*
+ * PukiWiki ¥«¥¦¥ó¥¿¡¼¥×¥é¥°¥¤¥ó
+ *
+ * CopyRight 2002 Y.MASUI GPL2
+ * http://masui.net/pukiwiki/ masui@masui.net
+ */
+
+// counter file
+define(COUNTER_DIR, "./counter/");
+
+function plugin_counter_convert()
+{
+       global $vars;
+       
+       $file = COUNTER_DIR.encode($vars["page"]).".count";
+       if(!file_exists($file))
+       {
+               $nf = fopen($file, "w");
+               fputs($nf,"0\n0\n0\n0\n\n");
+               fclose($nf);
+       }
+       $array = file($file);
+       $count = rtrim($array[0]);
+       $today = rtrim($array[1]);
+       $today_count = rtrim($array[2]);
+       $yesterday_count = rtrim($array[3]);
+       $ip = rtrim($array[4]);
+       if($ip != $_SERVER["REMOTE_ADDR"] && !(arg_check("add") || arg_check("edit") || arg_check("preview") || $vars['preview'] != '' || $vars['write'] != '')) {
+               $t = date("Y/m/d");
+               if($t != $today) {
+                       $yesterday_count = $today_count;
+                       $today_count = 0;
+                       $today = $t;
+               }
+               ++$count;
+               ++$today_count;
+       }
+       
+       $ip = $_SERVER["REMOTE_ADDR"];
+       $nf = fopen($file, "w");
+       fputs($nf,"$count\n");
+       fputs($nf,"$today\n");
+       fputs($nf,"$today_count\n");
+       fputs($nf,"$yesterday_count\n");
+       fputs($nf,"$ip\n");
+       fclose($nf);
+       
+       return "<font size='1'>Counter: $count, today: $today_count, yesterday: $yesterday_count</font>";
+
+}
+?>
diff --git a/plugin/img.inc.php b/plugin/img.inc.php
new file mode 100644 (file)
index 0000000..b0d9c52
--- /dev/null
@@ -0,0 +1,20 @@
+<?
+function plugin_img_convert()
+{
+       if(func_num_args()!=2) {
+               return;
+       }
+       $aryargs = func_get_args();
+       $url = $aryargs[0];
+       $align = strtoupper($aryargs[1]);
+       
+       if($align == 'R' || $align == 'RIGHT') {
+               $align = 'right';
+       }
+       else {
+               $align = 'left';
+       }
+       
+       return "<div style=\"float:$align\"><img src=\"$url\"></div>";
+}
+?>
diff --git a/plugin/insert.inc.php b/plugin/insert.inc.php
new file mode 100644 (file)
index 0000000..1d56783
--- /dev/null
@@ -0,0 +1,121 @@
+<?
+/////////////////////////////////////////////////
+// ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¥«¥é¥à¿ô
+define("INSERT_COLS",70);
+/////////////////////////////////////////////////
+// ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¹Ô¿ô
+define("INSERT_ROWS",5);
+/////////////////////////////////////////////////
+// ÁÞÆþ¤¹¤ë°ÌÃÖ 1:Íó¤ÎÁ° 0:Íó¤Î¸å
+define("INSERT_INS",1);
+
+function plugin_insert_action()
+{
+       global $post,$vars,$script,$cols,$rows,$del_backup,$do_backup;
+       global $_title_collided,$_msg_collided,$_title_updated;
+
+       if($post["msg"])
+       {
+               $postdata = "";
+               $postdata_old  = file(get_filename(encode($post["refer"])));
+               $insert_no = 0;
+
+               if($post[msg])
+               {
+                       $insert = $post[msg];
+               }
+
+               foreach($postdata_old as $line)
+               {
+                       if(!INSERT_INS) $postdata .= $line;
+                       if(preg_match("/^#insert$/",$line))
+                       {
+                               if($insert_no == $post["insert_no"] && $post[msg]!="")
+                               {
+                                       $postdata .= "$insert\n";
+                               }
+                               $insert_no++;
+                       }
+                       if(INSERT_INS) $postdata .= $line;
+               }
+
+               $postdata_input = "$insert\n";
+       }
+       else
+               return;
+
+       if(md5(@join("",@file(get_filename(encode($post["refer"]))))) != $post["digest"])
+       {
+               $title = $_title_collided;
+
+               $body = "$_msg_collided\n";
+
+               $body .= "<form action=\"$script?cmd=preview\" method=\"post\">\n"
+                       ."<input type=\"hidden\" name=\"refer\" value=\"".$post["refer"]."\">\n"
+                       ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"
+                       ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\" id=\"textarea\">$postdata_input</textarea><br>\n"
+                       ."</form>\n";
+       }
+       else
+       {
+               $postdata = user_rules_str($postdata);
+
+               // º¹Ê¬¥Õ¥¡¥¤¥ë¤ÎºîÀ®
+               if(is_page($post["refer"]))
+                       $oldpostdata = join("",file(get_filename(encode($post["refer"]))));
+               else
+                       $oldpostdata = "\n";
+               if($postdata)
+                       $diffdata = do_diff($oldpostdata,$postdata);
+               file_write(DIFF_DIR,$post["refer"],$diffdata);
+
+               // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎºîÀ®
+               if(is_page($post["refer"]))
+                       $oldposttime = filemtime(get_filename(encode($post["refer"])));
+               else
+                       $oldposttime = time();
+
+               // ÊÔ½¸ÆâÍƤ¬²¿¤â½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤È¥Ð¥Ã¥¯¥¢¥Ã¥×¤âºï½ü¤¹¤ë?¤·¤Ê¤¤¤Ç¤¹¤è¤Í¡£
+               if(!$postdata && $del_backup)
+                       backup_delete(BACKUP_DIR.encode($post["refer"]).".txt");
+               else if($do_backup && is_page($post["refer"]))
+                       make_backup(encode($post["refer"]).".txt",$oldpostdata,$oldposttime);
+
+               // ¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß
+               file_write(DATA_DIR,$post["refer"],$postdata);
+
+               // is_page¤Î¥­¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢¤¹¤ë¡£
+               is_page($post["refer"],true);
+
+               $title = $_title_updated;
+       }
+       $retvars["msg"] = $title;
+       $retvars["body"] = $body;
+
+       $post["page"] = $post["refer"];
+       $vars["page"] = $post["refer"];
+
+       return $retvars;
+}
+function plugin_insert_convert()
+{
+       global $script,$insert_no,$vars,$digest;
+       global $_btn_insert,$vars;
+
+       if((arg_check("read")||$vars["cmd"] == ""||arg_check("unfreeze")||arg_check("freeze")||$vars["write"]||$vars["insert"]))
+               $button = "<input type=\"submit\" name=\"insert\" value=\"$_btn_insert\">\n";
+
+       $string = "<form action=\"$script\" method=\"post\">\n"
+                ."<input type=\"hidden\" name=\"insert_no\" value=\"$insert_no\">\n"
+                ."<input type=\"hidden\" name=\"refer\" value=\"$vars[page]\">\n"
+                ."<input type=\"hidden\" name=\"plugin\" value=\"insert\">\n"
+                ."<input type=\"hidden\" name=\"digest\" value=\"$digest\">\n"
+                ."<textarea name=\"msg\" rows=\"".INSERT_ROWS."\" cols=\"".INSERT_COLS."\">\n</textarea><br>\n"
+                .$button
+                ."</form>";
+
+       $insert_no++;
+
+       return $string;
+}
+?>
index 58a2ab7..76dd5ec 100644 (file)
@@ -1,37 +1,37 @@
-<?\r
-function plugin_lookup_convert()\r
-{\r
-       global $script,$vars;\r
-       \r
-       $args = func_get_args();\r
-       \r
-       if(func_num_args() < 2) return FALSE;\r
-       \r
-       $iwn = trim(strip_tags($args[0]));\r
-       $btn = trim(strip_tags($args[1]));\r
-       $default = trim(strip_tags($args[2]));\r
-       \r
-       $ret = "<form action=\"$script\" method=\"post\">\n";\r
-       $ret.= "<input type=\"hidden\" name=\"plugin\" value=\"lookup\">\n";\r
-       $ret.= "<input type=\"hidden\" name=\"refer\" value=\"$vars[page]\">\n";\r
-       $ret.= "<input type=\"hidden\" name=\"inter\" value=\"$iwn\">\n";\r
-       $ret.= "$iwn:\n";\r
-       $ret.= "<input type=\"text\" name=\"page\" size=\"30\" value=\"$default\">\n";\r
-       $ret.= "<input type=\"submit\" value=\"$btn\">\n";\r
-       $ret.= "</form>\n";\r
-\r
-       return $ret;\r
-}\r
-function plugin_lookup_action()\r
-{\r
-       global $vars,$script;\r
-       \r
-       if(!$vars["inter"] || !$vars["page"]) return;\r
-       \r
-       $interwikiname = "[[".$vars["inter"].":".$vars["page"]."]]";\r
-       $interwikiname = rawurlencode($interwikiname);\r
-       \r
-       header("Location: $script?$interwikiname");\r
-       die();\r
-}\r
-?>\r
+<?
+function plugin_lookup_convert()
+{
+       global $script,$vars;
+       
+       $args = func_get_args();
+       
+       if(func_num_args() < 2) return FALSE;
+       
+       $iwn = trim(strip_tags($args[0]));
+       $btn = trim(strip_tags($args[1]));
+       $default = trim(strip_tags($args[2]));
+       
+       $ret = "<form action=\"$script\" method=\"post\">\n";
+       $ret.= "<input type=\"hidden\" name=\"plugin\" value=\"lookup\">\n";
+       $ret.= "<input type=\"hidden\" name=\"refer\" value=\"$vars[page]\">\n";
+       $ret.= "<input type=\"hidden\" name=\"inter\" value=\"$iwn\">\n";
+       $ret.= "$iwn:\n";
+       $ret.= "<input type=\"text\" name=\"page\" size=\"30\" value=\"$default\">\n";
+       $ret.= "<input type=\"submit\" value=\"$btn\">\n";
+       $ret.= "</form>\n";
+
+       return $ret;
+}
+function plugin_lookup_action()
+{
+       global $vars,$script;
+       
+       if(!$vars["inter"] || !$vars["page"]) return;
+       
+       $interwikiname = "[[".$vars["inter"].":".$vars["page"]."]]";
+       $interwikiname = rawurlencode($interwikiname);
+       
+       header("Location: $script?$interwikiname");
+       die();
+}
+?>
diff --git a/plugin/ls.inc.php b/plugin/ls.inc.php
new file mode 100644 (file)
index 0000000..6e149a3
--- /dev/null
@@ -0,0 +1,62 @@
+<?
+/*
+ * PukiWiki ls¥×¥é¥°¥¤¥ó
+ *
+ * CopyRight 2002 Y.MASUI GPL2
+ * http://masui.net/pukiwiki/ masui@masui.net
+ */
+
+function plugin_ls_convert()
+{
+       global $vars, $script;
+       
+       if(func_num_args())
+               $aryargs = func_get_args();
+       else
+               $aryargs = array();
+
+       $with_title = FALSE;
+       if(array_search('title',$aryargs)!==FALSE) {
+         $with_title = TRUE;
+       }
+       $ls = $comment = '';
+       $filepattern = encode('[['.strip_bracket($vars["page"]).'/');
+       $filepattern_len = strlen($filepattern);
+       if ($dir = @opendir(DATA_DIR))
+       {
+               while($file = readdir($dir))
+               {
+                       if($file == ".." || $file == ".") continue;
+                       if(substr($file,0,$filepattern_len)!=$filepattern) continue; 
+                       $page = decode(trim(preg_replace("/\.txt$/"," ",$file)));
+                       if($with_title) {
+                         $comment = '';
+                         $fd = fopen(DATA_DIR . $file,'r');
+                         if(!feof ($fd)) {
+                           $comment = ereg_replace("^[-*]+",'',fgets($fd,1024));
+                           $comment = ereg_replace("[~\r\n]+$",'',$comment);
+                           $comment = trim($comment);
+                         }
+                         if($comment != '' && substr($comment,0,1) != '#') {
+                           $comment = " - " . convert_html($comment);
+                         }
+                         else {
+                           $comment = '';
+                         }
+                         fclose($fd);
+                       }
+                       $url = rawurlencode($page);
+                       $name = strip_bracket($page);
+                       $title = $name ." " .get_pg_passage($page,false);
+                       $ls .= "<li><a href=\"$script?cmd=read&page=$url\" title=\"$title\">$name</a>$comment\n";
+               }
+               closedir($dir);
+       }
+       
+       if($ls=='') {
+         return '';
+       }
+       
+       return "<ul>$ls</ul>";
+}
+?>
diff --git a/plugin/memo.inc.php b/plugin/memo.inc.php
new file mode 100644 (file)
index 0000000..88ecbcb
--- /dev/null
@@ -0,0 +1,126 @@
+<?
+/////////////////////////////////////////////////
+// ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¥«¥é¥à¿ô
+define("MEMO_COLS",80);
+/////////////////////////////////////////////////
+// ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¹Ô¿ô
+define("MEMO_ROWS",5);
+
+function plugin_memo_action()
+{
+       global $post,$vars,$script,$cols,$rows,$del_backup,$do_backup;
+       global $_title_collided,$_msg_collided,$_title_updated;
+
+       $post["msg"] = preg_replace("/(\x0D\x0A)/","\n",$post["msg"]);
+       $post["msg"] = preg_replace("/(\x0D)/","\n",$post["msg"]);
+       $post["msg"] = preg_replace("/(\x0A)/","\n",$post["msg"]);
+
+       if($post["msg"])
+       {
+               $post["msg"] = str_replace("\n","\\n",$post["msg"]);
+
+               $postdata = "";
+               $postdata_old  = file(get_filename(encode($post["refer"])));
+               $memo_no = 0;
+
+               $memo_body = $post["msg"];
+
+               foreach($postdata_old as $line)
+               {
+                       if(preg_match("/^#memo\(?.*\)?$/",$line))
+                       {
+                               if($memo_no == $post["memo_no"] && $post["msg"]!="")
+                               {
+                                       $postdata .= "#memo($memo_body)\n";
+                                       $line = "";
+                               }
+                               $memo_no++;
+                       }
+                       $postdata .= $line;
+               }
+
+               $postdata_input = "$memo_body\n";
+       }
+       else
+               return;
+       
+       if(md5(@join("",@file(get_filename(encode($post["refer"]))))) != $post["digest"])
+       {
+               $title = $_title_collided;
+               
+               $body = "$_msg_collided\n";
+
+               $body .= "<form action=\"$script?cmd=preview\" method=\"post\">\n"
+                       ."<input type=\"hidden\" name=\"refer\" value=\"".$post["refer"]."\">\n"
+                       ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"
+                       ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\" id=\"textarea\">$postdata_input</textarea><br>\n"
+                       ."</form>\n";
+       }
+       else
+       {
+               $postdata = user_rules_str($postdata);
+
+               // º¹Ê¬¥Õ¥¡¥¤¥ë¤ÎºîÀ®
+               if(is_page($post["refer"]))
+                       $oldpostdata = join("",file(get_filename(encode($post["refer"]))));
+               else
+                       $oldpostdata = "\n";
+               if($postdata)
+                       $diffdata = do_diff($oldpostdata,$postdata);
+               file_write(DIFF_DIR,$post["refer"],$diffdata);
+
+               // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎºîÀ®
+               if(is_page($post["refer"]))
+                       $oldposttime = filemtime(get_filename(encode($post["refer"])));
+               else
+                       $oldposttime = time();
+
+               // ÊÔ½¸ÆâÍƤ¬²¿¤â½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤È¥Ð¥Ã¥¯¥¢¥Ã¥×¤âºï½ü¤¹¤ë?¤·¤Ê¤¤¤Ç¤¹¤è¤Í¡£
+               if(!$postdata && $del_backup)
+                       backup_delete(BACKUP_DIR.encode($post["refer"]).".txt");
+               else if($do_backup && is_page($post["refer"]))
+                       make_backup(encode($post["refer"]).".txt",$oldpostdata,$oldposttime);
+
+               // ¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß
+               file_write(DATA_DIR,$post["refer"],$postdata);
+
+               // is_page¤Î¥­¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢¤¹¤ë¡£
+               is_page($post["refer"],true);
+
+               $title = $_title_updated;
+       }
+       $retvars["msg"] = $title;
+       $retvars["body"] = $body;
+       
+       $post["page"] = $post["refer"];
+       $vars["page"] = $post["refer"];
+       
+       return $retvars;
+}
+function plugin_memo_convert()
+{
+       global $script,$memo_no,$vars,$digest;
+       global $_btn_memo_update,$vars;
+
+       if(func_num_args())
+               $aryargs = func_get_args();
+
+       $data = str_replace("\\n","\n",$aryargs[0]);
+
+       if((arg_check("read")||$vars["cmd"] == ""||arg_check("unfreeze")||arg_check("freeze")||$vars["write"]||$vars["memo"]))
+               $button = "<input type=\"submit\" name=\"memo\" value=\"$_btn_memo_update\">\n";
+
+       $string = "<form action=\"$script\" method=\"post\" class=\"memo\">\n"
+                ."<input type=\"hidden\" name=\"memo_no\" value=\"$memo_no\">\n"
+                ."<input type=\"hidden\" name=\"refer\" value=\"$vars[page]\">\n"
+                ."<input type=\"hidden\" name=\"plugin\" value=\"memo\">\n"
+                ."<input type=\"hidden\" name=\"digest\" value=\"$digest\">\n"
+                ."<textarea name=\"msg\" rows=\"".MEMO_ROWS."\" cols=\"".MEMO_COLS."\">\n$data</textarea><br>\n"
+                .$button
+                ."</form>";
+
+       $memo_no++;
+
+       return $string;
+}
+?>
diff --git a/plugin/newpage.inc.php b/plugin/newpage.inc.php
new file mode 100644 (file)
index 0000000..15fc8b5
--- /dev/null
@@ -0,0 +1,52 @@
+<?
+function plugin_newpage_init()
+{
+  $_plugin_recent_messages = array(
+    '_msg_newpage' => '¥Ú¡¼¥¸¿·µ¬ºîÀ®'
+  );
+  set_plugin_messages($_plugin_recent_messages);
+}
+
+function plugin_newpage_convert()
+{
+       global $script,$vars,$_btn_edit,$_msg_newpage;
+       
+       $ret = "<form action=\"$script\" method=\"post\">\n";
+       $ret.= "<input type=\"hidden\" name=\"plugin\" value=\"newpage\">\n";
+       $ret.= "<input type=\"hidden\" name=\"refer\" value=\"$vars[page]\">\n";
+       $ret.= "$_msg_newpage: ";
+       $ret.= "<input type=\"text\" name=\"page\" size=\"30\" value=\"\">\n";
+       $ret.= "<input type=\"submit\" value=\"$_btn_edit\">\n";
+       $ret.= "</form>\n";
+
+       return $ret;
+}
+
+function plugin_newpage_action()
+{
+       global $vars,$script,$_btn_edit,$_msg_newpage;
+       
+       if(!$vars["page"]) {
+               $retvars["msg"] = $_msg_newpage;
+               $retvars["body"] = "<form action=\"$script\" method=\"post\">\n";
+               $retvars["body"].= "<input type=\"hidden\" name=\"plugin\" value=\"newpage\">\n";
+               $retvars["body"].= "<input type=\"hidden\" name=\"refer\" value=\"$vars[page]\">\n";
+               $retvars["body"].= "$_msg_newpage: ";
+               $retvars["body"].= "<input type=\"text\" name=\"page\" size=\"30\" value=\"\">\n";
+               $retvars["body"].= "<input type=\"submit\" value=\"$_btn_edit\">\n";
+               $retvars["body"].= "</form>\n";
+
+               return $retvars;
+       }
+       
+       if(!preg_match("/^($BracketName)|($InterWikiName)$/",$vars["page"]))
+       {
+               $vars["page"] = "[[$vars[page]]]";
+       }
+
+       $wikiname = rawurlencode($vars["page"]);
+       
+       header("Location: $script?$wikiname");
+       die();
+}
+?>
index 30926c2..4d00b2e 100644 (file)
@@ -1,48 +1,48 @@
-<?\r
-\r
-// user list file\r
-define(USR_LST, "user.dat");\r
-// time out sec\r
-define(TIMEOUT, 300);\r
-\r
-function plugin_online_convert()\r
-{\r
-       global $HTTP_SERVER_VARS;\r
-       \r
-       if(!file_exists(USR_LST))\r
-       {\r
-               $nf = fopen(USR_LST, "w");\r
-               fclose($nf);\r
-       }\r
-       CheckUser($HTTP_SERVER_VARS["REMOTE_ADDR"]);\r
-       return UserCount();\r
-}\r
-\r
-function CheckUser($addr)\r
-{\r
-       $usr_arr = file(USR_LST);\r
-       $fp = fopen(USR_LST, "w");\r
-       while(!flock($fp,LOCK_EX));\r
-       $now = time();\r
-       for($i = 0; $i < count($usr_arr); $i++)\r
-       {\r
-               list($ip_addr,$tim_stmp) = explode("|", $usr_arr[$i]);\r
-               if(($now-$tim_stmp) < TIMEOUT)\r
-               {\r
-                       if($ip_addr != $addr)\r
-                       {\r
-                               fputs($fp, "$ip_addr|$tim_stmp");\r
-                       }\r
-               }\r
-       }\r
-       fputs($fp, "$addr|$now\n");\r
-       flock($fp,LOCK_UN);\r
-       fclose($fp);\r
-}\r
-\r
-function UserCount()\r
-{\r
-       $usr_arr = file(USR_LST);\r
-       return count($usr_arr);\r
-}\r
-?>\r
+<?
+
+// user list file
+define(USR_LST, "counter/user.dat");
+// time out sec
+define(TIMEOUT, 300);
+
+function plugin_online_convert()
+{
+       global $HTTP_SERVER_VARS;
+       
+       if(!file_exists(USR_LST))
+       {
+               $nf = fopen(USR_LST, "w");
+               fclose($nf);
+       }
+       CheckUser($HTTP_SERVER_VARS["REMOTE_ADDR"]);
+       return UserCount();
+}
+
+function CheckUser($addr)
+{
+       $usr_arr = file(USR_LST);
+       $fp = fopen(USR_LST, "w");
+       while(!flock($fp,LOCK_EX));
+       $now = time();
+       for($i = 0; $i < count($usr_arr); $i++)
+       {
+               list($ip_addr,$tim_stmp) = explode("|", $usr_arr[$i]);
+               if(($now-$tim_stmp) < TIMEOUT)
+               {
+                       if($ip_addr != $addr)
+                       {
+                               fputs($fp, "$ip_addr|$tim_stmp");
+                       }
+               }
+       }
+       fputs($fp, "$addr|$now\n");
+       flock($fp,LOCK_UN);
+       fclose($fp);
+}
+
+function UserCount()
+{
+       $usr_arr = file(USR_LST);
+       return count($usr_arr);
+}
+?>
index 1135a76..ab59b40 100644 (file)
@@ -1,64 +1,81 @@
-\r
-/////////////////////////////////////////////////\r
-// \83v\83\89\83O\83C\83\93\83f\83B\83\8c\83N\83g\83\8a\82É\82Â\82¢\82Ä\r
-\r
-  PukiWiki\82Ì\83y\81[\83W\82ÌHTML\82Ö\82Ì\83R\83\93\83o\81[\83g\8e\9e\82Æ\81A\83v\83\89\83O\83C\83\93\8b@\94\\82©\82ç\82Ì\92l\82ð\8eó\82¯\8eæ\82Á\82Ä\r
-  \8f\88\97\9d\82ð\8ds\82¤\83v\83\89\83O\83C\83\93\82ð\90Ý\92u\82·\82é\82±\82Æ\82ª\82Å\82«\82Ü\82·\81B\r
-\r
-  \82±\82Ì\83e\83L\83X\83g\82Í\81A\82»\82Ì\83v\83\89\83O\83C\83\93\82Ì\8bL\8fq\95û\96@\82É\82Â\82¢\82Ä\82Ì\90à\96¾\82ð\82µ\82Ü\82·\81B\r
-\r
-\r
-/////////////////////////////////////////////////\r
-// \83y\81[\83W\93à\82Å\82Ì\83v\83\89\83O\83C\83\93\82Ì\8cÄ\82Ñ\8fo\82µ\r
-\r
-  #\83v\83\89\83O\83C\83\93\96¼\r
-  #\83v\83\89\83O\83C\83\93\96¼(arg1,arg2...)\r
-\r
-    \8ds\93ª\82É\83X\83y\81[\83X\82Í\8aÜ\82ß\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81B\r
-    \88ø\90\94\93à\82É\8a\87\8cÊ()\82ð\8eg\97p\82·\82é\82±\82Æ\82ª\82Å\82«\82é\81B\82½\82¾\82µ ) \92P\91Ì\82Í\95s\89Â\81B\r
-    \88ø\90\94\82ð\8ew\92è\82µ\82È\82­\82Ä\82à\8cÄ\82Ñ\8fo\82¹\82é\r
-\r
-\r
-/////////////////////////////////////////////////\r
-// \83t\83@\83C\83\8b\96¼\r
-\r
-  \83v\83\89\83O\83C\83\93\96¼.inc.php\r
-\r
-\r
-/////////////////////////////////////////////////\r
-// \8aÖ\90\94\r
-\r
-  \81¡function plugin_\83v\83\89\83O\83C\83\93\96¼_convert()\r
-\r
-    HTML\82Ö\82Ì\83R\83\93\83o\81[\83g\8e\9e\82É\8cÄ\82Ñ\8fo\82³\82ê\82é\r
-\r
-    \88ø\90\94\82Í func_get_args() \82Å\94z\97ñ\82Ö\8ai\94[\82Å\82«\82é\81B([0]\81`[n])\r
-    func_num_args() \82É\82æ\82Á\82Ä\81A\93n\82³\82ê\82½\88ø\90\94\82Ì\90\94\82ð\8b\81\82ß\82é\82±\82Æ\82ª\82Å\82«\82é\81B\r
-\r
-  \81¡function plugin_\83v\83\89\83O\83C\83\93\96¼_action()\r
-\r
-    GET\81EPOST\83\81\83\\83b\83h\82Åplugin\82ð\8ew\92è\82³\82ê\82½\82Æ\82«\82É\8cÄ\82Ñ\8fo\82³\82ê\82é\r
-\r
-    \95Ô\92l\82É array("msg" => "$1 is page") \82È\82Ç\82ð\95Ô\82·\82Æ $1 \82ð\83y\81[\83W\96¼\82Æ\82µ\82Ä\r
-    \83y\81[\83W\83^\83C\83g\83\8b\82É\92u\8a·\82³\82ê\82é\r
-\r
-    die() \82ð\8eÀ\8ds\82·\82é\82±\82Æ\82É\82æ\82è\81A\83y\81[\83W\82É\96ß\82ç\82È\82¢\82æ\82¤\82É\82Å\82«\82é\r
-\r
-/////////////////////////////////////////////////\r
-// \83t\83@\83C\83\8b\93à\97e\r
-\r
-  \83\86\81[\83U\82É\90Ý\92è\82³\82¹\82é\8f\89\8aú\92l\82È\82Ç\82É\82Â\82¢\82Ä\82Í\81Adefine \82Å\92è\8b`\82·\82é\81B\r
-\r
-  \83R\83\93\83o\81[\83g\8e\9e\82ÌGET\81EPOST\82Ì\8fo\97Í\93à\97e\82É\95K\97v\82È\82à\82Ì\82Í refer \82Æ plugin \82Æ\82¢\82¤\92l\82Å\81A\r
-  refer : \82»\82Ì\83y\81[\83W\82Ì\96¼\91O($vars["page"])\r
-  plugin : \83v\83\89\83O\83C\83\93\96¼\r
-  \82Æ\82µ\82Ü\82·\81B\r
-\r
-  \88È\89º\82Ì\92l\82ð global \82Å\83O\83\8d\81[\83o\83\8b\95Ï\90\94\82É\82·\82é\82±\82Æ\82É\82æ\82Á\82Ä\92l\82ð\8eæ\93¾\82Å\82«\82Ü\82·\81B\r
-\r
-  $script : \83X\83N\83\8a\83v\83g\96¼\r
-  $get : GET\83\81\83\\83b\83h\82É\82æ\82éHTTP\82©\82ç\82Ì\88ø\90\94\r
-  $post : POST\83\81\83\\83b\83h\82É\82æ\82éHTTP\82©\82ç\82Ì\88ø\90\94\r
-  $vars : GET\81EPOST\97¼\95û\82Ì\83\81\83\\83b\83h\82É\82æ\82éHTTP\82©\82ç\82Ì\88ø\90\94\r
-\r
-  $vars["page"] : \8aJ\82¢\82Ä\82¢\82é\83y\81[\83W\96¼(strip_bracket\8aÖ\90\94\82É\82æ\82è[[]]\82ð\8eæ\82è\8f\9c\82¯\82é)\r
+/////////////////////////////////////////////////
+// ¥×¥é¥°¥¤¥ó¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ä¤¤¤Æ
+
+  PukiWiki¤Î¥Ú¡¼¥¸¤ÎHTML¤Ø¤Î¥³¥ó¥Ð¡¼¥È»þ¤È¡¢¥×¥é¥°¥¤¥óµ¡Ç½¤«¤é¤ÎÃͤò¼õ¤±¼è¤Ã¤Æ
+  ½èÍý¤ò¹Ô¤¦¥×¥é¥°¥¤¥ó¤òÀßÃÖ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+
+  ¤³¤Î¥Æ¥­¥¹¥È¤Ï¡¢¤½¤Î¥×¥é¥°¥¤¥ó¤Îµ­½ÒÊýË¡¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤ò¤·¤Þ¤¹¡£
+
+
+/////////////////////////////////////////////////
+// ¥Ú¡¼¥¸Æâ¤Ç¤Î¥×¥é¥°¥¤¥ó¤Î¸Æ¤Ó½Ð¤·
+
+  #¥×¥é¥°¥¤¥ó̾
+  #¥×¥é¥°¥¤¥ó̾(arg1,arg2...)
+
+    ¹ÔƬ¤Ë¥¹¥Ú¡¼¥¹¤Ï´Þ¤á¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
+    °ú¿ôÆâ¤Ë³ç¸Ì()¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤¿¤À¤· ) Ã±ÂΤÏÉԲġ£
+    °ú¿ô¤ò»ØÄꤷ¤Ê¤¯¤Æ¤â¸Æ¤Ó½Ð¤»¤ë
+
+
+/////////////////////////////////////////////////
+// ¥Õ¥¡¥¤¥ë̾
+
+  ¥×¥é¥°¥¤¥ó̾.inc.php
+
+
+/////////////////////////////////////////////////
+// ´Ø¿ô
+
+  ¢£function plugin_¥×¥é¥°¥¤¥ó̾_convert()
+
+    HTML¤Ø¤Î¥³¥ó¥Ð¡¼¥È»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë
+
+    °ú¿ô¤Ï func_get_args() ¤ÇÇÛÎó¤Ø³ÊǼ¤Ç¤­¤ë¡£([0]¡Á[n])
+    func_num_args() ¤Ë¤è¤Ã¤Æ¡¢ÅϤµ¤ì¤¿°ú¿ô¤Î¿ô¤òµá¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+
+  ¢£function plugin_¥×¥é¥°¥¤¥ó̾_action()
+
+    GET¡¦POST¥á¥½¥Ã¥É¤Çplugin¤ò»ØÄꤵ¤ì¤¿¤È¤­¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë
+
+    ÊÖÃͤˠarray("msg" => "$1 is page") ¤Ê¤É¤òÊÖ¤¹¤È $1 ¤ò¥Ú¡¼¥¸Ì¾¤È¤·¤Æ
+    ¥Ú¡¼¥¸¥¿¥¤¥È¥ë¤ËÃÖ´¹¤µ¤ì¤ë
+
+    die() ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥Ú¡¼¥¸¤ËÌá¤é¤Ê¤¤¤è¤¦¤Ë¤Ç¤­¤ë
+
+  ¢£function plugin_¥×¥é¥°¥¤¥ó̾_init()
+
+    ¥×¥é¥°¥¤¥ó¤¬Æɤ߹þ¤Þ¤ì¤ë»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
+
+    $_plugin_recent_messages = array(
+    '_recent_plugin_li'=>'¡¦',
+    '_recent_plugin_frame '=>'<span align="center"><h5 class="side_label">ºÇ¿·¤Î%d·ï</h5></span><small>%s</small>'
+    );
+    set_plugin_messages($_plugin_recent_messages);
+
+    ¤È¤·¤ÆÃÖ¤¯¤È¡¢*.lng¥Õ¥¡¥¤¥ë¤Ç¥Ü¥¿¥ó¤ä¥á¥Ã¥»¡¼¥¸¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Î¤ß
+    ¥á¥Ã¥»¡¼¥¸¤Ê¤É¤¬¥»¥Ã¥È¤µ¤ì¤Þ¤¹¡£
+    ÊÑ¿ô¤Ê¤É¤Î½é´ü²½¤â¹Ô¤¨¤Þ¤¹¤¬¡¢PukiWiki 1.3.1(MASUI'z Edition)°Ê¹ß¤Î¤ß
+    Í­¸ú¤Ç¤¹¤Î¤Ç¡¢¸Å¤¤PukiWiki¤«¤é¤Ï¸Æ¤Ð¤ì¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤òµ¤¤ò¤Ä¤±¤Æ
+    ¤¯¤À¤µ¤¤¡£
+    set_plugin_messages´Ø¿ô¤âPukiWiki 1.3.1(MASUI'z Edition)°Ê¹ß¤Î¤ß¤Ç¤¹¡£
+
+
+/////////////////////////////////////////////////
+// ¥Õ¥¡¥¤¥ëÆâÍÆ
+
+  ¥æ¡¼¥¶¤ËÀßÄꤵ¤»¤ë½é´üÃͤʤɤˤĤ¤¤Æ¤Ï¡¢define ¤ÇÄêµÁ¤¹¤ë¡£
+
+  ¥³¥ó¥Ð¡¼¥È»þ¤ÎGET¡¦POST¤Î½ÐÎÏÆâÍƤËɬÍפʤâ¤Î¤Ï refer ¤È plugin ¤È¤¤¤¦Ãͤǡ¢
+  refer : ¤½¤Î¥Ú¡¼¥¸¤Î̾Á°($vars["page"])
+  plugin : ¥×¥é¥°¥¤¥ó̾
+  ¤È¤·¤Þ¤¹¡£
+
+  °Ê²¼¤ÎÃͤò global ¤Ç¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Ë¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÃͤò¼èÆÀ¤Ç¤­¤Þ¤¹¡£
+
+  $script : ¥¹¥¯¥ê¥×¥È̾
+  $get : GET¥á¥½¥Ã¥É¤Ë¤è¤ëHTTP¤«¤é¤Î°ú¿ô
+  $post : POST¥á¥½¥Ã¥É¤Ë¤è¤ëHTTP¤«¤é¤Î°ú¿ô
+  $vars : GET¡¦POSTξÊý¤Î¥á¥½¥Ã¥É¤Ë¤è¤ëHTTP¤«¤é¤Î°ú¿ô
+
+  $vars["page"] : ³«¤¤¤Æ¤¤¤ë¥Ú¡¼¥¸Ì¾(strip_bracket´Ø¿ô¤Ë¤è¤ê[[]]¤ò¼è¤ê½ü¤±¤ë)
diff --git a/plugin/recent.inc.php b/plugin/recent.inc.php
new file mode 100644 (file)
index 0000000..0b20bd2
--- /dev/null
@@ -0,0 +1,66 @@
+<?
+/*
+ * PukiWiki ºÇ¿·¤Î?·ï¤òɽ¼¨¤¹¤ë¥×¥é¥°¥¤¥ó
+ *
+ * CopyRight 2002 Y.MASUI GPL2
+ * http://masui.net/pukiwiki/ masui@masui.net
+ * 
+ * Êѹ¹ÍúÎò:
+ *  2002.04.08: pat¤µ¤ó¡¢¤ß¤Î¤ë¤µ¤ó¤Î»ØŦ¤Ë¤è¤ê¡¢¥ê¥ó¥¯À褬ÆüËܸì¤Î¾ì¹ç¤Ë
+ *              ²½¤±¤ë¤Î¤ò½¤Àµ
+ * 
+ *  2002.06.17: plugin_recent_init()¤òÀßÄê
+ */
+
+function plugin_recent_init()
+{
+  $_plugin_recent_messages = array(
+    '_recent_plugin_li'=>'¡¦',
+    '_recent_plugin_frame '=>'<span align="center"><h5 class="side_label">ºÇ¿·¤Î%d·ï</h5></span><small>%s</small>');
+  set_plugin_messages($_plugin_recent_messages);
+}
+
+function plugin_recent_convert()
+{
+       global $_recent_plugin_li,$_recent_plugin_frame;
+       global $WikiName,$BracketName,$script,$whatsnew;
+       
+       $recent_lines = 10;
+       if(func_num_args()>0) {
+               $array = func_get_args();
+               $recent_lines = $array[0];
+       }
+       
+       $lines = file(get_filename(encode($whatsnew)));
+       $date = $items = "";
+       $cnt = 0;
+       foreach($lines as $line)
+       {
+               if($cnt > $recent_lines - 1) break;
+               if(preg_match("/(($WikiName)|($BracketName))/",$line,$match))
+               {
+                       $name = $match[1];
+                       if($match[2])
+                       {
+                               $title = $match[1];
+                       }
+                       else
+                       {
+                               $title = strip_bracket($match[1]);
+                       }
+                       if(preg_match("/([0-9]{4}-[0-9]{2}-[0-9]{2})/",$line,$match)) {
+                               if($date != $match[0]) {
+                                       if($date != '') {
+                                               $items .= "<br>";
+                                       }
+                                       $items .= "<b>".$match[0]."</b><br>";
+                                       $date = $match[0];
+                               }
+                       }
+                       $items .= $_recent_plugin_li."<a href=\"".$script."?".rawurlencode($name)."\" title=\"$title ".get_pg_passage($name,false)."\">".$title."</a><BR>\n";
+                       $cnt++;
+               }
+       }
+       return sprintf($_recent_plugin_frame,$cnt,$items);
+}
+?>
diff --git a/plugin/source.inc.php b/plugin/source.inc.php
new file mode 100644 (file)
index 0000000..989c6d0
--- /dev/null
@@ -0,0 +1,12 @@
+<?
+function plugin_source_action()
+{
+       global $post,$vars,$script,$InterWikiName,$WikiName,$BracketName,$defaultpage;
+
+       header("Content-type: text/plain");
+       readfile(get_filename(encode($vars["page"])));
+
+       die();
+}
+
+?>
diff --git a/plugin/update.inc.php b/plugin/update.inc.php
new file mode 100644 (file)
index 0000000..39a98ea
--- /dev/null
@@ -0,0 +1,118 @@
+<?
+///////////////////////
+//
+define(PLUGIN_UPDATE_SECRET,'GReenOrRed');
+
+
+function plugin_update_action()
+{
+  global $vars,$script,$do_backup,$del_backup;
+
+  $page = $vars["page"];
+  header("Content-type: text/plain");
+  // º¹Ê¬¥Õ¥¡¥¤¥ë¤ÎºîÀ®
+  if(is_page($vars["page"]))
+    $oldpostdata = join("",get_source($page));
+  else
+    $oldpostdata = "";
+
+  list($postdata,$auto) = plugin_update_diff($oldpostdata,$vars['body']);
+  $postdata = user_rules_str($postdata);
+  if($postdata == $oldpostdata) {
+    print "status noupdate\n\n";
+    die;
+  }
+  
+  if($postdata)
+    $diffdata = do_diff($oldpostdata,$postdata);
+  file_write(DIFF_DIR,$page,$diffdata);
+  
+  // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎºîÀ®
+  if(is_page($page))
+    $oldposttime = filemtime(get_filename(encode($page)));
+  else
+    $oldposttime = time();
+  
+  // ÊÔ½¸ÆâÍƤ¬²¿¤â½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤È¥Ð¥Ã¥¯¥¢¥Ã¥×¤âºï½ü¤¹¤ë?¤·¤Ê¤¤¤Ç¤¹¤è¤Í¡£
+  if(!$postdata && $del_backup)
+    backup_delete(BACKUP_DIR.encode($vars["page"]).".txt");
+  else if($do_backup && is_page($vars["page"]))
+    make_backup(encode($vars["page"]).".txt",$oldpostdata,$oldposttime);
+  
+  // ¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß
+  file_write(DATA_DIR,$vars["page"],$postdata);
+  
+  // is_page¤Î¥­¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢¤¹¤ë¡£
+  is_page($vars["page"],true);
+  
+  if($auto) {
+    print "status updated\n";
+  }
+  else {
+    print "status collided\n";
+  }
+  print "\n".$postdata;
+  
+  die();
+}
+
+// º¹Ê¬¤ÎºîÀ®
+function plugin_update_diff($oldstr,$newstr)
+{
+  $oldlines = split("\n",ereg_replace("[\r\n\t ]+$",'',$oldstr));
+  $newlines = split("\n",ereg_replace("[\r\n\t ]+$",'',$newstr));
+
+  if(sizeof($oldlines)==1 && $oldlines[0]=='') {
+    $oldlines = array();
+  }
+  if(sizeof($newlines)==1 && $newlines[0]=='') {
+    $newlines = array();
+  }
+  $retdiff = $props = array();
+  $auto = true;
+  
+  foreach($newlines as $newline) {
+    $flg = false;
+    $cnt = 0;
+    foreach($oldlines as $oldline) {
+      if($oldline == $newline) {
+       if($cnt>0) {
+         for($i=0; $i<$cnt; ++$i) {
+           array_push($retdiff,array_shift($oldlines));
+           array_push($props,'! ');
+           $auto = false;
+         }
+       }
+       array_push($retdiff,array_shift($oldlines));
+       array_push($props,'');
+       $flg = true;
+       break;
+      }
+      $cnt++;
+    }
+    if(!$flg) {
+      array_push($retdiff,$newline);
+#      array_push($props,'+ ');
+      array_push($props,'');
+    }
+  }
+  foreach($oldlines as $oldline) {
+    array_push($retdiff,$oldline);
+    array_push($props,'! ');
+    $auto = false;
+  }
+  if($auto) {
+    return array(join("\n",$retdiff),$auto);
+  }
+  
+  $ret = '';
+  foreach($retdiff as $line) {
+    $ret .= array_shift($props) . $line . "\n";
+  }
+  return array($ret,$auto);
+}
+
+?>
index 6d73b76..65102d1 100644 (file)
@@ -1,6 +1,6 @@
-<?\r
-function plugin_version_convert()\r
-{\r
-       return "<b>".S_VERSION."</b>";\r
-}\r
-?>\r
+<?
+function plugin_version_convert()
+{
+       return "<b>".S_VERSION."</b>";
+}
+?>
diff --git a/plugin/vote.inc.php b/plugin/vote.inc.php
new file mode 100644 (file)
index 0000000..a1fe4a7
--- /dev/null
@@ -0,0 +1,150 @@
+<?
+
+function plugin_vote_action()
+{
+       global $post,$vars,$script,$cols,$rows,$del_backup,$do_backup;
+       global $_title_collided,$_msg_collided,$_title_updated;
+
+       $postdata_old  = file(get_filename(encode($post["refer"])));
+       $vote_no = 0;
+
+       foreach($postdata_old as $line)
+       {
+               if(preg_match("/^#vote\((.*)\)$/",$line,$arg))
+               {
+                       if($vote_no == $post["vote_no"])
+                       {
+                               $args = explode(",",$arg[1]);
+
+                               foreach($args as $arg)
+                               {
+                                       if(preg_match("/^(.+)\[(\d+)\]$/",$arg,$match))
+                                       {
+                                               $arg = $match[1];
+                                               $cnt = $match[2];
+                                       }
+                                       else
+                                       {
+                                               $cnt = 0;
+                                       }
+
+                                       if($post["vote"][preg_replace("/\]\]$/","",$arg)]) $cnt++;
+
+                                       $votes[] = $arg.'['.$cnt.']';
+                               }
+
+                               $vote_str = "#vote(" . @join(",",$votes) . ")\n";
+
+                               $postdata_input = $vote_str;
+                               $postdata .= $vote_str;
+                               $line = "";
+                       }
+                       $vote_no++;
+               }
+               $postdata .= $line;
+       }
+
+       if(md5(@join("",@file(get_filename(encode($post["refer"]))))) != $post["digest"])
+       {
+               $title = $_title_collided;
+
+               $body = "$_msg_collided\n";
+
+               $body .= "<form action=\"$script?cmd=preview\" method=\"post\">\n"
+                       ."<input type=\"hidden\" name=\"refer\" value=\"".$post["refer"]."\">\n"
+                       ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"
+                       ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\" id=\"textarea\">$postdata_input</textarea><br>\n"
+                       ."</form>\n";
+       }
+       else
+       {
+               // ?¡¦?a?t?@?C???I?i?¢Ì
+               if(is_page($post["refer"]))
+                       $oldpostdata = join("",file(get_filename(encode($post["refer"]))));
+               else
+                       $oldpostdata = "\n";
+               if($postdata)
+                       $diffdata = do_diff($oldpostdata,$postdata);
+               file_write(DIFF_DIR,$post["refer"],$diffdata);
+
+               // ?o?b?N?A?b?v?I?i?¢Ì
+               if(is_page($post["refer"]))
+                       $oldposttime = filemtime(get_filename(encode($post["refer"])));
+               else
+                       $oldposttime = time();
+
+               // ?O?W¡Èa?e?a¢ó??a?¡Æ?c?e?A?¡ñ?E?¡ñ?A?o?b?N?A?b?v?a?i???¡¦?e??¦Ì?E?¡ñ?A?¡¦?a?E?B
+               if(!$postdata && $del_backup)
+                       backup_delete(BACKUP_DIR.encode($post["refer"]).".txt");
+               else if($do_backup && is_page($post["refer"]))
+                       make_backup(encode($post["refer"]).".txt",$oldpostdata,$oldposttime);
+
+               // ?t?@?C???I?¡Æ?¢ã???Y
+               file_write(DATA_DIR,$post["refer"],$postdata);
+
+               // is_page?I?L???b?V?¡Ä?d?N???A?¡¦?e?B
+               is_page($post["refer"],true);
+
+               $title = $_title_updated;
+       }
+
+       $retvars["msg"] = $title;
+       $retvars["body"] = $body;
+
+       $post["page"] = $post["refer"];
+       $vars["page"] = $post["refer"];
+
+       return $retvars;
+}
+function plugin_vote_convert()
+{
+       global $script,$vars,$vote_no,$digest;
+
+       $args = func_get_args();
+
+       if(!func_num_args()) return FALSE;
+
+       $string = "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\">\n"
+
+               . "<form action=\"$script\" method=\"post\">\n"
+               . "<input type=\"hidden\" name=\"plugin\" value=\"vote\">\n"
+               . "<input type=\"hidden\" name=\"refer\" value=\"$vars[page]\">\n"
+               . "<input type=\"hidden\" name=\"vote_no\" value=\"$vote_no\">\n"
+               . "<input type=\"hidden\" name=\"digest\" value=\"$digest\">\n"
+
+               . "<tr>\n"
+               . "<td align=\"left\" class=\"vote_label\"><b>The choices</b></td>\n"
+               . "<td align=\"center\" class=\"vote_label\"><b>Votes</b></td>\n"
+               . "</tr>\n";
+
+       $tdcnt = 0;
+       foreach($args as $arg)
+       {
+               $cnt = 0;
+
+               if(preg_match("/^(.+)\[(\d+)\]$/",$arg,$match))
+               {
+                       $arg = $match[1];
+                       $cnt = $match[2];
+               }
+
+               $link = make_link($arg);
+
+               if($tdcnt++ % 2) $cls = "vote_td1";
+               else           $cls = "vote_td2";
+
+               $string .= "<tr>"
+                       .  "<td width=\"80%\" class=\"$cls\" nowrap>$link</td>"
+                       .  "<td class=\"$cls\" nowrap>$cnt&nbsp;&nbsp;<input type=\"submit\" name=\"vote[$arg]\" value=\"Vote\"></td>"
+                       .  "</tr>\n";
+       }
+
+       $string .= "</form>\n"
+               .  "</table>\n";
+
+       $vote_no++;
+
+       return $string;
+}
+?>
+
index 3071cd8..3091708 100644 (file)
@@ -1,5 +1,9 @@
 <?\r
 /////////////////////////////////////////////////\r
+// PukiWiki - Yet another WikiWikiWeb clone.\r
+//\r
+// $Id: pukiwiki.ini.php,v 1.2 2002/06/21 05:21:46 masui Exp $\r
+//\r
 // PukiWiki setting file\r
 \r
 /////////////////////////////////////////////////\r
@@ -19,7 +23,7 @@ define("PLUGIN_DIR","./plugin/");
 \r
 /////////////////////////////////////////////////\r
 // ¥¹¥­¥ó¥Õ¥¡¥¤¥ë¤Î¾ì½ê¡£\r
-define("SKIN_FILE","./pukiwiki.skin.ja.php");\r
+define("SKIN_FILE","./skin/pukiwiki.skin.ja.php");\r
 \r
 /////////////////////////////////////////////////\r
 // Language\r
@@ -154,11 +158,19 @@ $splitter = ">>>>>>>>>>";
 /////////////////////////////////////////////////\r
 // °ìÍ÷¡¦¹¹¿·°ìÍ÷¤Ë´Þ¤á¤Ê¤¤¥Ú¡¼¥¸Ì¾(Àµµ¬É½¸½¤Ç)\r
 $non_list = "^(\[\[\:)";\r
+\r
 /////////////////////////////////////////////////\r
 // ¿÷·Á¤È¤¹¤ë¥Ú¡¼¥¸¤ÎÆɤ߹þ¤ß¤òɽ¼¨¤µ¤»¤ë¤«\r
 $load_template_func = 1;\r
 \r
 /////////////////////////////////////////////////\r
+// ¥Ú¡¼¥¸Ì¾¤Ë½¾¤Ã¤Æ¼«Æ°¤Ç¡¢¿÷·Á¤È¤¹¤ë¥Ú¡¼¥¸¤ÎÆɤ߹þ¤ß\r
+$auto_template_func = 1;\r
+$auto_template_rules = array(\r
+'\[\[((.+)\/([^\/]+))\]\]' => '[[\2/template]]'\r
+);\r
+\r
+/////////////////////////////////////////////////\r
 // ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë\r
 //\r
 //  Àµµ¬É½¸½¤Çµ­½Ò¤·¤Æ¤¯¤À¤µ¤¤¡£?(){}-*./+\$^|¤Ê¤É\r
@@ -173,6 +185,7 @@ $str_rules = array(
 "date\?" => date($date_format,UTIME),\r
 "time\?" => date($time_format,UTIME),\r
 );\r
+\r
 /////////////////////////////////////////////////\r
 // ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë(¥³¥ó¥Ð¡¼¥È»þ¤ËÃÖ´¹¡¢Ä¾Àܤ·¤Ê¤¤)\r
 $line_rules = array(\r
@@ -369,4 +382,4 @@ now? 
 </ul>\r
 ';\r
 \r
-?>
\ No newline at end of file
+?>\r
index aaa6ee8..7d8ad50 100644 (file)
-<?\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", "&lt;/$1&gt;", $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("/</","&lt;",$diffdata);\r
-               $diffdata = preg_replace("/>/","&gt;",$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
-               ."&nbsp;<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("/</","&lt;",$diffdata);\r
-                       $diffdata = preg_replace("/>/","&gt;",$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>&nbsp;".$head."&nbsp;</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("/&amp;((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("&amp;","&lt;","&gt;");\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
+<?
+// pukiwiki.php - Yet another WikiWikiWeb clone.
+//
+// PukiWiki 1.3.* MASUI'z Edition
+//  Copyright (C) 2002 by sng, MASUI.
+//  Yuichiro MASUI <masui@masui.net>
+//  http://masui.net/pukiwiki/
+//
+// PukiWiki 1.3 (Base)
+//  Copyright (C) 2001,2002 by sng.
+//  <sng@factage.com>
+//  http://factage.com/sng/pukiwiki/
+//
+// Special thanks
+//  YukiWiki by Hiroshi Yuki
+//  <hyuki@hyuki.com>
+//  http://www.hyuki.com/yukiwiki/
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// $Id: pukiwiki.php,v 1.2 2002/06/21 05:21:46 masui Exp $
+/////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////
+// ¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ëÆɤ߹þ¤ß
+require("func.php");
+require("file.php");
+require("plugin.php");
+require("template.php");
+require("html.php");
+require("backup.php");
+require("rss.php");
+
+
+/////////////////////////////////////////////////
+// ¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ëÆɤ߹þ¤ß
+require("init.php");
+
+
+/////////////////////////////////////////////////
+// ¥á¥¤¥ó½èÍý
+
+// Plug-in action
+if(!empty($vars["plugin"]) && exist_plugin_action($vars["plugin"]))
+{
+       $retvars = do_plugin_action($vars["plugin"]);
+       
+       $title = strip_bracket($vars["refer"]);
+       $page = make_search($vars["refer"]);
+       
+       if($retvars["msg"])
+       {
+               $title =  str_replace("$1",$title,$retvars["msg"]);
+               $page =  str_replace("$1",$page,$retvars["msg"]);
+       }
+       
+       if(!empty($retvars["body"]))
+       {
+               $body = $retvars["body"];
+       }
+       else
+       {
+               $cmd = "read";
+               $vars["page"] = $vars["refer"];
+               $body = @join("",get_source($vars["refer"]));
+               $body = convert_html($body);
+       }
+}
+// °ìÍ÷¤Îɽ¼¨
+else if(arg_check("list"))
+{
+       header_lastmod($whatsnew);
+       
+       $page = $title = $_title_list;
+       $body = "<ul>\n" . get_list(false) . "</ul>\n";
+}
+// ¥Õ¥¡¥¤¥ë̾°ìÍ÷¤Îɽ¼¨
+else if(arg_check("filelist"))
+{
+       header_lastmod($whatsnew);
+
+       $page = $title = $_title_filelist;
+       $body = "<ul>\n" . get_list(true) . "</ul>\n";
+}
+// ÊÔ½¸ÉÔ²Äǽ¤Ê¥Ú¡¼¥¸¤òÊÔ½¸¤·¤è¤¦¤È¤·¤¿¤È¤­
+else if(((arg_check("add") || arg_check("edit") || arg_check("preview")) && (is_freeze($vars["page"]) || !is_editable($vars["page"]) || $vars["page"] == "")))
+{
+       $body = $title = str_replace('$1',strip_bracket($vars["page"]),$_title_cannotedit);
+       $page = str_replace('$1',make_search($vars["page"]),$_title_cannotedit);
+
+       if(is_freeze($vars["page"]))
+               $body .= "(<a href=\"$script?cmd=unfreeze&page=".rawurlencode($vars["page"])."\">$_msg_unfreeze</a>)";
+}
+// ÄɲÃ
+else if(arg_check("add"))
+{
+       $title = str_replace('$1',strip_bracket($get["page"]),$_title_add);
+       $page = str_replace('$1',make_search($get["page"]),$_title_add);
+       $body = "<ul>\n";
+       $body .= "<li>$_msg_add</li>\n";
+       $body .= "</ul>\n";
+       $body .= edit_form("",$get["page"],true);
+}
+// ÊÔ½¸
+else if(arg_check("edit"))
+{
+        $postdata = @join("",get_source($get["page"]));
+       if($postdata == '') {
+               $postdata = auto_template($get["page"]);
+       }  
+       $title = str_replace('$1',strip_bracket($get["page"]),$_title_edit);
+       $page = str_replace('$1',make_search($get["page"]),$_title_edit);
+       $body = edit_form($postdata,$get["page"]);
+}
+// ¥×¥ì¥Ó¥å¡¼
+else if(arg_check("preview") || $post["preview"] || $post["template"])
+{
+        if($post["template"] && page_exists($post["template_page"]))
+       {
+               $post["msg"] = @join("",get_source($post["template_page"]));
+       }
+       
+       $post["msg"] = preg_replace("/^#freeze\n/","",$post["msg"]);
+       $postdata_input = $post["msg"];
+
+       if($post["add"])
+       {
+               if($post["add_top"])
+               {
+                       $postdata  = $post["msg"];
+                       $postdata .= "\n\n";
+                       $postdata .= @join("",get_source($post["page"]));
+               }
+               else
+               {
+                       $postdata  = @join("",get_source($post["page"]));
+                       $postdata .= "\n\n";
+                       $postdata .= $post["msg"];
+               }
+       }
+       else
+       {
+               $postdata = $post["msg"];
+       }
+
+       $title = str_replace('$1',strip_bracket($post["page"]),$_title_preview);
+       $page = str_replace('$1',make_search($post["page"]),$_title_preview);
+
+       $body = "$_msg_preview<br>\n";
+       if($postdata == "") $body .= "<b>$_msg_preview_delete</b><br>\n";
+       else                $body .= "<br>\n";
+
+       if($postdata != "")
+       {
+               $postdata = convert_html($postdata);
+               
+               $body .= "<table width=\"100%\" bgcolor=\"$preview_color\">\n"
+                       ."<tr><td>\n"
+                       .$postdata
+                       ."\n</td></tr>\n"
+                       ."</table>\n";
+       }
+
+       if($post["add"])
+       {
+               if($post["add_top"]) $checked_top = " checked";
+               $addtag = '<input type="hidden" name="add" value="true">';
+               $add_top = '<input type="checkbox" name="add_top" value="true"'.$checked_top.'><small>¥Ú¡¼¥¸¤Î¾å¤ËÄɲÃ</small>';
+       }
+       if($post["notimestamp"]) $checked_time = "checked";
+
+       $body .= "<form action=\"$script\" method=\"post\">\n"
+               ."<input type=\"hidden\" name=\"help\" value=\"$post[add]\">\n"
+               ."<input type=\"hidden\" name=\"page\" value=\"".$post["page"]."\">\n"
+               ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"
+               ."$addtag\n"
+               ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\">\n".htmlspecialchars($postdata_input)."</textarea><br>\n"
+               ."<input type=\"submit\" name=\"preview\" value=\"$_btn_repreview\" accesskey=\"p\">\n"
+               ."<input type=\"submit\" name=\"write\" value=\"$_btn_update\" accesskey=\"s\">\n"
+               ."$add_top\n"
+               ."<input type=\"checkbox\" name=\"notimestamp\" value=\"true\" $checked_time><small>$_btn_notchangetimestamp</small>\n"
+               ."</form>\n";
+}
+// ½ñ¤­¹þ¤ß¤â¤·¤¯¤ÏÄɲä⤷¤¯¤Ï¥³¥á¥ó¥È¤ÎÁÞÆþ
+else if($post["write"])
+{
+       $post["msg"] = preg_replace("/^#freeze\n/","",$post["msg"]);
+       $postdata_input = $post["msg"];
+
+       if($post["add"])
+       {
+               if($post["add_top"])
+               {
+                       $postdata  = $post["msg"];
+                       $postdata .= "\n\n";
+                       $postdata .= @join("",get_source($post["page"]));
+               }
+               else
+               {
+                       $postdata  = @join("",get_source($post["page"]));
+                       $postdata .= "\n\n";
+                       $postdata .= $post["msg"];
+               }
+       }
+       else
+       {
+               $postdata = $post["msg"];
+       }
+
+        $oldpagesrc = get_source($post["page"]);
+       if(md5(join("",$oldpagesrc)) != $post["digest"])
+       {
+               $title = str_replace('$1',strip_bracket($post["page"]),$_title_collided);
+               $page = str_replace('$1',make_search($post["page"]),$_title_collided);
+               $post["digest"] = md5(join("",($oldpagesrc)));
+               list($postdata_input,$auto) = do_update_diff(join("",$oldpagesrc),$postdata_input);
+               
+               if($auto) {
+                 $body = $_msg_collided_auto."\n";
+               }
+               else {
+                 $body = $_msg_collided."\n";
+               }
+               $body .= "<form action=\"$script\" method=\"post\">\n"
+                       ."<input type=\"hidden\" name=\"page\" value=\"".$post["page"]."\">\n"
+                       ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"
+                       ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\" id=\"textarea\">$postdata_input</textarea><br>\n"
+                       ."<input type=\"submit\" name=\"preview\" value=\"$_btn_repreview\" accesskey=\"p\">\n"
+                       ."<input type=\"submit\" name=\"write\" value=\"$_btn_update\" accesskey=\"s\">\n"
+                       ."$add_top\n"
+                       ."<input type=\"checkbox\" name=\"notimestamp\" value=\"true\" $checked_time><small>$_btn_notchangetimestamp</small>\n"
+                       ."</form>\n";
+       }
+       else
+       {
+               $postdata = user_rules_str($postdata);
+
+               // º¹Ê¬¥Õ¥¡¥¤¥ë¤ÎºîÀ®
+               if(is_page($post["page"]))
+                       $oldpostdata = join("",get_source($post["page"]));
+               else
+                       $oldpostdata = "\n";
+               if($postdata)
+                       $diffdata = do_diff($oldpostdata,$postdata);
+               file_write(DIFF_DIR,$post["page"],$diffdata);
+
+               // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎºîÀ®
+               if(is_page($post["page"]))
+                       $oldposttime = filemtime(get_filename(encode($post["page"])));
+               else
+                       $oldposttime = time();
+
+               // ÊÔ½¸ÆâÍƤ¬²¿¤â½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤È¥Ð¥Ã¥¯¥¢¥Ã¥×¤âºï½ü¤¹¤ë?¤·¤Ê¤¤¤Ç¤¹¤è¤Í¡£
+               if(!$postdata && $del_backup)
+                       backup_delete(BACKUP_DIR.encode($post["page"]).".txt");
+               else if($do_backup && is_page($post["page"]))
+                       make_backup(encode($post["page"]).".txt",$oldpostdata,$oldposttime);
+
+               // ¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß
+               file_write(DATA_DIR,$post["page"],$postdata);
+
+               // is_page¤Î¥­¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢¤¹¤ë¡£
+               is_page($post["page"],true);
+
+               if($postdata)
+               {
+                       $title = str_replace('$1',strip_bracket($post["page"]),$_title_updated);
+                       $page = str_replace('$1',make_search($post["page"]),$_title_updated);
+                       $body = convert_html($postdata);
+                       header("Location: $script?".rawurlencode($post["page"]));
+               }
+               else
+               {
+                       $title = str_replace('$1',strip_bracket($post["page"]),$_title_deleted);
+                       $page = str_replace('$1',make_search($post["page"]),$_title_deleted);
+                       $body = str_replace('$1',strip_bracket($post["page"]),$_title_deleted);
+               }
+       }
+}
+// Åà·ë
+else if(arg_check("freeze") && $vars["page"] && $function_freeze)
+{
+       if(is_freeze($vars["page"]))
+       {
+               $title = str_replace('$1',strip_bracket($vars["page"]),$_title_isfreezed);
+               $page = str_replace('$1',make_search($vars["page"]),$_title_isfreezed);
+               $body = str_replace('$1',strip_bracket($vars["page"]),$_title_isfreezed);
+       }
+       else if(md5($post["pass"]) == $adminpass)
+       {
+               $postdata = get_source($post["page"]);
+               $postdata = join("",$postdata);
+               $postdata = "#freeze\n".$postdata;
+
+               file_write(DATA_DIR,$vars["page"],$postdata);
+
+               $title = str_replace('$1',strip_bracket($vars["page"]),$_title_freezed);
+               $page = str_replace('$1',make_search($vars["page"]),$_title_freezed);
+               $postdata = join("",get_source($vars["page"]));
+               $postdata = convert_html($postdata);
+
+               $body = $postdata;
+       }
+       else
+       {
+               $title = str_replace('$1',strip_bracket($vars["page"]),$_title_freeze);
+               $page = str_replace('$1',make_search($vars["page"]),$_title_freeze);
+
+               $body.= "<br>\n";
+               
+               if($post["pass"])
+                       $body .= "<b>$_msg_invalidpass</b><br>\n";
+               else
+                       $body.= "$_msg_freezing<br>\n";
+               
+               $body.= "<form action=\"$script?cmd=freeze\" method=\"post\">\n";
+               $body.= "<input type=\"hidden\" name=\"page\" value=\"$vars[page]\">\n";
+               $body.= "<input type=\"password\" name=\"pass\" size=\"12\">\n";
+               $body.= "<input type=\"submit\" name=\"ok\" value=\"$_btn_freeze\">\n";
+               $body.= "</form>\n";
+       }
+}
+//Åà·ë¤Î²ò½ü
+else if(arg_check("unfreeze") && $vars["page"] && $function_freeze)
+{
+       if(!is_freeze($vars["page"]))
+       {
+               $title = str_replace('$1',strip_bracket($vars["page"]),$_title_isunfreezed);
+               $page = str_replace('$1',make_search($vars["page"]),$_title_isunfreezed);
+               $body = str_replace('$1',strip_bracket($vars["page"]),$_title_isunfreezed);
+       }
+       else if(md5($post["pass"]) == $adminpass)
+       {
+               $postdata = get_source($post["page"]);
+               array_shift($postdata);
+               $postdata = join("",$postdata);
+
+               file_write(DATA_DIR,$vars["page"],$postdata);
+
+               $title = str_replace('$1',strip_bracket($vars["page"]),$_title_unfreezed);
+               $page = str_replace('$1',make_search($vars["page"]),$_title_unfreezed);
+               
+               $postdata = join("",get_source($vars["page"]));
+               $postdata = convert_html($postdata);
+               
+               $body = $postdata;
+       }
+       else
+       {
+               $title = str_replace('$1',strip_bracket($vars["page"]),$_title_unfreeze);
+               $page = str_replace('$1',make_search($vars["page"]),$_title_unfreeze);
+
+               $body.= "<br>\n";
+
+               if($post["pass"])
+                       $body .= "<b>$_msg_invalidpass</b><br>\n";
+               else
+                       $body.= "$_msg_unfreezing<br>\n";
+
+               $body.= "<form action=\"$script?cmd=unfreeze\" method=\"post\">\n";
+               $body.= "<input type=\"hidden\" name=\"page\" value=\"$vars[page]\">\n";
+               $body.= "<input type=\"password\" name=\"pass\" size=\"12\">\n";
+               $body.= "<input type=\"submit\" name=\"ok\" value=\"$_btn_unfreeze\">\n";
+               $body.= "</form>\n";
+       }
+}
+// º¹Ê¬¤Îɽ¼¨
+else if(arg_check("diff"))
+{
+       $pagename = strip_bracket($get["page"]);
+       if(!is_page($get["page"]))
+       {
+               $title = $pagename;
+               $page = make_search($vars["page"]);
+               $body = "»ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£";
+       }
+       else
+       {
+               $link = str_replace('$1',"<a href=\"$script?".rawurlencode($get["page"])."\">$pagename</a>",$_msg_goto);
+               
+               $body =  "<ul>\n"
+                       ."<li>$_msg_addline</li>\n"
+                       ."<li>$_msg_delline</li>\n"
+                       ."<li>$link</li>\n"
+                       ."</ul>\n"
+                       ."$hr\n";
+       }
+
+       if(!file_exists(DIFF_DIR.encode($get["page"]).".txt") && is_page($get["page"]))
+       {
+               $title = str_replace('$1',strip_bracket($get["page"]),$_title_diff);
+               $page = str_replace('$1',make_search($get["page"]),$_title_diff);
+
+               $diffdata = get_source($get["page"]);
+               $body .= "<font color=\"blue\">\n"
+                       ."<pre>\n"
+                       .join("",$diffdata)
+                       ."\n"
+                       ."</pre>\n"
+                       ."</font>\n";
+       }
+       else if(file_exists(DIFF_DIR.encode($get["page"]).".txt"))
+       {
+               $title = str_replace('$1',strip_bracket($get["page"]),$_title_diff);
+               $page = str_replace('$1',make_search($get["page"]),$_title_diff);
+
+               $diffdata = file(DIFF_DIR.encode($get["page"]).".txt");
+               $diffdata = preg_replace("/</","&lt;",$diffdata);
+               $diffdata = preg_replace("/>/","&gt;",$diffdata);
+               $diffdata = preg_replace("/^(\-)(.*)/","<font color=\"red\"> $2</font>",$diffdata);
+               $diffdata = preg_replace("/^(\+)(.*)/","<font color=\"blue\"> $2</font>",$diffdata);
+               
+               $body .= "<pre>\n"
+                       .join("",$diffdata)
+                       ."\n"
+                       ."</pre>\n";
+       }
+}
+// ¸¡º÷
+else if(arg_check("search"))
+{
+       if($vars["word"])
+       {
+               $title = $page = str_replace('$1',$vars["word"],$_title_result);
+       }
+       else
+       {
+               $page = $title = $_title_search;
+       }
+
+       if($vars["word"])
+               $body = do_search($vars["word"],$vars["type"]);
+       else
+               $body = "<br>\n$_msg_searching";
+
+       if($vars["type"]=="AND" || !$vars["type"]) $and_check = "checked";
+       else if($vars["type"]=="OR")               $or_check = "checked";
+
+       $body .= "<form action=\"$script?cmd=search\" method=\"post\">\n"
+               ."<input type=\"text\" name=\"word\" size=\"20\" value=\"".$vars["word"]."\">\n"
+               ."<input type=\"radio\" name=\"type\" value=\"AND\" $and_check>$_btn_and\n"
+               ."<input type=\"radio\" name=\"type\" value=\"OR\" $or_check>$_btn_or\n"
+               ."&nbsp;<input type=\"submit\" value=\"$_btn_search\">\n"
+               ."</form>\n";
+}
+// ¥Ð¥Ã¥¯¥¢¥Ã¥×
+else if($do_backup && arg_check("backup"))
+{
+       if($get["page"] && $get["age"] && (file_exists(BACKUP_DIR.encode($get["page"]).".txt") || file_exists(BACKUP_DIR.encode($get["page"]).".gz")))
+       {
+               $pagename = strip_bracket($get["page"]);
+               $body =  "<ul>\n";
+
+               $body .= "<li><a href=\"$script?cmd=backup\">$_msg_backuplist</a></li>\n";
+
+               if(!arg_check("backup_diff") && is_page($get["page"]))
+               {
+                       $link = str_replace('$1',"<a href=\"$script?cmd=backup_diff&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_diff</a>",$_msg_view);
+                       $body .= "<li>$link</li>\n";
+               }
+               if(!arg_check("backup_nowdiff") && is_page($get["page"]))
+               {
+                       $link = str_replace('$1',"<a href=\"$script?cmd=backup_nowdiff&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_nowdiff</a>",$_msg_view);
+                       $body .= "<li>$link</li>\n";
+               }
+               if(!arg_check("backup_source"))
+               {
+                       $link = str_replace('$1',"<a href=\"$script?cmd=backup_source&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_source</a>",$_msg_view);
+                       $body .= "<li>$link</li>\n";
+               }
+               if(arg_check("backup_diff") || arg_check("backup_source") || arg_check("backup_nowdiff"))
+               {
+                       $link = str_replace('$1',"<a href=\"$script?cmd=backup&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_backup</a>",$_msg_view);
+                       $body .= "<li>$link</li>\n";
+               }
+               
+               if(is_page($get["page"]))
+               {
+                       $link = str_replace('$1',"<a href=\"$script?".rawurlencode($get["page"])."\">$pagename</a>",$_msg_goto);
+                       $body .=  "<li>$link</li>\n";
+               }
+               else
+               {
+                       $link = str_replace('$1',$pagename,$_msg_deleleted);
+                       $body .=  "<li>$link</li>\n";
+               }
+
+               $backups = array();
+               $backups = get_backup_info(encode($get["page"]).".txt");
+               if(count($backups)) $body .= "<ul>\n";
+               foreach($backups as $key => $val)
+               {
+                       $ins_date = date($date_format,$val);
+                       $ins_time = date($time_format,$val);
+                       $ins_week = "(".$weeklabels[date("w",$val)].")";
+                       $backupdate = "($ins_date $ins_week $ins_time)";
+                       if($key != $get["age"])
+                               $body .= "<li><a href=\"$script?cmd=$get[cmd]&page=".rawurlencode($get["page"])."&age=$key\">$key $backupdate</a></li>\n";
+                       else
+                               $body .= "<li><i>$key $backupdate</i></li>\n";
+               }
+               if(count($backups)) $body .= "</ul>\n";
+               
+               if(arg_check("backup_diff"))
+               {
+                       $title = str_replace('$1',$pagename,$_title_backupdiff)."(No.$get[age])";
+                       $page = str_replace('$1',make_search($get["page"]),$_title_backupdiff)."(No.$get[age])";
+                       
+                       $backupdata = @join("",get_backup($get[age]-1,encode($get["page"]).".txt"));
+                       $postdata = @join("",get_backup($get[age],encode($get["page"]).".txt"));
+                       $diffdata = split("\n",do_diff($backupdata,$postdata));
+               }
+               else if(arg_check("backup_nowdiff"))
+               {
+                       $title = str_replace('$1',$pagename,$_title_backupnowdiff)."(No.$get[age])";
+                       $page = str_replace('$1',make_search($get["page"]),$_title_backupnowdiff)."(No.$get[age])";
+                       
+                       $backupdata = @join("",get_backup($get[age],encode($get["page"]).".txt"));
+                       $postdata = @join("",get_source($get["page"]));
+                       $diffdata = split("\n",do_diff($backupdata,$postdata));
+               }
+               else if(arg_check("backup_source"))
+               {
+                       $title = str_replace('$1',$pagename,$_title_backupsource)."(No.$get[age])";
+                       $page = str_replace('$1',make_search($get["page"]),$_title_backupsource)."(No.$get[age])";
+                       $backupdata = join("",get_backup($get[age],encode($get["page"]).".txt"));
+                       
+                       $body.="</ul>\n<pre>\n$backupdata</pre>\n";
+               }
+               else
+               {
+                       $pagename = strip_bracket($get["page"]);
+                       $title = str_replace('$1',$pagename,$_title_backup)."(No.$get[age])";
+                       $page = str_replace('$1',make_search($get["page"]),$_title_backup)."(No.$get[age])";
+                       $backupdata = join("",get_backup($get[age],encode($get["page"]).".txt"));
+                       $backupdata = convert_html($backupdata);
+                       $body .= "</ul>\n"
+                               ."$hr\n";
+                       $body .= $backupdata;
+               }
+               
+               if(arg_check("backup_diff") || arg_check("backup_nowdiff"))
+               {
+                       $diffdata = preg_replace("/</","&lt;",$diffdata);
+                       $diffdata = preg_replace("/>/","&gt;",$diffdata);
+                       $diffdata = preg_replace("/^(\-)(.*)/","<font color=\"red\"> $2</font>",$diffdata);
+                       $diffdata = preg_replace("/^(\+)(.*)/","<font color=\"blue\"> $2</font>",$diffdata);
+
+                       $body .= "<br>\n"
+                               ."<li>$_msg_addline</li>\n"
+                               ."<li>$_msg_delline</li>\n"
+                               ."</ul>\n"
+                               ."$hr\n"
+                               ."<pre>\n".join("\n",$diffdata)."</pre>\n";
+               }
+       }
+       else if($get["page"] && (file_exists(BACKUP_DIR.encode($get["page"]).".txt") || file_exists(BACKUP_DIR.encode($get["page"]).".gz")))
+       {
+               $title = str_replace('$1',strip_bracket($get["page"]),$_title_pagebackuplist);
+               $page = str_replace('$1',make_search($get["page"]),$_title_pagebackuplist);
+               $body = get_backup_list($get["page"]);
+       }
+       else
+       {
+               $page = $title = $_title_backuplist;
+               $body = get_backup_list();
+       }
+}
+// ¥Ø¥ë¥×¤Îɽ¼¨
+else if(arg_check("help"))
+{
+       $title = $page = "¥Ø¥ë¥×";
+       $body = catrule();
+}
+// MD5¥Ñ¥¹¥ï¡¼¥É¤Ø¤ÎÊÑ´¹
+else if($vars["md5"])
+{
+       $title = $page = "Make password of MD5";
+       $body = "$vars[md5] : ".md5($vars["md5"]);
+}
+else if(arg_check("rss"))
+{
+       if(!arg_check("rss10"))
+               catrss(1);
+       else
+               catrss(2);
+       die();
+}
+// ¥Ú¡¼¥¸¤Îɽ¼¨¤ÈInterWikiName¤Î²ò¼á
+else if((arg_check("read") && $vars["page"] != "") || (!arg_check("read") && $arg != "" && $vars["page"] == ""))
+{
+       // ¥¢¥¯¥·¥ç¥ó¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¥Ú¡¼¥¸Ì¾¤È¤·¤Æ²ò¼á
+       if($arg != "" && $vars["page"] == "" && $vars["cmd"] == "")
+       {
+               $post["page"] = $arg;
+               $get["page"] = $arg;
+               $vars["page"] = $arg;
+       }
+       
+       // ¥Ú¡¼¥¸Ì¾¤¬WikiName¤Ç¤Ê¤¯¡¢BracketName¤Ç¤Ê¤±¤ì¤ÐBracketName¤È¤·¤Æ²ò¼á
+       if(!preg_match("/^(($WikiName)|($BracketName)|($InterWikiName))$/",$get["page"]))
+       {
+               $vars["page"] = "[[$vars[page]]]";
+               $get["page"] = $vars["page"];
+       }
+
+       // WikiName¡¢BracketName¤¬¼¨¤¹¥Ú¡¼¥¸¤òɽ¼¨
+       if(is_page($get["page"]))
+       {
+               $postdata = join("",get_source($get["page"]));
+               $postdata = convert_html($postdata);
+
+               $title = strip_bracket($get["page"]);
+               $page = make_search($get["page"]);
+               $body = $postdata;
+
+               header_lastmod($vars["page"]);
+       }
+       else if(preg_match("/($InterWikiName)/",$get["page"],$match))
+       {
+       // InterWikiName¤ÎȽÊ̤ȥڡ¼¥¸¤Îɽ¼¨
+               $interwikis = open_interwikiname_list();
+               
+               if(!$interwikis[$match[2]]["url"])
+               {
+                       $title = $page = $_title_invalidiwn;
+                       $body = str_replace('$1',strip_bracket($get[page]),str_replace('$2',"<a href=\"$script?InterWikiName\">InterWikiName</a>",$_msg_invalidiwn));
+               }
+               else
+               {
+                       // Ê¸»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°
+                       if($interwikis[$match[2]]["opt"] == "yw")
+                       {
+                               // YukiWiki·Ï
+                               if(!preg_match("/$WikiName/",$match[3]))
+                                       $match[3] = "[[".mb_convert_encoding($match[3],"SJIS","auto")."]]";
+                       }
+                       else if($interwikis[$match[2]]["opt"] == "moin")
+                       {
+                               // moin·Ï
+                               if(function_exists("mb_convert_encoding"))
+                               {
+                                       $match[3] = rawurlencode(mb_convert_encoding($match[3],"EUC-JP","auto"));
+                                       $match[3] = str_replace("%","_",$match[3]);
+                               }
+                               else
+                                       $not_mb = 1;
+                       }
+                       else if($interwikis[$match[2]]["opt"] == "" || $interwikis[$match[2]]["opt"] == "std")
+                       {
+                               // ÆâÉôʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¤Þ¤ÞURL¥¨¥ó¥³¡¼¥É
+                               $match[3] = rawurlencode($match[3]);
+                       }
+                       else if($interwikis[$match[2]]["opt"] == "asis" || $interwikis[$match[2]]["opt"] == "raw")
+                       {
+                               // URL¥¨¥ó¥³¡¼¥É¤·¤Ê¤¤
+                               $match[3] = $match[3];
+                       }
+                       else if($interwikis[$match[2]]["opt"] != "")
+                       {
+                               // ¥¨¥¤¥ê¥¢¥¹¤ÎÊÑ´¹
+                               if($interwikis[$match[2]]["opt"] == "sjis")
+                                       $interwikis[$match[2]]["opt"] = "SJIS";
+                               else if($interwikis[$match[2]]["opt"] == "euc")
+                                       $interwikis[$match[2]]["opt"] = "EUC-JP";
+                               else if($interwikis[$match[2]]["opt"] == "utf8")
+                                       $interwikis[$match[2]]["opt"] = "UTF-8";
+
+                               // ¤½¤Î¾¡¢»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ø¥¨¥ó¥³¡¼¥É¤·¤ÆURL¥¨¥ó¥³¡¼¥É
+                               if(function_exists("mb_convert_encoding"))
+                                       $match[3] = rawurlencode(mb_convert_encoding($match[3],$interwikis[$match[2]]["opt"],"auto"));
+                               else
+                                       $not_mb = 1;
+                       }
+
+                       if(strpos($interwikis[$match[2]]["url"],'$1') !== FALSE)
+                               $url = str_replace('$1',$match[3],$interwikis[$match[2]]["url"]);
+                       else
+                               $url = $interwikis[$match[2]]["url"] . $match[3];
+
+                       if($not_mb)
+                       {
+                               $title = $page = "Not support mb_jstring.";
+                               $body = "This server's PHP does not have \"mb_jstring\" module.Cannot convert encoding.";
+                       }
+                       else
+                       {
+                               header("Location: $url");
+                               die();
+                       }
+               }
+       }
+       // WikiName¡¢BracketName¤¬¸«¤Ä¤«¤é¤º¡¢InterWikiName¤Ç¤â¤Ê¤¤¾ì¹ç
+       else
+       {
+               //$title = strip_bracket($get["page"]);
+               //$page = make_search($get["page"]);
+               //$body = "»ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£";
+
+               $title = str_replace('$1',strip_bracket($get["page"]),$_title_edit);
+               $page = str_replace('$1',make_search($get["page"]),$_title_edit);
+               $template = auto_template($get["page"]);
+               $body = edit_form($template,$get["page"]);
+       }
+}
+// ²¿¤â»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥È¥Ã¥×¥Ú¡¼¥¸¤òɽ¼¨
+else
+{
+       $postdata = join("",get_source($defaultpage));
+
+       $vars["page"] = $defaultpage;
+       $title = strip_bracket($defaultpage);
+       $page = make_search($vars["page"]);
+       $body = convert_html($postdata);
+
+       header_lastmod($vars["page"]);
+}
+
+// ** ½ÐÎϽèÍý **
+catbody($title,$page,$body);
+
+// ** ½ªÎ» **
+?>
index 9b4114c..7aba344 100644 (file)
@@ -1,12 +1,18 @@
 NAME\r
     PukiWiki - \8e©\97R\82É\83y\81[\83W\82ð\92Ç\89Á\81E\8dí\8f\9c\81E\95Ò\8fW\82Å\82«\82éWeb\83y\81[\83W\8d\\92zPHP\83X\83N\83\8a\83v\83g\r
 \r
+       PukiWiki 1.3.1beta MASUI'z Edition\r
+        Copyright (C) 2001,2002 by sng, MASUI.\r
+        Yuichiro MASUI <masui@masui.net>\r
+        http://masui.net/pukiwiki/\r
+\r
+       PukiWiki 1.3 (based)\r
         Copyright (C) 2001,2002 by sng.\r
         sng <sng@factage.com>\r
         http://factage.com/sng/\r
 \r
 SYNOPSIS\r
-        http://factage.com/sng/pukiwiki/pukiwiki.php\r
+        http://masui.net/pukiwiki/\r
 \r
 DESCRIPTION\r
     PukiWiki\82Í\8eQ\89Á\8eÒ\82ª\8e©\97R\82É\83y\81[\83W\82ð\92Ç\89Á\81E\8dí\8f\9c\81E\95Ò\8fW\82Å\82«\82é\r
@@ -16,6 +22,8 @@ DESCRIPTION
     PukiWiki\82Í\81AWeb\83y\81[\83W\91S\91Ì\82ð\8e©\97R\82É\95Ï\8dX\82·\82é\82±\82Æ\82ª\82Å\82«\82Ü\82·\81B\r
 \r
     PukiWiki\82Í\81A\8c\8b\8fé\8d_\82³\82ñ\82ÌYukiWiki\82Ì\8ed\97l\82ð\8eQ\8dl\82É\82µ\82Ä\93Æ\8e©\82É\8dì\82ç\82ê\82Ü\82µ\82½\81B\r
+    PukiWiki(MASUI'z Edition)\82Í\81Asng\82³\82ñ\82ÌPukiWiki 1.3\82ð\8c³\82É\83v\83\89\83O\83C\83\93\82È\82Ç\82ð\r
+    \82Ü\82Æ\82ß\82½\82à\82Ì\82Å\82·\81B\r
 \r
     PukiWiki\82ÍPHP\82Å\8f\91\82©\82ê\82½PHP\83X\83N\83\8a\83v\83g\82Æ\82µ\82Ä\8eÀ\8c»\82³\82ê\82Ä\82¢\82Ü\82·\82Ì\82Å\81A\r
     PHP\82ª\93®\8dì\82·\82éWeb\83T\81[\83o\82È\82ç\82Î\94ä\8ar\93I\97e\88Õ\82É\90Ý\92u\82Å\82«\82Ü\82·\81B\r
@@ -25,7 +33,7 @@ DESCRIPTION
 \90Ý\92u\95û\96@\r
   \93ü\8eè\r
 \r
-    PukiWiki\82Ì\8dÅ\90V\94Å\82Í\81A http://factage.com/sng/php\82©\82ç\93ü\8eè\82Å\82«\82Ü\82·\81B\r
+    PukiWiki(MASUI'z Edition)\82Ì\8dÅ\90V\94Å\82Í\81A http://masui.net/pukiwiki\82©\82ç\93ü\8eè\82Å\82«\82Ü\82·\81B\r
 \r
   \83t\83@\83C\83\8b\88ê\97\97\r
 \r
@@ -42,21 +50,28 @@ DESCRIPTION
     2.  \95K\97v\82É\89\9e\82\82Äpukiwiki.ini.php\82Ì\90Ý\92è\82ð\8am\94F\82µ\82Ü\82·\81B\r
         1.11 \82©\82ç\90Ý\92è\83t\83@\83C\83\8b\82ª\95Ê\83t\83@\83C\83\8b\82Ìpukiwiki.ini.php\82É\82È\82è\82Ü\82µ\82½\81B\r
 \r
-    3.  pukiwiki.php\82Æpukiwiki.gif\82ð\93¯\82\82Æ\82±\82ë\82É\90Ý\92u\82µ\82Ü\82·\81B\r
+    3.  *.php\82Æpukiwiki.gif\82ð\93¯\82\82Æ\82±\82ë\82É\90Ý\92u\82µ\82Ü\82·\81B\r
 \r
-    4.  \82³\82ç\82Épukiwiki.php\82Æ\93¯\82\82Æ\82±\82ë\82Épukiwiki.ini.php\82Æpukiwiki.skin.ja.php\81A        \82à\82µ\82­\82Ípukiwiki.skin.en.php\82ð\93¯\82\82Æ\82±\82ë\82É\90Ý\92u\82µ\82Ü\82·\81B\r
+    4.  \82³\82ç\82É*.php\82Æ\93¯\82\82Æ\82±\82ë\82Épukiwiki.ini.php\82Æpukiwiki.skin.ja.php\81A\r
+        \82à\82µ\82­\82Ípukiwiki.skin.en.php\82ð\93¯\82\82Æ\82±\82ë\82É\90Ý\92u\82µ\82Ü\82·\81B\r
 \r
-    5.  pukiwiki.php\93à\82Å\8ew\92è\82µ\82½\83f\81[\83^\83t\83@\83C\83\8b\83f\83B\83\8c\83N\83g\83\8a\82ð\r
+    5.  pukiwiki.ini.php\93à\82Å\8ew\92è\82µ\82½\83f\81[\83^\83t\83@\83C\83\8b\83f\83B\83\8c\83N\83g\83\8a\82ð\r
         \91®\90« 777 \82Å\8dì\90¬\82·\82é\81B(\83f\83B\83t\83H\83\8b\83g\82Í wiki )\r
 \r
-    6.  pukiwiki.php\93à\82Å\8ew\92è\82µ\82½\8d·\95ª\83t\83@\83C\83\8b\83f\83B\83\8c\83N\83g\83\8a\82ð\r
+    6.  pukiwiki.ini.php\93à\82Å\8ew\92è\82µ\82½\8d·\95ª\83t\83@\83C\83\8b\83f\83B\83\8c\83N\83g\83\8a\82ð\r
         \91®\90« 777 \82Å\8dì\90¬\82·\82é\81B(\83f\83B\83t\83H\83\8b\83g\82Í diff )\r
 \r
     7.  \8e©\93®\83o\83b\83N\83A\83b\83v\8b@\94\(\83f\83B\83t\83H\83\8b\83g\82Å\82Í off)\82ð\8eg\82¤\8fê\8d\87\81A\r
-        pukiwiki.php\93à\82Å\8ew\92è\82µ\82½\8d·\95ª\83t\83@\83C\83\8b\83f\83B\83\8c\83N\83g\83\8a\82ð\r
-        \91®\90« 777 \82Å\8dì\90¬\82·\82é\81B(\83f\83B\83t\83H\83\8b\83g\82Í diff )\r
+        pukiwiki.ini.php\93à\82Å\8ew\92è\82µ\82½\8d·\95ª\83t\83@\83C\83\8b\83f\83B\83\8c\83N\83g\83\8a\82ð\r
+        \91®\90« 777 \82Å\8dì\90¬\82·\82é\81B(\83f\83B\83t\83H\83\8b\83g\82Í backup )\r
+\r
+    8.  attach.inc.php\93à\82Å\8ew\92è\82µ\82½\93Y\95t\83t\83@\83C\83\8b\83f\83B\83\8c\83N\83g\83\8a\82ð\r
+        \91®\90« 777 \82Å\8dì\90¬\82·\82é\81B(\83f\83B\83t\83H\83\8b\83g\82Í attach )\r
 \r
-    8.  pukiwiki.php\82É\83u\83\89\83E\83U\82©\82ç\83A\83N\83Z\83X\82µ\82Ü\82·\81B\r
+    9.  counter.inc.php\93à\82Å\8ew\92è\82µ\82½\83J\83E\83\93\83^\81[\83t\83@\83C\83\8b\83f\83B\83\8c\83N\83g\83\8a\82ð\r
+        \91®\90« 777 \82Å\8dì\90¬\82·\82é\81B(\83f\83B\83t\83H\83\8b\83g\82Í counter )\r
+\r
+    10. pukiwiki.php\82É\83u\83\89\83E\83U\82©\82ç\83A\83N\83Z\83X\82µ\82Ü\82·\81B\r
 \r
   \83p\81[\83~\83b\83V\83\87\83\93\r
 \r
@@ -67,13 +82,24 @@ DESCRIPTION
             pukiwiki.skin.ja.php 644                 ASCII\r
             en.lng               644                 ASCII\r
             ja.lng               644                 ASCII\r
+           func.php             644                 ASCII\r
+           file.php             644                 ASCII\r
+           html.php             644                 ASCII\r
+           init.php             644                 ASCII\r
+           plugin.php           644                 ASCII\r
+           template.php         644                 ASCII\r
+           rss.php              644                 ASCII\r
+           backup.php           644                 ASCII\r
             pukiwiki.gif         644                 BINARY\r
 \r
             \83f\83B\83\8c\83N\83g\83\8a         \83p\81[\83~\83b\83V\83\87\83\93\r
             wiki                 777\r
             diff                 777\r
             backup               777\r
-            plug-in              777\r
+            attach               777\r
+            counter              777\r
+            skin                 755\r
+            plug-in              755\r
 \r
    \83f\81[\83^\82Ì\83o\83b\83N\83A\83b\83v\95û\96@\r
 \r
@@ -157,14 +183,14 @@ DESCRIPTION
             \91å\82©\82Á\82±\82Ì\92\86\82É\82Í\83X\83y\81[\83X\82ð\8aÜ\82ß\82Ä\82Í\82¢\82¯\82Ü\82¹\82ñ\81B\r
             \93ú\96{\8cê\82à\8eg\82¦\82Ü\82·\81B\r
 \r
-        *   \82Ü\82½\81A[[factage:http://factage.com/]] \82Ì\82æ\82¤\82É\82·\82é\82Æ factage \82Ì\95\8e\9a\82É\r
-            http://factage.com\82Ö\82Ì\83\8a\83\93\83N\82ª\93\\82ê\82Ü\82·\81B\r
+        *   \82Ü\82½\81A[[pukiwiki:http://masui.net/pukiwiki/]] \82Ì\82æ\82¤\82É\82·\82é\82Æ factage \82Ì\95\8e\9a\82É\r
+            http://masui.net/pukiwiki\82Ö\82Ì\83\8a\83\93\83N\82ª\93\\82ê\82Ü\82·\81B\r
 \r
         *   [[\83T\81[\83o\96¼:WikiName]] \82Ì\82æ\82¤\82É\82·\82é\82Æ InterWikiName \82É\82È\82è\82Ü\82·\81B\r
 \r
-        *   http://factage.com/sng\82Ì\82æ\82¤\82ÈURL\82Í\8e©\93®\93I\82É\83\8a\83\93\83N\82É\82È\82è\82Ü\82·\81B\r
+        *   http://masui.net/pukiwiki\82Ì\82æ\82¤\82ÈURL\82Í\8e©\93®\93I\82É\83\8a\83\93\83N\82É\82È\82è\82Ü\82·\81B\r
 \r
-        *   sng@factage.com \82Ì\82æ\82¤\82È\83\81\81[\83\8b\83A\83h\83\8c\83X\82à\8e©\93®\93I\82É\83\8a\83\93\83N\82É\82È\82è\82Ü\82·\81B\r
+        *   team@pukiwiki.jp \82Ì\82æ\82¤\82È\83\81\81[\83\8b\83A\83h\83\8c\83X\82à\8e©\93®\93I\82É\83\8a\83\93\83N\82É\82È\82è\82Ü\82·\81B\r
 \r
     *   \8ds\93ª\82ª\83X\83y\81[\83X\82â\83^\83u\82Å\8en\82Ü\82Á\82Ä\82¢\82é\82Æ\81A\r
         \82»\82ê\82Í\90®\8c`\8dÏ\82Ý\82Ì\92i\97\8e`<pre>'\82Æ\82µ\82Ä\88µ\82í\82ê\82Ü\82·\81B\r
@@ -204,27 +230,27 @@ InterWiki
     InterWikiName \82Ì\83y\81[\83W\82É\88È\89º\82Ì\82æ\82¤\82É\83T\81[\83o\82Ì\92è\8b`\82ð\82·\82é\81\r
 \r
     *   [URL \83T\81[\83o\96¼] \83^\83C\83v\r
-    *   [http://factage.com/sng/pukiwiki/pukiwiki.php?read&page= sng] pw\r
+    *   [http://masui.net/pukiwiki/pukiwiki.php?read&page= pukiwiki] pw\r
 \r
 \r
   InterWikiName\82Ì\92Ç\89Á \r
     \83T\81[\83o\96¼:WikiName\82ðBracketName\82Å\8dì\82ê\82ÎInterWikiName\82Ì\8a®\90¬ \r
 \r
     *   [[\83T\81[\83o\96¼:WikiName]]\r
-    *   [[sng:FrontPage]]\r
+    *   [[pukiwiki:FrontPage]]\r
 \r
   WikiName\82Ì\91}\93ü\88Ê\92\r
     \97v\8b\81\82µ\82æ\82¤\82Æ\82·\82éURL\82Ö\82ÌWikiName\82Ì\91}\93ü\88Ê\92u\82ð $1 \82Å\8ew\92è\82·\82é\82±\82Æ\82ª\82Å\82«\82Ü\82·\81B\r
     \8fÈ\97ª\82·\82é\82Æ\82¨\90K\82É\82­\82Á\82Â\82«\82Ü\82·\81\r
 \r
-    *   [http://factage.com/sng/pukiwiki/pukiwiki.php?backup&page=$1&age=1 sng] pw\r
+    *   [http://masui.net/pukiwiki/pukiwiki.php?backup&page=$1&age=1 pukiwiki] pw\r
 \r
 \r
   \95\8e\9a\83R\81[\83h\95Ï\8a·\83^\83C\83\r
     PukiWiki\83y\81[\83W\88È\8aO\82É\82à\94ò\82Î\82¹\82Ü\82·\81B\93ú\96{\8cê\82ðURL\82É\8aÜ\82Þ\89Â\94\\90«\82à\82 \82é\82Ì\82Å\82»\82Ì\8fê\8d\87\82Ì\r
     \83G\83\93\83R\81[\83f\83B\83\93\83O\82Ì\8ew\92è\82ð\83^\83C\83v\82Æ\82µ\82Ä\8ew\92è\82Å\82«\82Ü\82·\81\r
 \r
-    *   [http://factage.com/sng/pukiwiki/pukiwiki.php?read&page=$1 sng] pw\r
+    *   [http://masui.net/pukiwiki/pukiwiki.php?read&page=$1 pukiwiki] pw\r
 \r
 \r
     *   std \8fÈ\97ª\8e\9e\r
@@ -264,14 +290,26 @@ RDF/RSS
 \r
   RSS 0.91 \82Ì\8fo\97Í\95û\96@\82Ì\97á\r
 \r
-    *   http://factage.com/sng/pukiwiki/pukiwiki.php?rss\r
+    *   http://masui.net/pukiwiki/pukiwiki.php?rss\r
 \r
   RSS 1.0 \82Ì\8fo\97Í\95û\96@\82Ì\97á\r
 \r
-    *   http://factage.com/sng/pukiwiki/pukiwiki.php?rss10\r
+    *   http://masui.net/pukiwiki/pukiwiki.php?rss10\r
 \r
 \8dX\90V\97\9a\97ð\r
-    *   2002-03-18 1.3\r
+    *   2002-06-10 1.3.1beta MASUI'z Edition\r
+\r
+        PukiWiki 1.3\82ð\83x\81[\83X\82É\81AMASUI\82ª\8f\9f\8eè\82É\83v\83\89\83O\83C\83\93\82Æ\82©\82Ü\82Æ\82ß\82Ä\82Ý\82Ü\82µ\82½\81B\r
+        \83\\81[\83X\83t\83@\83C\83\8b\82ð\95ª\8a\84\81B\r
+        calendar2, include, article, memo, aname, anchor, counter, vote, ls, yetlist, recent, source, img\83v\83\89\83O\83C\83\93\82ð\93Y\95t\81B\r
+        attach, comment\83v\83\89\83O\83C\83\93\83o\81[\83W\83\87\83\93\83A\83b\83v\81B\r
+        \96{\95\82É\81A\83^\83O\82ª\93ü\82Á\82Ä\82¢\82½\8fê\8d\87\81A\95Ò\8fW\82ª\82¤\82Ü\82­\82Å\82«\82È\82©\82Á\82½\95s\8bï\8d\87\82ð\8fC\90³\81B\r
+        \8dX\90V\8fÕ\93Ë\8e\9e\82Édiff\83A\83\8b\83S\83\8a\83Y\83\80\82Å\8d·\95ª\82ð\82Æ\82è\81A\83}\81[\83W\82ð\8ds\82¤\97l\82É\95Ï\8dX\81B\r
+       &amp; &lt;\82È\82Ç\82ð\8aÜ\82ñ\82¾\95\8fÍ\82ð\95Ò\8fW\82·\82é\82Æ\81A\82»\82ê\82ª\8fÁ\82¦\82Ä\82µ\82Ü\82¤\8fê\8d\87\82ª\82 \82é\95s\8bï\8d\87\82ð\8fC\90³\81B\r
+       \8e©\93®\83e\83\93\83v\83\8c\81[\83g\8b@\94\\82ð\92Ç\89Á\81B[[SandBox/template]]\r
+        \83\\81[\83X\83t\83@\83C\83\8b\82ð\95ª\8a\84\81B\r
+\r
+    *   2002-03-18 1.3 by sng.\r
 \r
         \82 \82é\95\8e\9a\97ñ\82ÖWikiName/BracketName\82Ö\82Ì\83\8a\83\93\83N\82ð\93\\82é\81B(\83G\83C\83\8a\83A\83X\8b@\94\)\r
         \8b^\8e\97\83f\83B\83\8c\83N\83g\83\8a\8d\\91z\81B./ \82â ../ \82È\82Ç\82ðBracketName\82Æ\82µ\82Ä\8eg\97p\82·\82é\82±\82Æ\82Å\8eÀ\8c»\81\r
@@ -282,7 +320,7 @@ RDF/RSS
         \88ê\95\94\82Ì\90®\8c`\83\8b\81[\83\8b\82ð\83v\83\89\83O\83C\83\93\89»\82·\82é\81B\r
         Win32\82Å\82à\90³\8fí\82É\93®\8dì\82·\82é\82æ\82¤\82É\8fC\90³\r
 \r
-    *   2002-02-15 1.2.12\r
+    *   2002-02-15 1.2.12 by sng.\r
 \r
         \83o\83b\83N\83A\83b\83v\82Ì\8b\93\93®\82Ì\95Ï\8d\r
         \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83y\81[\83W\82Ì\82Ý\82Ì\83o\83b\83N\83A\83b\83v\88ê\97\97\82ð\95\\8e¦\82·\82é \r
@@ -298,46 +336,51 @@ RDF/RSS
         #norelated \82ð\8ds\93ª\82É\8f\91\82­\82Æ\8aÖ\98A\83y\81[\83W\82ð\95\\8e¦\82µ\82È\82¢\83\8b\81[\83\8b\82ð\92Ç\89Á \r
         \8aÖ\98A\83y\81[\83W\82Ì\8bæ\90Ø\82è\95\8e\9a\82ð\90®\8c`\83\8b\81[\83\8b\97p\82Æ\95ª\82¯\82½ \r
 \r
-    *   2002-02-09 1.2.11 \8aÖ\98A\83\8a\83\93\83N\8fí\8e\9e\95\\8e¦\8b@\94\\81A\8co\89ß\8e\9e\8aÔ\95\\8e¦\8b@\94\\81A\83Z\83L\83\85\83\8a\83e\83B\91Î\8dô\81A\83R\83}\83\93\83h\82ð cmd= \82É\8fC\90³\81B\82»\82Ì\91¼\83o\83O\8fC\90³\81\r
+    *   2002-02-09 1.2.11 by sng. \8aÖ\98A\83\8a\83\93\83N\8fí\8e\9e\95\\8e¦\8b@\94\\81A\8co\89ß\8e\9e\8aÔ\95\\8e¦\8b@\94\\81A\83Z\83L\83\85\83\8a\83e\83B\91Î\8dô\81A\83R\83}\83\93\83h\82ð cmd= \82É\8fC\90³\81B\82»\82Ì\91¼\83o\83O\8fC\90³\81\r
 \r
-    *   2002-02-09 1.2.1 \83o\83O\8fC\90³\81A\8d\82\91¬\89»\81ARDF/RSS(1.0,0.91)\82Ì\8eÀ\91\95\81B\r
+    *   2002-02-09 1.2.1 by sng. \83o\83O\8fC\90³\81A\8d\82\91¬\89»\81ARDF/RSS(1.0,0.91)\82Ì\8eÀ\91\95\81B\r
 \r
-    *   2002-02-07 1.2.0 \90Ý\92è\83t\83@\83C\83\8b\82ð\8aO\95\94\82Ö\81AInterWiki\93\8b\8dÚ\81A\8aÖ\98A\83y\81[\83W\83\8b\81[\83\8b\81A\92\8d\8eß\83\8b\81[\83\8b\81Ahttp\83\8a\83\93\83N\83\8b\81[\83\8b\81A\83o\83O\8fC\90³\81B\r
+    *   2002-02-07 1.2.0 by sng. \90Ý\92è\83t\83@\83C\83\8b\82ð\8aO\95\94\82Ö\81AInterWiki\93\8b\8dÚ\81A\8aÖ\98A\83y\81[\83W\83\8b\81[\83\8b\81A\92\8d\8eß\83\8b\81[\83\8b\81Ahttp\83\8a\83\93\83N\83\8b\81[\83\8b\81A\83o\83O\8fC\90³\81B\r
 \r
-    *   2002-02-05 1.10 \83X\83L\83\93\8b@\94\\81A\83R\83\81\83\93\83g\91}\93ü\81A\8c©\8fo\82µ\96Ú\8e\9f\8dì\90¬\81A\82»\82Ì\91¼\83o\83O\8fC\90³\81B\r
+    *   2002-02-05 1.10 by sng. \83X\83L\83\93\8b@\94\\81A\83R\83\81\83\93\83g\91}\93ü\81A\8c©\8fo\82µ\96Ú\8e\9f\8dì\90¬\81A\82»\82Ì\91¼\83o\83O\8fC\90³\81B\r
 \r
-    *   2002-02-01 1.07 \92Ç\89Á\8b@\94\\81A\83\86\81[\83U\92è\8b`\83\8b\81[\83\8b\81A\92P\8cêAND/OR\8c\9f\8dõ\82Ì\8eÀ\91\95\81B\r
+    *   2002-02-01 1.07 by sng. \92Ç\89Á\8b@\94\\81A\83\86\81[\83U\92è\8b`\83\8b\81[\83\8b\81A\92P\8cêAND/OR\8c\9f\8dõ\82Ì\8eÀ\91\95\81B\r
 \r
-    *   2001-01-22 1.06 \83y\81[\83W\95Ò\8fW\8e\9e\83G\83\89\81[\82Ì\8fC\90³\81B\83y\81[\83W\83^\83C\83g\83\8b\82Ì[[]]\82à\8eæ\82è\8f\9c\82­\82æ\82¤\82É\81B\r
+    *   2001-01-22 1.06 by sng. \83y\81[\83W\95Ò\8fW\8e\9e\83G\83\89\81[\82Ì\8fC\90³\81B\83y\81[\83W\83^\83C\83g\83\8b\82Ì[[]]\82à\8eæ\82è\8f\9c\82­\82æ\82¤\82É\81B\r
 \r
-    *   2001-12-12 1.05 \8d·\95ª\83A\83\8b\83S\83\8a\83Y\83\80\82Ì\8fC\90³\81A\8e©\93®\83o\83b\83N\83A\83b\83v\8b@\94\\92Ç\89Á\81B\r
+    *   2001-12-12 1.05 by sng. \8d·\95ª\83A\83\8b\83S\83\8a\83Y\83\80\82Ì\8fC\90³\81A\8e©\93®\83o\83b\83N\83A\83b\83v\8b@\94\\92Ç\89Á\81B\r
 \r
-    *   2001-12-10 1.01 \83\81\81[\83\8b\83A\83h\83\8c\83X\83\8a\83\93\83N\82Ì\95s\94õ\82Ì\8fC\90³(thanks to s.sawada)\r
+    *   2001-12-10 1.01 by sng. \83\81\81[\83\8b\83A\83h\83\8c\83X\83\8a\83\93\83N\82Ì\95s\94õ\82Ì\8fC\90³(thanks to s.sawada)\r
 \r
-    *   2001-12-05 1.00 \90³\8e®\8cö\8aJ\81B\8c\9f\8dõ\8c\8b\89Ê\82©\82ç\82Ì\83n\83C\83\89\83C\83g\95\\8e¦\8b@\94\\82Ì\8dí\8f\9c\81B\r
+    *   2001-12-05 1.00 by sng. \90³\8e®\8cö\8aJ\81B\8c\9f\8dõ\8c\8b\89Ê\82©\82ç\82Ì\83n\83C\83\89\83C\83g\95\\8e¦\8b@\94\\82Ì\8dí\8f\9c\81B\r
 \r
-    *   2001-11-29 0.96 \82Ü\82½\82Ü\82½\82¢\82­\82Â\82©\82Ì\83o\83O\82Ì\8fC\90³\81B\8d·\95ª\82Ì\92Ç\89Á\81B\82Ü\82¾\82Ü\82¾\96¢\8a®\81A\82Æ\82è\82 \82¦\82¸\81\r
+    *   2001-11-29 0.96 by sng. \82Ü\82½\82Ü\82½\82¢\82­\82Â\82©\82Ì\83o\83O\82Ì\8fC\90³\81B\8d·\95ª\82Ì\92Ç\89Á\81B\82Ü\82¾\82Ü\82¾\96¢\8a®\81A\82Æ\82è\82 \82¦\82¸\81\r
 \r
-    *   2001-11-28 0.94 \82¢\82­\82Â\82©\82Ì\83o\83O\82Ì\8fC\90³\81B\93ú\95t\81E\8e\9e\8d\8f\91}\93ü\83\8b\81[\83\8b\82Ì\92Ç\89Á\81\r
+    *   2001-11-28 0.94 by sng. \82¢\82­\82Â\82©\82Ì\83o\83O\82Ì\8fC\90³\81B\93ú\95t\81E\8e\9e\8d\8f\91}\93ü\83\8b\81[\83\8b\82Ì\92Ç\89Á\81\r
 \r
-    *   2001-11-27 0.93 \83R\81[\83h\82Ì\90´\8f\91\81B\8c\9f\8dõ\8c\8b\89Ê\82©\82ç\82Ì\83y\81[\83W\95\\8e¦\8e\9e\83n\83C\83\89\83C\83g\95\\8e¦\81\r
+    *   2001-11-27 0.93 by sng. \83R\81[\83h\82Ì\90´\8f\91\81B\8c\9f\8dõ\8c\8b\89Ê\82©\82ç\82Ì\83y\81[\83W\95\\8e¦\8e\9e\83n\83C\83\89\83C\83g\95\\8e¦\81\r
 \r
-    *   2001-11-26 0.92 \83f\81[\83^\83t\83@\83C\83\8b\96¼\82ð YukiWiki \82Æ\8b¤\92Ê\82Ì\95Ï\8a·\95û\96@\82É\82µ\82½\81\r
+    *   2001-11-26 0.92 by sng. \83f\81[\83^\83t\83@\83C\83\8b\96¼\82ð YukiWiki \82Æ\8b¤\92Ê\82Ì\95Ï\8a·\95û\96@\82É\82µ\82½\81\r
 \r
-    *   2001-11-25 0.91 \91¦\93ú\82É\82µ\82Ä\92P\8cê\8c\9f\8dõ\8b@\94\\82ª\92Ç\89Á\81B\8d·\95ª\82Í\8c\8b\8d\\82©\82©\82è\82»\82¤\81\r
+    *   2001-11-25 0.91 by sng. \91¦\93ú\82É\82µ\82Ä\92P\8cê\8c\9f\8dõ\8b@\94\\82ª\92Ç\89Á\81B\8d·\95ª\82Í\8c\8b\8d\\82©\82©\82è\82»\82¤\81\r
 \r
-    *   2001-11-25 0.90 \88ê\89\9e\8cö\8aJ\81BYukiWiki \82Ì\8c\9f\8dõ\82Æ\8d·\95ª\82Í\82Ü\82¾\81B\r
+    *   2001-11-25 0.90 by sng. \88ê\89\9e\8cö\8aJ\81BYukiWiki \82Ì\8c\9f\8dõ\82Æ\8d·\95ª\82Í\82Ü\82¾\81B\r
 \r
 TODO\r
-        - \97\\92è\82È\82µ\81A\82±\82ê\82©\82ç\8eÀ\91\95\82³\82ê\82é YukiWiki \82Ì\8b@\94\\82ð\88Ú\90A\r
+        - \97\\92è\82È\82µ\81A\82±\82ê\82©\82ç\8eÀ\91\95\82³\82ê\82é YukiWiki \82Ì\8b@\94\\82ð\88Ú\90A by sng.\r
 \r
 \8dì\8eÒ\r
-        Copyright (C) 2001,2002 by sng.\r
-        sng <sng@factage.com>\r
-        http://factage.com/sng/\r
-        http://factage.com/sng/pukiwiki/\r
+        PukiWiki 1.3.1 MASUI'z Edition by\r
+         Copyright (C) 2002 by sng & MASUI.\r
+         Yuichiro MASUI <masui@masui.net>\r
+         http://masui.net/pukiwiki/\r
 \r
-    \8e¿\96â\81A\88Ó\8c©\81A\83o\83O\95ñ\8d\90\82Í sng@factage.com \82É\83\81\81[\83\8b\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+        PukiWiki 1.3 by\r
+         Copyright (C) 2001,2002 by sng.\r
+         sng <sng@factage.com>\r
+         http://factage.com/sng/\r
+\r
+    \8e¿\96â\81A\88Ó\8c©\81A\83o\83O\95ñ\8d\90\82Í masui@masui.net \82É\83\81\81[\83\8b\82µ\82Ä\82­\82¾\82³\82¢\81B\r
 \r
 \94z\95z\8fð\8c\8f\r
     PukiWiki\82Í\81A GNU General Public License\82É\82Ä\8cö\8aJ\82µ\82Ü\82·\81B\r
@@ -345,6 +388,8 @@ TODO
     PukiWiki\82Í\83t\83\8a\81[\83\\83t\83g\82Å\82·\81\82²\8e©\97R\82É\82¨\8eg\82¢\82­\82¾\82³\82¢\81B\r
 \r
 \8eÓ\8e«\r
+    PukiWiki \82ð\8aJ\94­\82µ\82½\81Asng\82³\82ñ\82É\8a´\8eÓ\82µ\82Ü\82·\81B\r
+\r
     YukiWiki \82Ì\83N\83\8d\81[\83\93\89»\82ð\8b\96\89Â\82µ\82Ä\82¢\82½\82¾\82¢\82½\8c\8b\8fé\8d_\82³\82ñ\82É\8a´\8eÓ\82µ\82Ü\82·\81B\r
 \r
     \96{\89Æ\82ÌWikiWiki\82ð\8dì\82Á\82½Cunningham & Cunningham, Inc.\82É \8a´\8eÓ\82µ\82Ü\82·\81B\r
diff --git a/rss.php b/rss.php
new file mode 100644 (file)
index 0000000..7092e96
--- /dev/null
+++ b/rss.php
@@ -0,0 +1,103 @@
+<?
+// PukiWiki - Yet another WikiWikiWeb clone.
+// $Id: rss.php,v 1.1 2002/06/21 05:21:46 masui Exp $
+/////////////////////////////////////////////////
+
+// RecentChanges ¤Î RSS ¤ò½ÐÎÏ
+function catrss($rss)
+{
+       global $rss_max,$page_title,$WikiName,$BracketName,$script,$whatsnew;
+
+       $lines = get_source($whatsnew);
+       header("Content-type: application/xml");
+
+       $item = "";
+       $rdf_li = "";
+       $cnt = 0;
+       foreach($lines as $line)
+       {
+               if($cnt > $rss_max - 1) break;
+
+               if(preg_match("/(($WikiName)|($BracketName))/",$line,$match))
+               {
+                       if($match[2])
+                       {
+                               $title = $url = $match[1];
+                       }
+                       else
+                       {
+                               if(function_exists("mb_convert_encoding"))
+                                       $title = mb_convert_encoding(strip_bracket($match[1]),"UTF-8","auto");
+                               else
+                                       $title = strip_bracket($match[1]);
+
+                               $url = $match[1];
+                       }
+                       
+                       $desc = date("D, d M Y H:i:s T",filemtime(get_filename(encode($match[1]))));
+                       
+                       if($rss==2)
+                               $items.= "<item rdf:about=\"http://".SERVER_NAME.PHP_SELF."?".rawurlencode($url)."\">\n";
+                       else
+                               $items.= "<item>\n";
+                       $items.= " <title>$title</title>\n";
+                       $items.= " <link>http://".SERVER_NAME.PHP_SELF."?".rawurlencode($url)."</link>\n";
+                       $items.= " <description>$desc</description>\n";
+                       $items.= "</item>\n\n";
+                       $rdf_li.= "    <rdf:li rdf:resource=\"http://".SERVER_NAME.PHP_SELF."?".rawurlencode($url)."\"/>\n";
+
+               }
+
+               $cnt++;
+       }
+
+       if($rss==1)
+       {
+?>
+<?='<?xml version="1.0" encoding="UTF-8"?>'?>
+
+
+<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
+            "http://my.netscape.com/publish/formats/rss-0.91.dtd">
+
+<rss version="0.91">
+
+<channel>
+<title><?=$page_title?></title>
+<link><?="http://".SERVER_NAME.PHP_SELF."?$whatsnew"?></link>
+<description>PukiWiki RecentChanges</description>
+<language>ja</language>
+
+<?=$items?>
+</channel>
+</rss>
+<?
+       }
+       else if($rss==2)
+       {
+?>
+<?='<?xml version="1.0" encoding="utf-8"?>'?>
+
+
+<rdf:RDF 
+  xmlns="http://purl.org/rss/1.0/"
+  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
+  xml:lang="ja">
+
+ <channel rdf:about="<?="http://".SERVER_NAME.PHP_SELF."?rss"?>">
+  <title><?=$page_title?></title>
+  <link><?="http://".SERVER_NAME.PHP_SELF."?$whatsnew"?></link>
+  <description>PukiWiki RecentChanges</description>
+  <items>
+   <rdf:Seq>
+<?=$rdf_li?>
+   </rdf:Seq>
+  </items>
+ </channel>
+
+<?=$items?>
+</rdf:RDF>
+<?
+       }
+}
+?>
similarity index 82%
rename from pukiwiki.skin.ja.php
rename to skin/pukiwiki.skin.ja.php
index b49515a..64522b0 100644 (file)
@@ -1,7 +1,9 @@
+<? header("Content-Type: text/html; charset=EUC_JP") ?>\r
 <!-- default skin by sng -->\r
+<!-- little changed by masui -->\r
 <html>\r
 <head>\r
-<meta http-equiv="content-type" content="text/html; charset=euc-jp">\r
+<meta http-equiv="content-type" content="text/html; charset=EUC_JP">\r
 <title>sng's PukiWiki - <?=$title?></title>\r
 <style>\r
 <!--\r
@@ -187,7 +189,8 @@ ul {
 <? if($is_page) { ?>\r
 [ <a href="<?=$script?>?<?=rawurlencode($vars[page])?>">¥ê¥í¡¼¥É</a> ]\r
 &nbsp;\r
-[ <a href="<?=$link_add?>">ÄɲÃ</a>\r
+[ <a href="<?=$script?>?plugin=newpage">¿·µ¬</a>\r
+<!--| <a href="<?=$link_add?>">ÄɲÃ</a-->\r
 | <a href="<?=$link_edit?>">ÊÔ½¸</a>\r
 | <a href="<?=$link_diff?>">º¹Ê¬</a>\r
 | <a href="<?=$script?>?plugin=attach&pcmd=upload&page=<?=rawurlencode($vars[page])?>">źÉÕ</a>\r
@@ -209,9 +212,22 @@ ul {
  ]<br>\r
 \r
 <?=$hr?>\r
-\r
-<?=$body?>\r
-\r
+<?if($is_page){ ?>\r
+<table cellspacing="1" cellpadding="0" border="0" width="100%">\r
+ <tr>\r
+  <td width="120" valign="top" style="word-break:break-all;">\r
+   <? echo convert_html(@join("",@file(get_filename(encode("MenuBar"))))); ?> \r
+  </td>\r
+ <td width="10">\r
+ </td>\r
+  <td valign="top">\r
+<? } ?>\r
+   <?=$body?>\r
+<?if($is_page){ ?>\r
+  </td>\r
+ </tr>\r
+</table>\r
+<? } ?>\r
 <?=$hr?>\r
 \r
 <?\r
@@ -234,7 +250,8 @@ if(file_exists(PLUGIN_DIR."attach.inc.php") && $is_read)
 \r
 &nbsp;\r
 \r
-<a href="<?=$link_add?>"><img src="./image/add.gif" width="20" height="20" border="0" alt="ÄɲÃ"></a>\r
+<a href="<?=$script?>?plugin=newpage"><img src="./image/new.gif" width="20" height="20" border="0" alt="¿·µ¬"></a>\r
+<!--a href="<?=$link_add?>"><img src="./image/add.gif" width="20" height="20" border="0" alt="ÄɲÃ"></a-->\r
 <a href="<?=$link_edit?>"><img src="./image/edit.gif" width="20" height="20" border="0" alt="ÊÔ½¸"></a>\r
 <a href="<?=$link_diff?>"><img src="./image/diff.gif" width="20" height="20" border="0" alt="º¹Ê¬"></a>\r
 &nbsp;\r
@@ -268,8 +285,7 @@ if(file_exists(PLUGIN_DIR."attach.inc.php") && $is_read)
 <font face="Verdana" size="1">\r
 Modified by <a href="<?=$modifierlink?>"><?=$modifier?></a><br>\r
 <br>\r
-<b>"PukiWiki" <?=S_VERSION?></b> Copyright &copy; 2001,2002 <a href="mailto:sng@factage.com">sng</a>.<br>\r
-This is Free Software released under the <a href="http://www.gnu.org/">GNU/GPL license</a>.<br>\r
+<?=S_COPYRIGHT?><br>\r
 Powered by PHP <?=PHP_VERSION?><br>\r
 <br>\r
 HTML convert time to <?=$taketime?> sec.\r
similarity index 91%
rename from pukiwiki.skin.php
rename to skin/pukiwiki.skin.php
index 4d6d3e2..80dab4a 100644 (file)
@@ -1,4 +1,5 @@
 <!-- default skin by sng -->\r
+<!-- little changed by masui -->\r
 <html>\r
 <head>\r
 <meta http-equiv="content-type" content="text/html; charset=euc-jp">\r
@@ -243,8 +244,7 @@ ul {
 <font face="Verdana" size="1">\r
 Modified by <a href="<?=$modifierlink?>"><?=$modifier?></a><br>\r
 <br>\r
-<b>"PukiWiki" <?=S_VERSION?></b> Copyright &copy; 2001,2002 <a href="mailto:sng@factage.com">sng</a>.<br>\r
-This is Free Software released under the <a href="http://www.gnu.org/">GNU/GPL license</a>.<br>\r
+<?=S_COPYRIGHT?><br>\r
 Powered by PHP <?=PHP_VERSION?><br>\r
 <br>\r
 HTML convert time to <?=$taketime?> sec.\r
diff --git a/template.php b/template.php
new file mode 100644 (file)
index 0000000..8be55c1
--- /dev/null
@@ -0,0 +1,25 @@
+<?
+// PukiWiki - Yet another WikiWikiWeb clone.
+// $Id: template.php,v 1.1 2002/06/21 05:21:46 masui Exp $
+/////////////////////////////////////////////////
+
+function auto_template($page)
+{
+  global $auto_template_rules,$auto_template_func;
+  if(!$auto_template_func) return '';
+
+  $body = '';
+  foreach($auto_template_rules as $rule => $template)
+    {
+      if(preg_match("/$rule/",$page,$matches)) {
+       $template_page = preg_replace("/$rule/",$template,$page);
+       $body = join('',get_source($template_page));
+       for($i=0; $i<count($matches); ++$i) {
+         $body = str_replace("\$$i",$matches[$i],$body);
+       }
+       break;
+      }
+    }
+  return $body;
+}
+?>
\ No newline at end of file