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