From: masui Date: Fri, 21 Jun 2002 05:21:46 +0000 (+0900) Subject: MASUI'z Edition first beta release X-Git-Tag: r1_5_0_rc1~2125 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=686561d8eb47507e1c895e7f66cc7b58b17416e5;p=pukiwiki%2Fpukiwiki.git MASUI'z Edition first beta release -split program files pukiwiki.php -> *.php -add new plugins -update plugins -fix & update --- diff --git a/backup.php b/backup.php new file mode 100644 index 0000000..12cf613 --- /dev/null +++ b/backup.php @@ -0,0 +1,238 @@ + (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"] = "
  • $name
  • "; + else + $vals[$name]["link"] = "
  • $name
  • "; + $vals[$name]["name"] = $page; + } + closedir($dir); + $vals = list_sort($vals); + $retvars[] = "\n"; + $retval2[$page] .= "
  • $head
  • \n\n"; + $retval2[$page] .= "
  • $_msg_symbol
  • \n\n"; + $retval2[$page] .= "
  • $_msg_other
  • \n\n"; + + $top_link = "
    $top_link

    \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 = ''; + $add_top = ''.$_btn_addtop.''; + } + + if($vars["help"] == "true") + $help = $hr.catrule(); + else + $help = "
    \n\n"; + + if($function_freeze) + $str_freeze = ''; + + 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] = " "; + } + @ksort($vals); + + $template = " \n" + ."
    \n"; + + if($vars["refer"]) $refer = $vars["refer"]."\n\n"; + } + +return ' +
    + + +'.$addtag.' + + + + + + + + + + + + + + + +
    +'.$template.' +
    + +
    + + + '.$add_top.' + '.$_btn_notchangetimestamp.' +
    + '.$str_freeze.' +
    +' . $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>(.*)/",$str,$out); + + if($out[3]) $title = " title=\"$out[2] $out[3]\""; + + $aryret[$out[2]] = "$out[2]"; + } + @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[] = "*$note_id $str
    \n"; + $note = "*$note_id"; + $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 "$match[1]"; + } + else if(preg_match("/^\[((https?|ftp|news)([^\]\s]+))\s([^\]]+)\]$/",$name,$match)) + { + $match[1] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[1]); + return "$match[4]"; + } + 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 ""; + else + return "$page"; + } + 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 "$match[1]"; + } + else if(preg_match("/^([[:alnum:]\-_]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)/",$name)) + { + $name = str_replace($aryconv_htmlspecial,$aryconv_html,$name); + return "$page"; + } + 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 "$page"; + } + 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$pagename$str"; + if($show_passage) + { + $str_title = "title=\"$pagename $str\""; + } + return "$page"; + } + else + return "$page?"; + } + 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>/","",$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 "$name "; +} + +?> diff --git a/init.php b/init.php new file mode 100644 index 0000000..4f0da72 --- /dev/null +++ b/init.php @@ -0,0 +1,103 @@ +\"PukiWiki\" ".S_VERSION." Copyright © 2001,2002 sng, MASUI. License is GNU/GPL."); +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.
    The version of a setting file may be old.

    These option are not found : $wrong_ini_file"); +//if(ini_get("register_globals") !== "0") +// die_message("Wrong PHP4 setting in 'register_globals',set value 'Off' to httpd.conf or .htaccess."); +if(!file_exists(SKIN_FILE)) + die_message("SKIN_FILE is not found."); +if(!file_exists(LANG.".lng")) + die_message(LANG.".lng(language file) is not found."); + +if(!file_exists(get_filename(encode($defaultpage)))) + touch(get_filename(encode($defaultpage))); +if(!file_exists(get_filename(encode($whatsnew)))) + touch(get_filename(encode($whatsnew))); +if(!file_exists(get_filename(encode($interwiki)))) + touch(get_filename(encode($interwiki))); + +$ins_date = date($date_format,UTIME); +$ins_time = date($time_format,UTIME); +$ins_week = "(".$weeklabels[date("w",UTIME)].")"; + +$now = "$ins_date $ins_week $ins_time"; + +?> diff --git a/ja.lng b/ja.lng index f55e136..d131d6d 100644 --- a/ja.lng +++ b/ja.lng @@ -39,8 +39,12 @@ $_msg_add = ' $_msg_preview = '°Ê²¼¤Î¥×¥ì¥Ó¥å¡¼¤ò³Îǧ¤·¤Æ¡¢¤è¤±¤ì¤Ð¥Ú¡¼¥¸²¼Éô¤Î¥Ü¥¿¥ó¤Ç¹¹¿·¤·¤Æ¤¯¤À¤µ¤¤¡£'; $_msg_preview_delete = '¡Ê¥Ú¡¼¥¸¤ÎÆâÍƤ϶õ¤Ç¤¹¡£¹¹¿·¤¹¤ë¤È¤³¤Î¥Ú¡¼¥¸¤Ïºï½ü¤µ¤ì¤Þ¤¹¡£¡Ë'; $_msg_collided = '¤¢¤Ê¤¿¤¬¤³¤Î¥Ú¡¼¥¸¤òÊÔ½¸¤·¤Æ¤¤¤ë´Ö¤Ë¡¢Â¾¤Î¿Í¤¬Æ±¤¸¥Ú¡¼¥¸¤ò¹¹¿·¤·¤Æ¤·¤Þ¤Ã¤¿¤è¤¦¤Ç¤¹¡£
    -°Ê²¼¤Ë¤¢¤Ê¤¿¤ÎÊÔ½¸¤·¤¿¥Æ¥­¥¹¥È¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤¢¤Ê¤¿¤ÎÊÔ½¸ÆâÍƤ¬¼º¤ï¤ì¤Ê¤¤¤è¤¦¤Ë
    -¥¨¥Ç¥£¥¿¤Ë¥³¥Ô¡¼¡õ¥Ú¡¼¥¹¥È¤·¤Æ¤¯¤À¤µ¤¤¡£¤½¤Î¸å¤ÇºÇ¿·¤ÎÆâÍƤ«¤éºÆÅÙÊÔ½¸¤·Ä¾¤·¤Æ¤¯¤À¤µ¤¤¡£'; +º£²óÄɲä·¤¿¹Ô¤Ï +¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£
    +!¤Ç»Ï¤Þ¤ë¹Ô¤¬Êѹ¹¤µ¤ì¤¿²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
    +!¤ä+¤Ç»Ï¤Þ¤ë¹Ô¤ò½¤Àµ¤·¤ÆºÆÅÙ¥Ú¡¼¥¸¤Î¹¹¿·¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£
    '; +$_msg_collided_auto = '¤¢¤Ê¤¿¤¬¤³¤Î¥Ú¡¼¥¸¤òÊÔ½¸¤·¤Æ¤¤¤ë´Ö¤Ë¡¢Â¾¤Î¿Í¤¬Æ±¤¸¥Ú¡¼¥¸¤ò¹¹¿·¤·¤Æ¤·¤Þ¤Ã¤¿¤è¤¦¤Ç¤¹¡£
    +¼«Æ°¤Ç¾×Æͤò²ò¾Ã¤·¤Þ¤·¤¿¤¬¡¢ÌäÂ꤬¤¢¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
    +³Îǧ¸å¡¢[¥Ú¡¼¥¸¤Î¹¹¿·]¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£
    '; $_msg_freezing = 'Åà·ëÍѤΥѥ¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£'; $_msg_unfreezing = 'Åà·ë²ò½üÍѤΥѥ¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£'; $_msg_invalidpass = '¥Ñ¥¹¥ï¡¼¥É¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡£'; @@ -78,6 +82,7 @@ $_btn_notchangetimestamp = ' $_btn_addtop = '¥Ú¡¼¥¸¤Î¾å¤ËÄɲÃ'; $_btn_template = '¿÷·Á¤È¤¹¤ë¥Ú¡¼¥¸'; $_btn_load = 'Æɹþ'; +$_btn_edit = 'ÊÔ½¸'; /////////////////////////////////////// // plug-in message @@ -86,6 +91,10 @@ $_btn_load = ' // comment $_btn_name = '¤ªÌ¾Á°: '; $_btn_comment = '¥³¥á¥ó¥È¤ÎÁÞÆþ'; +$_msg_comment = '¥³¥á¥ó¥È: '; +$_title_comment_collided = '$1 ¤Ç¡Ú¹¹¿·¤Î¾×ÆÍ¡Û¤¬µ¯¤­¤Þ¤·¤¿'; +$_msg_comment_collided = '¤¢¤Ê¤¿¤¬¤³¤Î¥Ú¡¼¥¸¤òÊÔ½¸¤·¤Æ¤¤¤ë´Ö¤Ë¡¢Â¾¤Î¿Í¤¬Æ±¤¸¥Ú¡¼¥¸¤ò¹¹¿·¤·¤Æ¤·¤Þ¤Ã¤¿¤è¤¦¤Ç¤¹¡£
    +¥³¥á¥ó¥È¤òÄɲä·¤Þ¤·¤¿¤¬¡¢°ã¤¦°ÌÃÖ¤ËÁÞÆþ¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

    '; /////////////////////////////////////// // attach file @@ -93,6 +102,7 @@ $_title_uploaded = '$1 $_title_file_deleted = '$1 ¤«¤é¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤·¤¿'; $_title_notfound = '$1 ¤Ë¤½¤Î¥Õ¥¡¥¤¥ë¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó'; $_title_upload = '$1 ¤Ø¤ÎźÉÕ'; +$_title_confirm_delete = '%s ¤òºï½ü¤·¤Þ¤¹'; $_msg_noparm = '$1 ¤Ø¤Ï¥¢¥Ã¥×¥í¡¼¥É¡¦ºï½ü¤Ï¤Ç¤­¤Þ¤»¤ó'; $_msg_already_exists = '$1 ¤ËƱ¤¸¥Õ¥¡¥¤¥ë̾¤¬Â¸ºß¤·¤Þ¤¹'; @@ -101,7 +111,17 @@ $_msg_maxsize = ' $_msg_delete = '\'$1\' ¤òºï½ü¤·¤Þ¤¹'; $_msg_exceed = '$1 ¤Ø¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬Â礭¤¹¤®¤Þ¤¹'; $_msg_attachfile = 'źÉÕ¥Õ¥¡¥¤¥ë'; +$_msg_confirm_delete = '

    %s ¤òºï½ü¤·¤Þ¤¹¡£
    %s
    '; $_btn_upload = '¥¢¥Ã¥×¥í¡¼¥É'; $_btn_delete = 'ºï½ü'; + +/////////////////////////////////////// +// newpage +$_msg_newpage = '¥Ú¡¼¥¸¿·µ¬ºîÀ®'; + +/////////////////////////////////////// +// recent +$_recent_plugin_frame = '
    ºÇ¿·¤Î%d·ï
    %s'; +$_recent_plugin_li = '¡¦'; ?> diff --git a/plugin.php b/plugin.php new file mode 100644 index 0000000..2bb1849 --- /dev/null +++ b/plugin.php @@ -0,0 +1,96 @@ +$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 diff --git a/plugin/aname.inc.php b/plugin/aname.inc.php index 37a2f8f..8c06048 100644 --- a/plugin/aname.inc.php +++ b/plugin/aname.inc.php @@ -1,11 +1,11 @@ -"; -} -?> +"; +} +?> diff --git a/plugin/anchor.inc.php b/plugin/anchor.inc.php new file mode 100644 index 0000000..f23319c --- /dev/null +++ b/plugin/anchor.inc.php @@ -0,0 +1,29 @@ +$page"; +} +?> diff --git a/plugin/article.inc.php b/plugin/article.inc.php new file mode 100644 index 0000000..0086315 --- /dev/null +++ b/plugin/article.inc.php @@ -0,0 +1,228 @@ +"; + $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 .= "
    \n" + ."\n" + ."\n" + ."
    \n" + ."
    \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 = "\n"; + + $string = "
    \n" + ."\n" + ."\n" + ."\n" + ."\n" + ."$_btn_name
    \n" + ."$_btn_subject
    \n" + ."
    \n" + .$button + ."
    "; + + $article_no++; + + return $string; +} +?> diff --git a/plugin/attach.inc.php b/plugin/attach.inc.php index 653e5b2..b4b3aac 100644 --- a/plugin/attach.inc.php +++ b/plugin/attach.inc.php @@ -1,6 +1,8 @@ http://masui.net/pukiwiki/ + // set PHP value to enable file upload ini_set("file_uploads","1"); @@ -31,7 +33,7 @@ function plugin_attach_convert() while($file = readdir($dir)) { if($file == ".." || $file == ".") continue; - if(!preg_match("/^${decoded_pgname}_(.*)$/",$file,$match)) continue; + if(!preg_match("/^${decoded_pgname}_([^.]+)$/",$file,$match)) continue; $lastmod = date("Y/m/d H:i:s",filemtime(UPLOAD_DIR.$file)); @@ -44,8 +46,15 @@ function plugin_attach_convert() $filename_url = rawurlencode($filename); $refername_url = rawurlencode($vars[page]); - $del = "[$_btn_delete]"; - $open = "$icon$filename\n"; + $counter = ''; + if(file_exists(UPLOAD_DIR.$file.'.log')) { + $list = file(UPLOAD_DIR.$file.'.log'); + + $counter = ' ' . chop($list[0]) . '·ï'; + } + + $del = "[$_btn_delete]"; + $open = "$icon$filename$counter\n"; $into = "$open $del"; @@ -87,11 +96,12 @@ function plugin_attach_action() { global $vars,$script,$max_size,$HTTP_POST_FILES; global $_title_uploaded,$_title_file_deleted,$_title_notfound,$_msg_noparm,$_msg_already_exists,$_msg_attach_filelist,$_msg_delete,$_msg_exceed,$_btn_delete; - global $_msg_maxsize,$_btn_upload,$_msg_attachfile,$_title_upload; + global $_msg_maxsize,$_btn_upload,$_msg_attachfile,$_title_upload,$_title_confirm_delete,$_msg_confirm_delete; $postfiles = $HTTP_POST_FILES; $icon = FILE_ICON; + $vars["mode"] = rawurldecode($vars["mode"]); $vars["openfile"] = rawurldecode($vars["openfile"]); $vars["delfile"] = rawurldecode($vars["delfile"]); $vars["refer"] = rawurldecode($vars["refer"]); @@ -114,18 +124,32 @@ function plugin_attach_action() } else if($vars["delfile"]) { - $filename = encode($vars["refer"])."_".encode($vars["delfile"]); - if(is_freeze($vars["refer"]) || !is_editable($vars["refer"])) return array("msg" => $_msg_noparm); + if($vars["mode"] == "confirm") { + $form = "
    \n"; + $form .= "\n"; + $form .= "\n"; + $form .= "\n"; + $form .= "\n"; + $form .= "
    "; + + $retvars["body"] = sprintf($_msg_confirm_delete,$vars["delfile"],$form); + $retvars["msg"] = sprintf($_title_confirm_delete,$vars["delfile"]); + return $retvars; + } + else { + $filename = encode($vars["refer"])."_".encode($vars["delfile"]); + if(is_freeze($vars["refer"]) || !is_editable($vars["refer"])) return array("msg" => $_msg_noparm); - if(!file_exists(UPLOAD_DIR.$filename)) + if(!file_exists(UPLOAD_DIR.$filename)) return array("msg" => $_title_notfound); - @unlink(UPLOAD_DIR.$filename); + @unlink(UPLOAD_DIR.$filename); - if(file_exists(DATA_DIR.encode($vars["refer"]).".txt")) - @touch(DATA_DIR.encode($vars["refer"]).".txt"); + if(file_exists(DATA_DIR.encode($vars["refer"]).".txt")) + @touch(DATA_DIR.encode($vars["refer"]).".txt"); - return array("msg" => $_title_file_deleted); + return array("msg" => $_title_file_deleted); + } } else if($vars["openfile"]) { @@ -145,9 +169,10 @@ function plugin_attach_action() $pgname_keep = ""; $retbody = ""; $aryret = array(); + $pagenames = array(); while($file = readdir($dir)) { - if($file == ".." || $file == ".") continue; + if($file == ".." || $file == "." || strstr($file,".log")!=FALSE) continue; settype($dfile_size,"double"); $dfile_size = round(filesize(UPLOAD_DIR.$file)/1000,1); @@ -163,34 +188,22 @@ function plugin_attach_action() $passage = get_pg_passage($pagename); $pagename = strip_bracket($pagename); - $page = "$pagename$passage\n"; - - $strtmp = ""; - if($pgname_keep != $pagename) - { - if($pgname_keep!="") - $strtmp .= "\n"; - - $strtmp .= "
  • $page
  • \n"; - $strtmp .= "
      \n"; - $aryret[$pagename] = $strtmp; - $pgname_keep = $pagename; - } + $pagenames[$pagename] = "
    • $pagename$passage
    • \n"; $lastmod = date("Y/m/d H:i:s",filemtime(UPLOAD_DIR.$file)); - $del = "[$_btn_delete]"; + $del = "[$_btn_delete]"; $open = "$filename"; - - $into = "
    • $open $del
    • \n"; - - $aryret[$pagename.$filename] = $into; + $aryret[$pagename] .= "
    • $open $del
    • \n"; } closedir($dir); ksort($aryret); - $retbody = join("",$aryret); + $retbody = ''; + foreach($aryret as $pagename => $list) { + $retbody .= $pagenames[$pagename] . "
        \n" . $list . "
      \n"; + } } $retvars["msg"] = $_msg_attach_filelist; @@ -233,7 +246,18 @@ function attach_filelist() function download_file($path_file,$filename) { $content_length = filesize($path_file); - + + $list = array(1); + if(file_exists($path_file.'.log')) { + $list = file($path_file.'.log'); + $list[0] = chop($list[0]) + 1; + } + $fp = fopen($path_file.'.log','w'); + foreach ($list as $l) { + fputs($fp,$l); + } + fclose($fp); + // for japanese if(function_exists("mb_convert_encoding")) $filename = mb_convert_encoding($filename,"SJIS","auto"); diff --git a/plugin/calendar.inc.php b/plugin/calendar.inc.php index c263151..3e7926a 100644 --- a/plugin/calendar.inc.php +++ b/plugin/calendar.inc.php @@ -1,174 +1,174 @@ - - - - -
      '.$m_name.'
      ['.$pre.']
      - - - -'; - - foreach($weeklabels as $label) - { - $ret .= ' - -
      '.$label.'
      - '; - } - - $ret .= "\n\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 = "$day"; - else - $link = "$day"; - - if($fweek) - { - for($i=0;$i<$wday;$i++) - { // Blank - $ret .= " @\n"; - } - $fweek=false; - } - - if($wday == 0) $ret .= " \n"; - if(!$other_month && ($day == $today[mday]) && ($m_num == $today[mon]) && ($year == $today[year])) - { - // Today - $ret .= " $link\n"; - } - else if($wday == 0) - { - // Sunday - $ret .= " $link\n"; - } - else if($wday == 6) - { - // Saturday - $ret .= " $link\n"; - } - else - { - // Weekday - $ret .= " $link\n"; - } - $day++; - $wday++; - $wday = $wday % 7; - } - if($wday > 0) - { - while($wday < 7) - { // Blank - $ret .= " @\n"; - $wday++; - } - } - - $ret .= " \n\n"; - return $ret; -} + + + + +
      '.$m_name.'
      ['.$pre.']
      + + + +'; + + foreach($weeklabels as $label) + { + $ret .= ' + +
      '.$label.'
      + '; + } + + $ret .= "\n\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 = "$day"; + else + $link = "$day"; + + if($fweek) + { + for($i=0;$i<$wday;$i++) + { // Blank + $ret .= " ¡¡\n"; + } + $fweek=false; + } + + if($wday == 0) $ret .= " \n"; + if(!$other_month && ($day == $today[mday]) && ($m_num == $today[mon]) && ($year == $today[year])) + { + // Today + $ret .= " $link\n"; + } + else if($wday == 0) + { + // Sunday + $ret .= " $link\n"; + } + else if($wday == 6) + { + // Saturday + $ret .= " $link\n"; + } + else + { + // Weekday + $ret .= " $link\n"; + } + $day++; + $wday++; + $wday = $wday % 7; + } + if($wday > 0) + { + while($wday < 7) + { // Blank + $ret .= " ¡¡\n"; + $wday++; + } + } + + $ret .= " \n\n"; + return $ret; +} ?> \ No newline at end of file diff --git a/plugin/calendar2.inc.php b/plugin/calendar2.inc.php new file mode 100644 index 0000000..530dc4b --- /dev/null +++ b/plugin/calendar2.inc.php @@ -0,0 +1,243 @@ +'; + + $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 .= ' + + + + + + +'; + } + else { + $ret .= ' +
      +
      << '.$m_name.' >>
      +
      + + + + + +'; + } + + foreach($weeklabels as $label) + { + $ret .= ' + '; + } + + $ret .= "\n\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 = "$day"; + else + $link = "$day"; + + if($fweek) + { + for($i=0;$i<$wday;$i++) + { // Blank + $ret .= " \n"; + } + $fweek=false; + } + + if($wday == 0) $ret .= " \n"; + if(!$other_month && ($day == $today[mday]) && ($m_num == $today[mon]) && ($year == $today[year])) + { + // Today + $ret .= " \n"; + } + else if($wday == 0) + { + // Sunday + $ret .= " \n"; + } + else if($wday == 6) + { + // Saturday + $ret .= " \n"; + } + else + { + // Weekday + $ret .= " \n"; + } + $day++; + $wday++; + $wday = $wday % 7; + } + if($wday > 0) + { + while($wday < 7) + { // Blank + $ret .= " \n"; + $wday++; + } + } + + $ret .= " \n
      +
      << '.$m_name.' >>
      ['.$pre.']
      +
      +
      '.$label.'
      +
       
      $link$link$link$link 
      \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 .= "
      [¤³¤ÎÆüµ­¤òÊÔ½¸]"; + } + else { + $str = make_link(sprintf('[[%s%4d-%02d-%02d]]',$prefix, $today[year], $today[mon], $today[mday])).'¤Ï¶õ¤Ç¤¹¡£'; + } + + $ret .= "".$str.""; + + 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 diff --git a/plugin/calendar_edit.inc.php b/plugin/calendar_edit.inc.php index 8ede3d0..3b9f545 100644 --- a/plugin/calendar_edit.inc.php +++ b/plugin/calendar_edit.inc.php @@ -1,24 +1,24 @@ - + diff --git a/plugin/calendar_read.inc.php b/plugin/calendar_read.inc.php index 8234a85..20ba5ec 100644 --- a/plugin/calendar_read.inc.php +++ b/plugin/calendar_read.inc.php @@ -1,23 +1,23 @@ - + diff --git a/plugin/comment.inc.php b/plugin/comment.inc.php index 8f24955..6eabb58 100644 --- a/plugin/comment.inc.php +++ b/plugin/comment.inc.php @@ -1,148 +1,170 @@ -\n" - ."\n" - ."\n" - ."
      \n" - ."\n"; - } - else - { - $postdata = user_rules_str($postdata); - - // ·•ªƒtƒ@ƒCƒ‹‚̍쐬 - 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‚̍쐬 - if(is_page($post["refer"])) - $oldposttime = filemtime(get_filename(encode($post["refer"]))); - else - $oldposttime = time(); - - // •ÒW“à—e‚ª‰½‚à‘‚©‚ê‚Ä‚¢‚È‚¢‚ƃoƒbƒNƒAƒbƒv‚àíœ‚·‚é?‚µ‚È‚¢‚Å‚·‚æ‚ˁ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ƒ‹‚̏‘‚«ž‚Ý - file_write(DATA_DIR,$post["refer"],$postdata); - - // is_page‚̃LƒƒƒbƒVƒ…‚ðƒNƒŠƒA‚·‚é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_comment_convert() -{ - global $script,$comment_no,$vars,$name_cols,$comment_cols,$digest; - global $_btn_comment,$_btn_name,$vars; - - if((arg_check("read")||$vars["cmd"] == ""||arg_check("unfreeze")||arg_check("freeze")||$vars["write"]||$vars["comment"])) - $button = "\n"; - - $string = "
      \n" - ."\n" - ."\n" - ."\n" - ."\n" - ."$_btn_name\n" - ."\n" - .$button - ."
      "; - - $comment_no++; - - return $string; -} -?> +\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 = "\n"; + + $string = "

      \n" + ."\n" + ."\n" + ."\n" + ."\n" + ."\n" + ."$nametags" + ."\n" + .$button + ."
      "; + + $comment_no++; + + return $string; +} +?> diff --git a/plugin/counter.inc.php b/plugin/counter.inc.php new file mode 100644 index 0000000..d921ed8 --- /dev/null +++ b/plugin/counter.inc.php @@ -0,0 +1,52 @@ +Counter: $count, today: $today_count, yesterday: $yesterday_count"; + +} +?> diff --git a/plugin/img.inc.php b/plugin/img.inc.php new file mode 100644 index 0000000..b0d9c52 --- /dev/null +++ b/plugin/img.inc.php @@ -0,0 +1,20 @@ +"; +} +?> diff --git a/plugin/insert.inc.php b/plugin/insert.inc.php new file mode 100644 index 0000000..1d56783 --- /dev/null +++ b/plugin/insert.inc.php @@ -0,0 +1,121 @@ +\n" + ."\n" + ."\n" + ."
      \n" + ."\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 = "\n"; + + $string = "
      \n" + ."\n" + ."\n" + ."\n" + ."\n" + ."
      \n" + .$button + ."
      "; + + $insert_no++; + + return $string; +} +?> diff --git a/plugin/lookup.inc.php b/plugin/lookup.inc.php index 58a2ab7..76dd5ec 100644 --- a/plugin/lookup.inc.php +++ b/plugin/lookup.inc.php @@ -1,37 +1,37 @@ -\n"; - $ret.= "\n"; - $ret.= "\n"; - $ret.= "\n"; - $ret.= "$iwn:\n"; - $ret.= "\n"; - $ret.= "\n"; - $ret.= "\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(); -} -?> +\n"; + $ret.= "\n"; + $ret.= "\n"; + $ret.= "\n"; + $ret.= "$iwn:\n"; + $ret.= "\n"; + $ret.= "\n"; + $ret.= "\n"; + + return $ret; +} +function plugin_lookup_action() +{ + global $vars,$script; + + if(!$vars["inter"] || !$vars["page"]) return; + + $interwikiname = "[[".$vars["inter"].":".$vars["page"]."]]"; + $interwikiname = rawurlencode($interwikiname); + + header("Location: $script?$interwikiname"); + die(); +} +?> diff --git a/plugin/ls.inc.php b/plugin/ls.inc.php new file mode 100644 index 0000000..6e149a3 --- /dev/null +++ b/plugin/ls.inc.php @@ -0,0 +1,62 @@ +$name$comment\n"; + } + closedir($dir); + } + + if($ls=='') { + return ''; + } + + return "
        $ls
      "; +} +?> diff --git a/plugin/memo.inc.php b/plugin/memo.inc.php new file mode 100644 index 0000000..88ecbcb --- /dev/null +++ b/plugin/memo.inc.php @@ -0,0 +1,126 @@ +\n" + ."\n" + ."\n" + ."
      \n" + ."\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 = "\n"; + + $string = "
      \n" + ."\n" + ."\n" + ."\n" + ."\n" + ."
      \n" + .$button + ."
      "; + + $memo_no++; + + return $string; +} +?> diff --git a/plugin/newpage.inc.php b/plugin/newpage.inc.php new file mode 100644 index 0000000..15fc8b5 --- /dev/null +++ b/plugin/newpage.inc.php @@ -0,0 +1,52 @@ + '¥Ú¡¼¥¸¿·µ¬ºîÀ®' + ); + set_plugin_messages($_plugin_recent_messages); +} + +function plugin_newpage_convert() +{ + global $script,$vars,$_btn_edit,$_msg_newpage; + + $ret = "
      \n"; + $ret.= "\n"; + $ret.= "\n"; + $ret.= "$_msg_newpage: "; + $ret.= "\n"; + $ret.= "\n"; + $ret.= "
      \n"; + + return $ret; +} + +function plugin_newpage_action() +{ + global $vars,$script,$_btn_edit,$_msg_newpage; + + if(!$vars["page"]) { + $retvars["msg"] = $_msg_newpage; + $retvars["body"] = "
      \n"; + $retvars["body"].= "\n"; + $retvars["body"].= "\n"; + $retvars["body"].= "$_msg_newpage: "; + $retvars["body"].= "\n"; + $retvars["body"].= "\n"; + $retvars["body"].= "
      \n"; + + return $retvars; + } + + if(!preg_match("/^($BracketName)|($InterWikiName)$/",$vars["page"])) + { + $vars["page"] = "[[$vars[page]]]"; + } + + $wikiname = rawurlencode($vars["page"]); + + header("Location: $script?$wikiname"); + die(); +} +?> diff --git a/plugin/online.inc.php b/plugin/online.inc.php index 30926c2..4d00b2e 100644 --- a/plugin/online.inc.php +++ b/plugin/online.inc.php @@ -1,48 +1,48 @@ - + diff --git a/plugin/readme.ja.txt b/plugin/readme.ja.txt index 1135a76..ab59b40 100644 --- a/plugin/readme.ja.txt +++ b/plugin/readme.ja.txt @@ -1,64 +1,81 @@ - -///////////////////////////////////////////////// -// ƒvƒ‰ƒOƒCƒ“ƒfƒBƒŒƒNƒgƒŠ‚ɂ‚¢‚Ä - - PukiWiki‚̃y[ƒW‚ÌHTML‚ւ̃Rƒ“ƒo[ƒgŽž‚ƁAƒvƒ‰ƒOƒCƒ“‹@”\‚©‚ç‚Ì’l‚ðŽó‚¯Žæ‚Á‚Ä - ˆ—‚ðs‚¤ƒvƒ‰ƒOƒCƒ“‚ðÝ’u‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B - - ‚±‚̃eƒLƒXƒg‚́A‚»‚̃vƒ‰ƒOƒCƒ“‚Ì‹Lq•û–@‚ɂ‚¢‚Ä‚Ìà–¾‚ð‚µ‚Ü‚·B - - -///////////////////////////////////////////////// -// ƒy[ƒW“à‚ł̃vƒ‰ƒOƒCƒ“‚̌Ăяo‚µ - - #ƒvƒ‰ƒOƒCƒ“–¼ - #ƒvƒ‰ƒOƒCƒ“–¼(arg1,arg2...) - - s“ª‚ɃXƒy[ƒX‚͊܂߂邱‚Æ‚Í‚Å‚«‚È‚¢B - ˆø”“à‚ÉŠ‡ŒÊ()‚ðŽg—p‚·‚邱‚Æ‚ª‚Å‚«‚éB‚½‚¾‚µ ) ’P‘Ì‚Í•s‰ÂB - ˆø”‚ðŽw’肵‚È‚­‚Ä‚àŒÄ‚яo‚¹‚é - - -///////////////////////////////////////////////// -// ƒtƒ@ƒCƒ‹–¼ - - ƒvƒ‰ƒOƒCƒ“–¼.inc.php - - -///////////////////////////////////////////////// -// ŠÖ” - - ¡function plugin_ƒvƒ‰ƒOƒCƒ“–¼_convert() - - HTML‚ւ̃Rƒ“ƒo[ƒgŽž‚ɌĂяo‚³‚ê‚é - - ˆø”‚Í func_get_args() ‚Å”z—ñ‚ÖŠi”[‚Å‚«‚éB([0]`[n]) - func_num_args() ‚É‚æ‚Á‚āA“n‚³‚ꂽˆø”‚̐”‚ð‹‚ß‚é‚±‚Æ‚ª‚Å‚«‚éB - - ¡function plugin_ƒvƒ‰ƒOƒCƒ“–¼_action() - - GETEPOSTƒƒ\ƒbƒh‚Åplugin‚ðŽw’肳‚ꂽ‚Æ‚«‚ɌĂяo‚³‚ê‚é - - •Ô’l‚É array("msg" => "$1 is page") ‚È‚Ç‚ð•Ô‚·‚Æ $1 ‚ðƒy[ƒW–¼‚Æ‚µ‚Ä - ƒy[ƒWƒ^ƒCƒgƒ‹‚É’uŠ·‚³‚ê‚é - - die() ‚ðŽÀs‚·‚邱‚Æ‚É‚æ‚èAƒy[ƒW‚É–ß‚ç‚È‚¢‚悤‚É‚Å‚«‚é - -///////////////////////////////////////////////// -// ƒtƒ@ƒCƒ‹“à—e - - ƒ†[ƒU‚ɐݒ肳‚¹‚鏉Šú’l‚Ȃǂɂ‚¢‚ẮAdefine ‚Å’è‹`‚·‚éB - - ƒRƒ“ƒo[ƒgŽž‚ÌGETEPOST‚̏o—Í“à—e‚É•K—v‚È‚à‚Ì‚Í refer ‚Æ plugin ‚Æ‚¢‚¤’l‚ŁA - refer : ‚»‚̃y[ƒW‚Ì–¼‘O($vars["page"]) - plugin : ƒvƒ‰ƒOƒCƒ“–¼ - ‚Æ‚µ‚Ü‚·B - - ˆÈ‰º‚Ì’l‚ð global ‚ŃOƒ[ƒoƒ‹•Ï”‚É‚·‚邱‚Æ‚É‚æ‚Á‚Ä’l‚ðŽæ“¾‚Å‚«‚Ü‚·B - - $script : ƒXƒNƒŠƒvƒg–¼ - $get : GETƒƒ\ƒbƒh‚É‚æ‚éHTTP‚©‚ç‚̈ø” - $post : POSTƒƒ\ƒbƒh‚É‚æ‚éHTTP‚©‚ç‚̈ø” - $vars : GETEPOST—¼•û‚̃ƒ\ƒbƒh‚É‚æ‚éHTTP‚©‚ç‚̈ø” - - $vars["page"] : ŠJ‚¢‚Ä‚¢‚éƒy[ƒW–¼(strip_bracketŠÖ”‚É‚æ‚è[[]]‚ðŽæ‚菜‚¯‚é) +///////////////////////////////////////////////// +// ¥×¥é¥°¥¤¥ó¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ä¤¤¤Æ + + 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 '=>'
      ºÇ¿·¤Î%d·ï
      %s' + ); + set_plugin_messages($_plugin_recent_messages); + + ¤È¤·¤ÆÃÖ¤¯¤È¡¢*.lng¥Õ¥¡¥¤¥ë¤Ç¥Ü¥¿¥ó¤ä¥á¥Ã¥»¡¼¥¸¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Î¤ß + ¥á¥Ã¥»¡¼¥¸¤Ê¤É¤¬¥»¥Ã¥È¤µ¤ì¤Þ¤¹¡£ + ÊÑ¿ô¤Ê¤É¤Î½é´ü²½¤â¹Ô¤¨¤Þ¤¹¤¬¡¢PukiWiki 1.3.1(MASUI'z Edition)°Ê¹ß¤Î¤ß + Í­¸ú¤Ç¤¹¤Î¤Ç¡¢¸Å¤¤PukiWiki¤«¤é¤Ï¸Æ¤Ð¤ì¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤òµ¤¤ò¤Ä¤±¤Æ + ¤¯¤À¤µ¤¤¡£ + set_plugin_messages´Ø¿ô¤âPukiWiki 1.3.1(MASUI'z Edition)°Ê¹ß¤Î¤ß¤Ç¤¹¡£ + + +///////////////////////////////////////////////// +// ¥Õ¥¡¥¤¥ëÆâÍÆ + + ¥æ¡¼¥¶¤ËÀßÄꤵ¤»¤ë½é´üÃͤʤɤˤĤ¤¤Æ¤Ï¡¢define ¤ÇÄêµÁ¤¹¤ë¡£ + + ¥³¥ó¥Ð¡¼¥È»þ¤ÎGET¡¦POST¤Î½ÐÎÏÆâÍƤËɬÍפʤâ¤Î¤Ï refer ¤È plugin ¤È¤¤¤¦Ãͤǡ¢ + refer : ¤½¤Î¥Ú¡¼¥¸¤Î̾Á°($vars["page"]) + plugin : ¥×¥é¥°¥¤¥ó̾ + ¤È¤·¤Þ¤¹¡£ + + °Ê²¼¤ÎÃͤò global ¤Ç¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Ë¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÃͤò¼èÆÀ¤Ç¤­¤Þ¤¹¡£ + + $script : ¥¹¥¯¥ê¥×¥È̾ + $get : GET¥á¥½¥Ã¥É¤Ë¤è¤ëHTTP¤«¤é¤Î°ú¿ô + $post : POST¥á¥½¥Ã¥É¤Ë¤è¤ëHTTP¤«¤é¤Î°ú¿ô + $vars : GET¡¦POSTξÊý¤Î¥á¥½¥Ã¥É¤Ë¤è¤ëHTTP¤«¤é¤Î°ú¿ô + + $vars["page"] : ³«¤¤¤Æ¤¤¤ë¥Ú¡¼¥¸Ì¾(strip_bracket´Ø¿ô¤Ë¤è¤ê[[]]¤ò¼è¤ê½ü¤±¤ë) diff --git a/plugin/recent.inc.php b/plugin/recent.inc.php new file mode 100644 index 0000000..0b20bd2 --- /dev/null +++ b/plugin/recent.inc.php @@ -0,0 +1,66 @@ +'¡¦', + '_recent_plugin_frame '=>'
      ºÇ¿·¤Î%d·ï
      %s'); + 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 .= "
      "; + } + $items .= "".$match[0]."
      "; + $date = $match[0]; + } + } + $items .= $_recent_plugin_li."".$title."
      \n"; + $cnt++; + } + } + return sprintf($_recent_plugin_frame,$cnt,$items); +} +?> diff --git a/plugin/source.inc.php b/plugin/source.inc.php new file mode 100644 index 0000000..989c6d0 --- /dev/null +++ b/plugin/source.inc.php @@ -0,0 +1,12 @@ + diff --git a/plugin/update.inc.php b/plugin/update.inc.php new file mode 100644 index 0000000..39a98ea --- /dev/null +++ b/plugin/update.inc.php @@ -0,0 +1,118 @@ +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); +} + +?> diff --git a/plugin/version.inc.php b/plugin/version.inc.php index 6d73b76..65102d1 100644 --- a/plugin/version.inc.php +++ b/plugin/version.inc.php @@ -1,6 +1,6 @@ -".S_VERSION.""; -} -?> +".S_VERSION.""; +} +?> diff --git a/plugin/vote.inc.php b/plugin/vote.inc.php new file mode 100644 index 0000000..a1fe4a7 --- /dev/null +++ b/plugin/vote.inc.php @@ -0,0 +1,150 @@ +\n" + ."\n" + ."\n" + ."
      \n" + ."\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 = "\n" + + . "\n" + . "\n" + . "\n" + . "\n" + . "\n" + + . "\n" + . "\n" + . "\n" + . "\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 .= "" + . "" + . "" + . "\n"; + } + + $string .= "\n" + . "
      The choicesVotes
      $link$cnt  
      \n"; + + $vote_no++; + + return $string; +} +?> + diff --git a/pukiwiki.ini.php b/pukiwiki.ini.php index 3071cd8..3091708 100644 --- a/pukiwiki.ini.php +++ b/pukiwiki.ini.php @@ -1,5 +1,9 @@ >>>>>>>>>"; ///////////////////////////////////////////////// // °ìÍ÷¡¦¹¹¿·°ìÍ÷¤Ë´Þ¤á¤Ê¤¤¥Ú¡¼¥¸Ì¾(Àµµ¬É½¸½¤Ç) $non_list = "^(\[\[\:)"; + ///////////////////////////////////////////////// // ¿÷·Á¤È¤¹¤ë¥Ú¡¼¥¸¤ÎÆɤ߹þ¤ß¤òɽ¼¨¤µ¤»¤ë¤« $load_template_func = 1; ///////////////////////////////////////////////// +// ¥Ú¡¼¥¸Ì¾¤Ë½¾¤Ã¤Æ¼«Æ°¤Ç¡¢¿÷·Á¤È¤¹¤ë¥Ú¡¼¥¸¤ÎÆɤ߹þ¤ß +$auto_template_func = 1; +$auto_template_rules = array( +'\[\[((.+)\/([^\/]+))\]\]' => '[[\2/template]]' +); + +///////////////////////////////////////////////// // ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë // // Àµµ¬É½¸½¤Çµ­½Ò¤·¤Æ¤¯¤À¤µ¤¤¡£?(){}-*./+\$^|¤Ê¤É @@ -173,6 +185,7 @@ $str_rules = array( "date\?" => date($date_format,UTIME), "time\?" => date($time_format,UTIME), ); + ///////////////////////////////////////////////// // ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë(¥³¥ó¥Ð¡¼¥È»þ¤ËÃÖ´¹¡¢Ä¾Àܤ·¤Ê¤¤) $line_rules = array( @@ -369,4 +382,4 @@ now?
    '; -?> \ No newline at end of file +?> diff --git a/pukiwiki.php b/pukiwiki.php index aaa6ee8..7d8ad50 100644 --- a/pukiwiki.php +++ b/pukiwiki.php @@ -1,2400 +1,732 @@ - -// http://factage.com/sng/pukiwiki/ -// -// Special thanks -// YukiWiki by Hiroshi Yuki -// -// 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.1 2002/06/20 13:59:31 masui Exp $ -///////////////////////////////////////////////// - -///////////////////////////////////////////////// -// ÀßÄê¥Õ¥¡¥¤¥ë¤Î¾ì½ê -define("INI_FILE","./pukiwiki.ini.php"); - -//** ½é´üÀßÄê ** - -define("S_VERSION","1.3"); -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 = basename($PHP_SELF); - -$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.
    The version of a setting file may be old.

    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"; - -// ** ¥á¥¤¥ó½èÍý ** - -// Plug-in hook -if(isset($vars["plugin"])) -{ - if(!file_exists(PLUGIN_DIR.$vars["plugin"].".inc.php")) - { - $vars["plugin"] = ""; - } - else - { - require_once(PLUGIN_DIR.$vars["plugin"].".inc.php"); - if(!function_exists("plugin_".$vars["plugin"]."_action")) - { - $vars["plugin"] = ""; - } - } -} - - -// Plug-in action -if(!empty($vars["plugin"])) -{ - $retvars = @call_user_func("plugin_".$vars["plugin"]."_action"); - - $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("",@file(get_filename(encode($vars["refer"])))); - $body = convert_html($body); - } -} -// °ìÍ÷¤Îɽ¼¨ -else if(arg_check("list")) -{ - header_lastmod($whatsnew); - - $page = $title = $_title_list; - $body = "
      \n" . get_list(false) . "
    \n"; -} -// ¥Õ¥¡¥¤¥ë̾°ìÍ÷¤Îɽ¼¨ -else if(arg_check("filelist")) -{ - header_lastmod($whatsnew); - - $page = $title = $_title_filelist; - $body = "
      \n" . get_list(true) . "
    \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 .= "($_msg_unfreeze)"; -} -// Äɲà -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 = "
      \n"; - $body .= "
    • $_msg_add
    • \n"; - $body .= "
    \n"; - $body .= edit_form("",$get["page"],true); -} -// ÊÔ½¸ -else if(arg_check("edit")) -{ - $postdata = @join("",@file(get_filename(encode($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"] && file_exists(get_filename(encode($post["template_page"])))) - { - $post["msg"] = @join("",@file(get_filename(encode($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("",@file(get_filename(encode($post["page"])))); - } - else - { - $postdata = @join("",@file(get_filename(encode($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
    \n"; - if($postdata == "") $body .= "$_msg_preview_delete
    \n"; - else $body .= "
    \n"; - - if($postdata != "") - { - $postdata = convert_html($postdata); - - $body .= "\n" - ."\n" - ."
    \n" - .$postdata - ."\n
    \n"; - } - - if($post["add"]) - { - if($post["add_top"]) $checked_top = " checked"; - $addtag = ''; - $add_top = '¥Ú¡¼¥¸¤Î¾å¤ËÄɲÃ'; - } - if($post["notimestamp"]) $checked_time = "checked"; - - $body .= "
    \n" - ."\n" - ."\n" - ."\n" - ."$addtag\n" - ."
    \n" - ."\n" - ."\n" - ."$add_top\n" - ."$_btn_notchangetimestamp\n" - ."
    \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("",@file(get_filename(encode($post["page"])))); - } - else - { - $postdata = @join("",@file(get_filename(encode($post["page"])))); - $postdata .= "\n\n"; - $postdata .= $post["msg"]; - } - } - else - { - $postdata = $post["msg"]; - } - - if(md5(@join("",@file(get_filename(encode($post["page"]))))) != $post["digest"]) - { - $title = str_replace('$1',strip_bracket($post["page"]),$_title_collided); - $page = str_replace('$1',make_search($post["page"]),$_title_collided); - - $body .= "$_msg_collided\n"; - - $body .= "
    \n" - ."\n" - ."\n" - ."
    \n" - ."
    \n"; - } - else - { - $postdata = user_rules_str($postdata); - - // º¹Ê¬¥Õ¥¡¥¤¥ë¤ÎºîÀ® - if(is_page($post["page"])) - $oldpostdata = join("",file(get_filename(encode($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); - } - 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 = file(get_filename(encode($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("",file(get_filename(encode($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.= "
    \n"; - - if($post["pass"]) - $body .= "$_msg_invalidpass
    \n"; - else - $body.= "$_msg_freezing
    \n"; - - $body.= "
    \n"; - $body.= "\n"; - $body.= "\n"; - $body.= "\n"; - $body.= "
    \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 = file(get_filename(encode($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("",file(get_filename(encode($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.= "
    \n"; - - if($post["pass"]) - $body .= "$_msg_invalidpass
    \n"; - else - $body.= "$_msg_unfreezing
    \n"; - - $body.= "
    \n"; - $body.= "\n"; - $body.= "\n"; - $body.= "\n"; - $body.= "
    \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',"$pagename",$_msg_goto); - - $body = "
      \n" - ."
    • $_msg_addline
    • \n" - ."
    • $_msg_delline
    • \n" - ."
    • $link
    • \n" - ."
    \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 = file(get_filename(encode($get["page"]))); - $body .= "\n" - ."
    \n"
    -			.join("",$diffdata)
    -			."\n"
    -			."
    \n" - ."
    \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("/^(\-)(.*)/"," $2",$diffdata); - $diffdata = preg_replace("/^(\+)(.*)/"," $2",$diffdata); - - $body .= "
    \n"
    -			.join("",$diffdata)
    -			."\n"
    -			."
    \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 = "
    \n$_msg_searching"; - - if($vars["type"]=="AND" || !$vars["type"]) $and_check = "checked"; - else if($vars["type"]=="OR") $or_check = "checked"; - - $body .= "
    \n" - ."\n" - ."$_btn_and\n" - ."$_btn_or\n" - ." \n" - ."
    \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 = "
      \n"; - - $body .= "
    • $_msg_backuplist
    • \n"; - - if(!arg_check("backup_diff") && is_page($get["page"])) - { - $link = str_replace('$1',"$_msg_diff",$_msg_view); - $body .= "
    • $link
    • \n"; - } - if(!arg_check("backup_nowdiff") && is_page($get["page"])) - { - $link = str_replace('$1',"$_msg_nowdiff",$_msg_view); - $body .= "
    • $link
    • \n"; - } - if(!arg_check("backup_source")) - { - $link = str_replace('$1',"$_msg_source",$_msg_view); - $body .= "
    • $link
    • \n"; - } - if(arg_check("backup_diff") || arg_check("backup_source") || arg_check("backup_nowdiff")) - { - $link = str_replace('$1',"$_msg_backup",$_msg_view); - $body .= "
    • $link
    • \n"; - } - - if(is_page($get["page"])) - { - $link = str_replace('$1',"$pagename",$_msg_goto); - $body .= "
    • $link
    • \n"; - } - else - { - $link = str_replace('$1',$pagename,$_msg_deleleted); - $body .= "
    • $link
    • \n"; - } - - $backups = array(); - $backups = get_backup_info(encode($get["page"]).".txt"); - if(count($backups)) $body .= "
        \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 .= "
      • $key $backupdate
      • \n"; - else - $body .= "
      • $key $backupdate
      • \n"; - } - if(count($backups)) $body .= "
      \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("",@file(get_filename(encode($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.="
    \n
    \n$backupdata
    \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 .= "\n" - ."$hr\n"; - $body .= $backupdata; - } - - if(arg_check("backup_diff") || arg_check("backup_nowdiff")) - { - $diffdata = preg_replace("//",">",$diffdata); - $diffdata = preg_replace("/^(\-)(.*)/"," $2",$diffdata); - $diffdata = preg_replace("/^(\+)(.*)/"," $2",$diffdata); - - $body .= "
    \n" - ."
  • $_msg_addline
  • \n" - ."
  • $_msg_delline
  • \n" - ."\n" - ."$hr\n" - ."
    \n".join("\n",$diffdata)."
    \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("",file(get_filename(encode($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',"InterWikiName",$_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); - $body = edit_form("",$get["page"]); - } -} -// ²¿¤â»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥È¥Ã¥×¥Ú¡¼¥¸¤òɽ¼¨ -else -{ - $postdata = join("",file(get_filename(encode($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); - -// ** ³Æ¼ï´Ø¿ô ** - -// ËÜʸ¤ò¥Ú¡¼¥¸Ì¾¤«¤é½ÐÎÏ -function catbodyall($page,$title="",$pg="") -{ - if($title === "") $title = strip_bracket($page); - if($pg === "") $pg = make_search($page); - - $body = join("",file(get_filename(encode($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); -} - -// ¥Õ¥¡¥¤¥ë¤Ø¤Î½ÐÎÏ -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 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"] = "
  • $name
  • "; - else - $vals[$name]["link"] = "
  • $name
  • "; - $vals[$name]["name"] = $page; - } - closedir($dir); - $vals = list_sort($vals); - $retvars[] = "
      "; - } - else - { - $page_url = rawurlencode($_page); - $name = strip_bracket($_page); - $vals[$name]["link"] = ""; - $vals[$name]["name"] = $_page; - $retvars[] = "
        "; - $retvars[] .= "
      • $_msg_backuplist
      • \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
          \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"] .= "
        • $key $backupdate
        • \n"; - } - else - { - $line["link"] .= "
        • $key $backupdate [ $_msg_diff | $_msg_nowdiff | $_msg_source ]
        • \n"; - } - } - if(count($arybackups)) $line["link"] .= "
        "; - $retvars[] = $line["link"]; - } - $retvars[] = "
      "; - - return join("\n",$retvars); -} - -// ºÇ½ª¹¹¿·¥Ú¡¼¥¸¤Î¹¹¿· -function put_lastmodified() -{ - global $script,$maxshow,$whatsnew,$date_format,$time_format,$weeklabels,$post,$non_list; - - if($post["notimestamp"]) return; - - if ($dir = @opendir(DATA_DIR)) - { - while($file = readdir($dir)) - { - $page = decode(trim(preg_replace("/\.txt$/"," ",$file))); - - if($page == $whatsnew || $file == "." || $file == "..") 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"; - } - } - closedir($dir); - } - - $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 do_search($word,$type="AND",$non_format=0) -{ - global $script,$whatsnew,$vars; - global $_msg_andresult,$_msg_orresult,$_msg_notfoundresult; - - $database = array(); - $retval = array(); - $cnt = 0; - - if ($dir = @opendir(DATA_DIR)) - { - while($file = readdir($dir)) - { - if($file == ".." || $file == ".") continue; - $cnt++; - $page = decode(trim(preg_replace("/\.txt$/"," ",$file))); - if($page == $whatsnew) continue; - if($page == $vars["page"] && $non_format) continue; - $data[$page] = file(DATA_DIR.$file); - } - closedir($dir); - } - - $arywords = explode(" ",$word); - $result_word = $word; - - foreach($data as $name => $lines) - { - $line = join("\n",$lines); - - $hit = 0; - if(strpos($result_word," ") !== FALSE) - { - foreach($arywords as $word) - { - if($type=="AND") - { - if(strpos($line,$word) === FALSE) - { - $hit = 0; - break; - } - else - { - $hit = 1; - } - } - else if($type=="OR") - { - if(strpos($line,$word) !== FALSE) - $hit = 1; - } - } - if($hit==1 || strpos($name,$word)!==FALSE) - { - $page_url = rawurlencode($name); - $word_url = rawurlencode($word); - $name2 = strip_bracket($name); - $str = get_pg_passage($name); - $retval[$name2] = "
    • $name2$str
    • "; - } - } - else - { - if(stristr($line,$word) || stristr($name,$word)) - { - $page_url = rawurlencode($name); - $word_url = rawurlencode($word); - $name2 = strip_bracket($name); - $link_tag = "$name2"; - $link_tag .= get_pg_passage($name,false); - if($non_format) - { - $tm = @filemtime(get_filename(encode($name))); - $retval[$tm] = $link_tag; - } - else - { - $retval[$name2] = "
    • $link_tag
    • "; - } - } - } - } - - if($non_format) - return $retval; - - $retval = list_sort($retval); - - if(count($retval) && !$non_format) - { - $retvals = "
        \n" . join("\n",$retval) . "
      \n
      \n"; - - if($type=="AND") - $retvals.= str_replace('$1',$result_word,str_replace('$2',count($retval),str_replace('$3',$cnt,$_msg_andresult))); - else - $retvals.= str_replace('$1',$result_word,str_replace('$2',count($retval),str_replace('$3',$cnt,$_msg_orresult))); - - } - else - $retvals .= str_replace('$1',$result_word,$_msg_notfoundresult); - return $retvals; -} - -// º¹Ê¬¤ÎºîÀ® -function do_diff($strlines1,$strlines2) -{ - $lines1 = split("\n",$strlines1); - $lines2 = split("\n",$strlines2); - - $same_lines = $diff_lines = $del_lines = $add_lines = $retdiff = array(); - - if(count($lines1) > count($lines2)) { $max_line = count($lines1)+2; } - else { $max_line = count($lines2)+2; } - - //$same_lines = array_intersect($lines1,$lines2); - - $diff_lines = array_diff($lines1,$lines2); - $diff_lines = array_merge($diff_lines,array_diff($lines2,$lines1)); - - foreach($diff_lines as $line) - { - $index = array_search($line,$lines1); - if($index > -1) - { - $del_lines[$index] = $line; - } - - //$index = array_search($line,$lines2); - //if($index > -1) - //{ - // $add_lines[$index] = $line; - //} - } - - $cnt=0; - foreach($lines2 as $line) - { - $line = rtrim($line); - - while($del_lines[$cnt]) - { - $retdiff[] = "- ".$del_lines[$cnt]; - $del_lines[$cnt] = ""; - $cnt++; - } - - if(in_array($line,$diff_lines)) - { - $retdiff[] = "+ $line"; - } - else - { - $retdiff[] = " $line"; - } - - $cnt++; - } - - foreach($del_lines as $line) - { - if(trim($line)) - $retdiff[] = "- $line"; - } - - return join("\n",$retdiff); -} - -// °ìÍ÷¤Î¼èÆÀ -function get_list($withfilename) -{ - global $script,$list_index,$top,$non_list,$whatsnew; - global $_msg_symbol,$_msg_other; - - $retval = array(); - if ($dir = @opendir(DATA_DIR)) - { - while($file = readdir($dir)) - { - $page = decode(trim(preg_replace("/\.txt$/"," ",$file))); - if($file == ".." || $file == ".") continue; - 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] .= "
    • $page2$pg_passage
    • \n"; - if($withfilename) - { - $retval[$page2] .= "
      • $file
      \n"; - } - } - closedir($dir); - } - - $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] = "
    \n"; - $retval2[$page] .= "
  • $head
  • \n
      \n"; - $head_str = $head; - if($top_link) $top_link .= "|"; - $top_link .= " ".$head." "; - } - else if(preg_match("/[ -~]/",$head)) - { - if(!$symbol_sw) - { - if($head_str) $retval2[$page] = "
    \n"; - $retval2[$page] .= "
  • $_msg_symbol
  • \n
      \n"; - $head_str = $head; - if($top_link) $top_link .= "|"; - $top_link .= "$_msg_symbol"; - $symbol_sw = 1; - } - } - else - { - if($head_str) $retval2[$page] = "
    \n"; - $retval2[$page] .= "
  • $_msg_other
  • \n
      \n"; - $etc_sw = 1; - if($top_link) $top_link .= "|"; - $top_link .= "$_msg_other"; - } - } - $retval2[$page] .= $link; - } - $retval2[] = "
    \n"; - - $top_link = "
    \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("",@file(get_filename(encode($page))))); - - if($add) - { - $addtag = ''; - $add_top = ''.$_btn_addtop.''; - } - - if($vars["help"] == "true") - $help = $hr.catrule(); - else - $help = "
    \n\n"; - - if($function_freeze) - $str_freeze = ''; - - if($load_template_func) - { - $vals = array(); - if ($dir = @opendir(DATA_DIR)) - { - while($file = readdir($dir)) - { - $pg_org = decode(trim(preg_replace("/\.txt$/"," ",$file))); - if($file == ".." || $file == "." || $pg_org == $whatsnew) continue; - if(preg_match("/$non_list/",$pg_org)) continue; - $name = strip_bracket($pg_org); - $vals[$name] = " "; - } - closedir($dir); - } - @ksort($vals); - - $template = " \n" - ."
    \n"; - - if($vars["refer"]) $refer = $vars["refer"]."\n\n"; - } - -return ' -
    - - -'.$addtag.' - - - - - - - - - - - - - - - -
    -'.$template.' -
    - -
    - - - '.$add_top.' - '.$_btn_notchangetimestamp.' -
    - '.$str_freeze.' -
    -' . $help; -} - -// ¥Õ¥¡¥¤¥ë̾¤òÆÀ¤ë(¥¨¥ó¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ëɬÍ×Í­¤ê) -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(!file_exists(get_filename(encode($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 = file(get_filename(encode($page))); - - if($lines[0] == "#freeze\n") - $_freeze = true; - else - $_freeze = false; - - return $_freeze; -} - -// ¥×¥í¥°¥é¥à¤Ø¤Î°ú¿ô¤Î¥Á¥§¥Ã¥¯ -function arg_check($str) -{ - global $arg,$vars; - - return preg_match("/^".$str."/",$vars["cmd"]); -} - -// ¥Ú¡¼¥¸¥ê¥¹¥È¤Î¥½¡¼¥È -function list_sort($values) -{ - if(!is_array($values)) return array(); - - // ksort¤Î¤ß¤À¤È¡¢[[ÆüËܸì]]¡¢[[±Ñʸ»ú]]¡¢±Ñʸ»ú¤Î¤ß¡¢¤Ë½ç¤ËʤÙÂؤ¨¤é¤ì¤ë - ksort($values); - - $vals1 = array(); - $vals2 = array(); - $vals3 = array(); - - // ±Ñʸ»ú¤Î¤ß¡¢[[±Ñʸ»ú]]¡¢[[ÆüËܸì]]¡¢¤Î½ç¤ËʤÙÂؤ¨¤ë - foreach($values as $key => $val) - { - if(preg_match("/\[\[[^\w]+\]\]/",$key)) - $vals3[$key] = $val; - else if(preg_match("/\[\[[\W]+\]\]/",$key)) - $vals2[$key] = $val; - else - $vals1[$key] = $val; - } - return array_merge($vals1,$vals2,$vals3); -} - -// ¥Ú¡¼¥¸Ì¾¤Î¥¨¥ó¥³¡¼¥É -function encode($key) -{ - $enkey = ''; - $arych = preg_split("//", $key, -1, PREG_SPLIT_NO_EMPTY); - - foreach($arych as $ch) - { - $enkey .= sprintf("%02X", ord($ch)); - } - - return $enkey; -} - -// ¥Õ¥¡¥¤¥ë̾¤Î¥Ç¥³¡¼¥É -function decode($key) -{ - $dekey = ''; - - for($i=0;$i$top"; - - foreach ($lines as $line) - { - if(!preg_match("/^\/\/(.*)/",$line,$comment_out) && $table != 0) - { - if(!preg_match("/^\|(.+)\|$/",$line,$out)) - array_push($result, ""); - 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, "$str $top_link"); - $arycontents[] = str_repeat("-",$level-1)."".strip_htmltag($str)."\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, '
  • ' . inline($out[2]) . '
  • '); - } - } - else if (preg_match("/^:([^:]+):(.*)/",$line,$out)) - { - back_push('dl', 1); - array_push($result, '
    ' . inline($out[1]) . '
    ', '
    ' . inline($out[2]) . '
    '); - } - 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, "

    "); - array_push($result, "

    "); - } - 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 = count($arytable); - } - - array_push($result,""); - foreach($arytable as $td) - { - array_push($result,""); - } - array_push($result,""); - - } - else if(strlen($comment_out) != 0) - { - array_push($result," "); - } - else - { - array_push($result, inline($line)); - } - } - if($table) array_push($result, "
    "); - array_push($result,ltrim(inline($td))); - array_push($result,"
    "); - - $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, '

  • '.$out[2].'
  • '); - } - } - $result = array_merge($result,$saved); $saved = array(); - - $contents = "\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 .= "

    \n"; - $str .= join("\n",inline2($foot_explain)); - //$str .= "

    \n"; - } - - $longtaketime = getmicrotime() - $start_mtime; - - $str = preg_replace("/&((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] != "") { - $result = array_merge($result,$saved); $saved = array(); - } - while (count($saved) < $level) { - array_unshift($saved, ""); - 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$1",$str); // Italic - - $str = preg_replace("/''([^']+?)''/s","$1",$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","plugin_convert('$1','$2')",$aryplugins); - $aryplugins = preg_replace("/^\#([^\(]+)\((.*)\)$/ex","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; -} - -// Plug-in -function plugin_convert($plugin_name,$plugin_args) -{ - $invalid_return = "#${plugin_name}(${plugin_args})"; - - if($plugin_args !== "") - $aryargs = explode(",",$plugin_args); - else - $aryargs = array(); - $retvar = call_user_func_array("plugin_${plugin_name}_convert",$aryargs); - - if($retvar === FALSE) return $invalid_return; - else return $retvar; -} - -// ´ØÏ¢¤¹¤ë¥Ú¡¼¥¸ -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>(.*)/",$str,$out); - - if($out[3]) $title = " title=\"$out[2] $out[3]\""; - - $aryret[$out[2]] = "$out[2]"; - } - @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[] = "*$note_id $str
    \n"; - $note = "*$note_id"; - $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 "$match[1]"; - } - else if(preg_match("/^\[((https?|ftp|news)([^\]\s]+))\s([^\]]+)\]$/",$name,$match)) - { - $match[1] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[1]); - return "$match[4]"; - } - 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 ""; - else - return "$page"; - } - 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 "$match[1]"; - } - else if(preg_match("/^([[:alnum:]\-_]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)/",$name)) - { - $name = str_replace($aryconv_htmlspecial,$aryconv_html,$name); - return "$page"; - } - 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 "$page"; - } - 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$pagename$str"; - if($show_passage) - { - $str_title = "title=\"$pagename $str\""; - } - return "$page"; - } - else - return "$page?"; - } - 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; -} - -// InterWikiName List ¤Î²ò¼á(ÊÖÃÍ:£²¼¡¸µÇÛÎó) -function open_interwikiname_list() -{ - global $interwiki; - - $retval = array(); - $aryinterwikiname = file(get_filename(encode($interwiki))); - - $cnt = 0; - foreach($aryinterwikiname as $line) - { - if(preg_match("/\[((https?|ftp|news)(\:\/\/[[:alnum:]\+\$\;\?\.%,!#~\*\/\:@&=_\-]+))\s([^\]]+)\]\s?([^\s]*)/",$line,$match)) - { - $retval[$match[4]]["url"] = $match[1]; - $retval[$match[4]]["opt"] = $match[5]; - } - } - - return $retval; -} - -// 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); -} - -// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤òºîÀ®¤¹¤ë -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 strip_bracket($str) -{ - global $strip_link_wall; - - if($strip_link_wall) - { - preg_match("/^\[\[(.*)\]\]$/",$str,$match); - if($match[1]) - $str = $match[1]; - } - return $str; -} - -// HTML¥¿¥°¤ò¼è¤ê½ü¤¯ -function strip_htmltag($str) -{ - //$str = preg_replace("/]+>\?<\/a>/","",$str); - return preg_replace("/<[^>]+>/","",$str); -} - -// ¥Æ¥­¥¹¥ÈÀ°·Á¥ë¡¼¥ë¤òɽ¼¨¤¹¤ë -function catrule() -{ - global $rule_body; - return $rule_body; -} - -// ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë -function die_message($msg) -{ - $title = $page = "Runtime error"; - - $body = "

    Runtime error

    \n"; - $body .= "Error message : $msg\n"; - - catbody($title,$page,$body); - - die(); -} - -// »ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤Î·Ð²á»þ¹ï -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"] = "".$_pg_passage[$page]["label"].""; - } - else - { - $_pg_passage[$page]["label"] = ""; - $_pg_passage[$page]["str"] = ""; - } - - if($sw) - return $_pg_passage[$page]["str"]; - else - return $_pg_passage[$page]["label"]; -} - -// ¸½ºß»þ¹ï¤ò¥Þ¥¤¥¯¥íÉäǼèÆÀ -function getmicrotime() -{ - list($usec, $sec) = explode(" ",microtime()); - return ((float)$sec + (float)$usec); -} - -// ¥Ú¡¼¥¸Ì¾¤«¤é¥Ú¡¼¥¸Ì¾¤ò¸¡º÷¤¹¤ë¥ê¥ó¥¯¤òºîÀ® -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 "$name "; -} - -// 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"); - } -} - -// RecentChanges ¤Î RSS ¤ò½ÐÎÏ -function catrss($rss) -{ - global $rss_max,$page_title,$WikiName,$BracketName,$script,$whatsnew; - - $lines = file(get_filename(encode($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.= "\n"; - else - $items.= "\n"; - $items.= " $title\n"; - $items.= " http://".SERVER_NAME.PHP_SELF."?".rawurlencode($url)."\n"; - $items.= " $desc\n"; - $items.= "\n\n"; - $rdf_li.= " \n"; - - } - - $cnt++; - } - - if($rss==1) - { -?> -'?> - - - - - - - -<?=$page_title?> - -PukiWiki RecentChanges -ja - - - - - -'?> - - - - - "> - <?=$page_title?> - - PukiWiki RecentChanges - - - - - - - - - - + +// http://masui.net/pukiwiki/ +// +// PukiWiki 1.3 (Base) +// Copyright (C) 2001,2002 by sng. +// +// http://factage.com/sng/pukiwiki/ +// +// Special thanks +// YukiWiki by Hiroshi Yuki +// +// 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 = "
      \n" . get_list(false) . "
    \n"; +} +// ¥Õ¥¡¥¤¥ë̾°ìÍ÷¤Îɽ¼¨ +else if(arg_check("filelist")) +{ + header_lastmod($whatsnew); + + $page = $title = $_title_filelist; + $body = "
      \n" . get_list(true) . "
    \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 .= "($_msg_unfreeze)"; +} +// Äɲà +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 = "
      \n"; + $body .= "
    • $_msg_add
    • \n"; + $body .= "
    \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
    \n"; + if($postdata == "") $body .= "$_msg_preview_delete
    \n"; + else $body .= "
    \n"; + + if($postdata != "") + { + $postdata = convert_html($postdata); + + $body .= "\n" + ."\n" + ."
    \n" + .$postdata + ."\n
    \n"; + } + + if($post["add"]) + { + if($post["add_top"]) $checked_top = " checked"; + $addtag = ''; + $add_top = '¥Ú¡¼¥¸¤Î¾å¤ËÄɲÃ'; + } + if($post["notimestamp"]) $checked_time = "checked"; + + $body .= "
    \n" + ."\n" + ."\n" + ."\n" + ."$addtag\n" + ."
    \n" + ."\n" + ."\n" + ."$add_top\n" + ."$_btn_notchangetimestamp\n" + ."
    \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 .= "
    \n" + ."\n" + ."\n" + ."
    \n" + ."\n" + ."\n" + ."$add_top\n" + ."$_btn_notchangetimestamp\n" + ."
    \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.= "
    \n"; + + if($post["pass"]) + $body .= "$_msg_invalidpass
    \n"; + else + $body.= "$_msg_freezing
    \n"; + + $body.= "
    \n"; + $body.= "\n"; + $body.= "\n"; + $body.= "\n"; + $body.= "
    \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.= "
    \n"; + + if($post["pass"]) + $body .= "$_msg_invalidpass
    \n"; + else + $body.= "$_msg_unfreezing
    \n"; + + $body.= "
    \n"; + $body.= "\n"; + $body.= "\n"; + $body.= "\n"; + $body.= "
    \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',"$pagename",$_msg_goto); + + $body = "
      \n" + ."
    • $_msg_addline
    • \n" + ."
    • $_msg_delline
    • \n" + ."
    • $link
    • \n" + ."
    \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 .= "\n" + ."
    \n"
    +			.join("",$diffdata)
    +			."\n"
    +			."
    \n" + ."
    \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("/^(\-)(.*)/"," $2",$diffdata); + $diffdata = preg_replace("/^(\+)(.*)/"," $2",$diffdata); + + $body .= "
    \n"
    +			.join("",$diffdata)
    +			."\n"
    +			."
    \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 = "
    \n$_msg_searching"; + + if($vars["type"]=="AND" || !$vars["type"]) $and_check = "checked"; + else if($vars["type"]=="OR") $or_check = "checked"; + + $body .= "
    \n" + ."\n" + ."$_btn_and\n" + ."$_btn_or\n" + ." \n" + ."
    \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 = "
      \n"; + + $body .= "
    • $_msg_backuplist
    • \n"; + + if(!arg_check("backup_diff") && is_page($get["page"])) + { + $link = str_replace('$1',"$_msg_diff",$_msg_view); + $body .= "
    • $link
    • \n"; + } + if(!arg_check("backup_nowdiff") && is_page($get["page"])) + { + $link = str_replace('$1',"$_msg_nowdiff",$_msg_view); + $body .= "
    • $link
    • \n"; + } + if(!arg_check("backup_source")) + { + $link = str_replace('$1',"$_msg_source",$_msg_view); + $body .= "
    • $link
    • \n"; + } + if(arg_check("backup_diff") || arg_check("backup_source") || arg_check("backup_nowdiff")) + { + $link = str_replace('$1',"$_msg_backup",$_msg_view); + $body .= "
    • $link
    • \n"; + } + + if(is_page($get["page"])) + { + $link = str_replace('$1',"$pagename",$_msg_goto); + $body .= "
    • $link
    • \n"; + } + else + { + $link = str_replace('$1',$pagename,$_msg_deleleted); + $body .= "
    • $link
    • \n"; + } + + $backups = array(); + $backups = get_backup_info(encode($get["page"]).".txt"); + if(count($backups)) $body .= "
        \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 .= "
      • $key $backupdate
      • \n"; + else + $body .= "
      • $key $backupdate
      • \n"; + } + if(count($backups)) $body .= "
      \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.="
    \n
    \n$backupdata
    \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 .= "\n" + ."$hr\n"; + $body .= $backupdata; + } + + if(arg_check("backup_diff") || arg_check("backup_nowdiff")) + { + $diffdata = preg_replace("//",">",$diffdata); + $diffdata = preg_replace("/^(\-)(.*)/"," $2",$diffdata); + $diffdata = preg_replace("/^(\+)(.*)/"," $2",$diffdata); + + $body .= "
    \n" + ."
  • $_msg_addline
  • \n" + ."
  • $_msg_delline
  • \n" + ."\n" + ."$hr\n" + ."
    \n".join("\n",$diffdata)."
    \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',"InterWikiName",$_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); + +// ** ½ªÎ» ** +?> diff --git a/readme.txt b/readme.txt index 9b4114c..7aba344 100644 --- a/readme.txt +++ b/readme.txt @@ -1,12 +1,18 @@ NAME PukiWiki - Ž©—R‚Ƀy[ƒW‚ð’ljÁEíœE•ÒW‚Å‚«‚éWebƒy[ƒW\’zPHPƒXƒNƒŠƒvƒg + PukiWiki 1.3.1beta MASUI'z Edition + Copyright (C) 2001,2002 by sng, MASUI. + Yuichiro MASUI + http://masui.net/pukiwiki/ + + PukiWiki 1.3 (based) Copyright (C) 2001,2002 by sng. sng http://factage.com/sng/ SYNOPSIS - http://factage.com/sng/pukiwiki/pukiwiki.php + http://masui.net/pukiwiki/ DESCRIPTION PukiWiki‚ÍŽQ‰ÁŽÒ‚ªŽ©—R‚Ƀy[ƒW‚ð’ljÁEíœE•ÒW‚Å‚«‚é @@ -16,6 +22,8 @@ DESCRIPTION PukiWiki‚́AWebƒy[ƒW‘S‘Ì‚ðŽ©—R‚ɕύX‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B PukiWiki‚́AŒ‹é_‚³‚ñ‚ÌYukiWiki‚ÌŽd—l‚ðŽQl‚É‚µ‚Ä“ÆŽ©‚ɍì‚ç‚ê‚Ü‚µ‚½B + PukiWiki(MASUI'z Edition)‚́Asng‚³‚ñ‚ÌPukiWiki 1.3‚ðŒ³‚Éƒvƒ‰ƒOƒCƒ“‚È‚Ç‚ð + ‚Ü‚Æ‚ß‚½‚à‚Ì‚Å‚·B PukiWiki‚ÍPHP‚ŏ‘‚©‚ꂽPHPƒXƒNƒŠƒvƒg‚Æ‚µ‚ÄŽÀŒ»‚³‚ê‚Ä‚¢‚Ü‚·‚̂ŁA PHP‚ª“®ì‚·‚éWebƒT[ƒo‚È‚ç‚ΔäŠr“I—eˆÕ‚ɐݒu‚Å‚«‚Ü‚·B @@ -25,7 +33,7 @@ DESCRIPTION Ý’u•û–@ “üŽè - PukiWiki‚̍ŐV”ł́A http://factage.com/sng/php/ ‚©‚ç“üŽè‚Å‚«‚Ü‚·B + PukiWiki(MASUI'z Edition)‚̍ŐV”ł́A http://masui.net/pukiwiki/ ‚©‚ç“üŽè‚Å‚«‚Ü‚·B ƒtƒ@ƒCƒ‹ˆê—— @@ -42,21 +50,28 @@ DESCRIPTION 2. •K—v‚ɉž‚¶‚Äpukiwiki.ini.php‚̐ݒè‚ðŠm”F‚µ‚Ü‚·B 1.11 ‚©‚çÝ’èƒtƒ@ƒCƒ‹‚ª•Êƒtƒ@ƒCƒ‹‚Ìpukiwiki.ini.php‚É‚È‚è‚Ü‚µ‚½B - 3. pukiwiki.php‚Æpukiwiki.gif‚𓯂¶‚Æ‚±‚ë‚ɐݒu‚µ‚Ü‚·B + 3. *.php‚Æpukiwiki.gif‚𓯂¶‚Æ‚±‚ë‚ɐݒu‚µ‚Ü‚·B - 4. ‚³‚ç‚Épukiwiki.php‚Æ“¯‚¶‚Æ‚±‚ë‚Épukiwiki.ini.php‚Æpukiwiki.skin.ja.phpA ‚à‚µ‚­‚Ípukiwiki.skin.en.php‚𓯂¶‚Æ‚±‚ë‚ɐݒu‚µ‚Ü‚·B + 4. ‚³‚ç‚É*.php‚Æ“¯‚¶‚Æ‚±‚ë‚Épukiwiki.ini.php‚Æpukiwiki.skin.ja.phpA + ‚à‚µ‚­‚Ípukiwiki.skin.en.php‚𓯂¶‚Æ‚±‚ë‚ɐݒu‚µ‚Ü‚·B - 5. pukiwiki.php“à‚ÅŽw’肵‚½ƒf[ƒ^ƒtƒ@ƒCƒ‹ƒfƒBƒŒƒNƒgƒŠ‚ð + 5. pukiwiki.ini.php“à‚ÅŽw’肵‚½ƒf[ƒ^ƒtƒ@ƒCƒ‹ƒfƒBƒŒƒNƒgƒŠ‚ð ‘®« 777 ‚ō쐬‚·‚éB(ƒfƒBƒtƒHƒ‹ƒg‚Í wiki ) - 6. pukiwiki.php“à‚ÅŽw’肵‚½·•ªƒtƒ@ƒCƒ‹ƒfƒBƒŒƒNƒgƒŠ‚ð + 6. pukiwiki.ini.php“à‚ÅŽw’肵‚½·•ªƒtƒ@ƒCƒ‹ƒfƒBƒŒƒNƒgƒŠ‚ð ‘®« 777 ‚ō쐬‚·‚éB(ƒfƒBƒtƒHƒ‹ƒg‚Í diff ) 7. Ž©“®ƒoƒbƒNƒAƒbƒv‹@”\(ƒfƒBƒtƒHƒ‹ƒg‚Å‚Í off)‚ðŽg‚¤ê‡A - pukiwiki.php“à‚ÅŽw’肵‚½·•ªƒtƒ@ƒCƒ‹ƒfƒBƒŒƒNƒgƒŠ‚ð - ‘®« 777 ‚ō쐬‚·‚éB(ƒfƒBƒtƒHƒ‹ƒg‚Í diff ) + pukiwiki.ini.php“à‚ÅŽw’肵‚½·•ªƒtƒ@ƒCƒ‹ƒfƒBƒŒƒNƒgƒŠ‚ð + ‘®« 777 ‚ō쐬‚·‚éB(ƒfƒBƒtƒHƒ‹ƒg‚Í backup ) + + 8. attach.inc.php“à‚ÅŽw’肵‚½“Y•tƒtƒ@ƒCƒ‹ƒfƒBƒŒƒNƒgƒŠ‚ð + ‘®« 777 ‚ō쐬‚·‚éB(ƒfƒBƒtƒHƒ‹ƒg‚Í attach ) - 8. pukiwiki.php‚Ƀuƒ‰ƒEƒU‚©‚çƒAƒNƒZƒX‚µ‚Ü‚·B + 9. counter.inc.php“à‚ÅŽw’肵‚½ƒJƒEƒ“ƒ^[ƒtƒ@ƒCƒ‹ƒfƒBƒŒƒNƒgƒŠ‚ð + ‘®« 777 ‚ō쐬‚·‚éB(ƒfƒBƒtƒHƒ‹ƒg‚Í counter ) + + 10. pukiwiki.php‚Ƀuƒ‰ƒEƒU‚©‚çƒAƒNƒZƒX‚µ‚Ü‚·B ƒp[ƒ~ƒbƒVƒ‡ƒ“ @@ -67,13 +82,24 @@ DESCRIPTION pukiwiki.skin.ja.php 644 ASCII en.lng 644 ASCII ja.lng 644 ASCII + func.php 644 ASCII + file.php 644 ASCII + html.php 644 ASCII + init.php 644 ASCII + plugin.php 644 ASCII + template.php 644 ASCII + rss.php 644 ASCII + backup.php 644 ASCII pukiwiki.gif 644 BINARY ƒfƒBƒŒƒNƒgƒŠ ƒp[ƒ~ƒbƒVƒ‡ƒ“ wiki 777 diff 777 backup 777 - plug-in 777 + attach 777 + counter 777 + skin 755 + plug-in 755 ƒf[ƒ^‚̃oƒbƒNƒAƒbƒv•û–@ @@ -157,14 +183,14 @@ DESCRIPTION ‘å‚©‚Á‚±‚Ì’†‚ɂ̓Xƒy[ƒX‚ðŠÜ‚ß‚Ä‚Í‚¢‚¯‚Ü‚¹‚ñB “ú–{Œê‚àŽg‚¦‚Ü‚·B - * ‚Ü‚½A[[factage:http://factage.com/]] ‚̂悤‚É‚·‚é‚Æ factage ‚Ì•¶Žš‚É - http://factage.com/ ‚ւ̃Šƒ“ƒN‚ª“\‚ê‚Ü‚·B + * ‚Ü‚½A[[pukiwiki:http://masui.net/pukiwiki/]] ‚̂悤‚É‚·‚é‚Æ factage ‚Ì•¶Žš‚É + http://masui.net/pukiwiki/ ‚ւ̃Šƒ“ƒN‚ª“\‚ê‚Ü‚·B * [[ƒT[ƒo–¼:WikiName]] ‚̂悤‚É‚·‚é‚Æ InterWikiName ‚É‚È‚è‚Ü‚·B - * http://factage.com/sng/ ‚̂悤‚ÈURL‚ÍŽ©“®“I‚ɃŠƒ“ƒN‚É‚È‚è‚Ü‚·B + * http://masui.net/pukiwiki/ ‚̂悤‚ÈURL‚ÍŽ©“®“I‚ɃŠƒ“ƒN‚É‚È‚è‚Ü‚·B - * sng@factage.com ‚̂悤‚ȃ[ƒ‹ƒAƒhƒŒƒX‚àŽ©“®“I‚ɃŠƒ“ƒN‚É‚È‚è‚Ü‚·B + * team@pukiwiki.jp ‚̂悤‚ȃ[ƒ‹ƒAƒhƒŒƒX‚àŽ©“®“I‚ɃŠƒ“ƒN‚É‚È‚è‚Ü‚·B * s“ª‚ªƒXƒy[ƒX‚âƒ^ƒu‚ÅŽn‚Ü‚Á‚Ä‚¢‚é‚ƁA ‚»‚ê‚͐®Œ`Ï‚Ý‚Ì’i—Ž`
    '‚Æ‚µ‚Ĉµ‚í‚ê‚Ü‚·B
    @@ -204,27 +230,27 @@ InterWiki
         InterWikiName ‚̃y[ƒW‚Ɉȉº‚̂悤‚ɃT[ƒo‚Ì’è‹`‚ð‚·‚éB 
     
         *   [URL ƒT[ƒo–¼] ƒ^ƒCƒv
    -    *   [http://factage.com/sng/pukiwiki/pukiwiki.php?read&page= sng] pw
    +    *   [http://masui.net/pukiwiki/pukiwiki.php?read&page= pukiwiki] pw
     
     
       InterWikiName‚̒ljÁ 
         ƒT[ƒo–¼:WikiName‚ðBracketName‚ōì‚ê‚ÎInterWikiName‚ÌŠ®¬ 
     
         *   [[ƒT[ƒo–¼:WikiName]]
    -    *   [[sng:FrontPage]]
    +    *   [[pukiwiki:FrontPage]]
     
       WikiName‚Ì‘}“üˆÊ’u 
         —v‹‚µ‚悤‚Æ‚·‚éURL‚Ö‚ÌWikiName‚Ì‘}“üˆÊ’u‚ð $1 ‚ÅŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
         È—ª‚·‚é‚Æ‚¨K‚É‚­‚Á‚‚«‚Ü‚·B 
     
    -    *   [http://factage.com/sng/pukiwiki/pukiwiki.php?backup&page=$1&age=1 sng] pw
    +    *   [http://masui.net/pukiwiki/pukiwiki.php?backup&page=$1&age=1 pukiwiki] pw
     
     
       •¶ŽšƒR[ƒh•ÏŠ·ƒ^ƒCƒv 
         PukiWikiƒy[ƒWˆÈŠO‚É‚à”ò‚΂¹‚Ü‚·B“ú–{Œê‚ðURL‚Ɋ܂މ”\«‚à‚ ‚é‚Ì‚Å‚»‚̏ꍇ‚Ì
         ƒGƒ“ƒR[ƒfƒBƒ“ƒO‚ÌŽw’è‚ðƒ^ƒCƒv‚Æ‚µ‚ÄŽw’è‚Å‚«‚Ü‚·B 
     
    -    *   [http://factage.com/sng/pukiwiki/pukiwiki.php?read&page=$1 sng] pw
    +    *   [http://masui.net/pukiwiki/pukiwiki.php?read&page=$1 pukiwiki] pw
     
     
         *   std È—ªŽž
    @@ -264,14 +290,26 @@ RDF/RSS
     
       RSS 0.91 ‚̏o—Í•û–@‚Ì—á
     
    -    *   http://factage.com/sng/pukiwiki/pukiwiki.php?rss
    +    *   http://masui.net/pukiwiki/pukiwiki.php?rss
     
       RSS 1.0 ‚̏o—Í•û–@‚Ì—á
     
    -    *   http://factage.com/sng/pukiwiki/pukiwiki.php?rss10
    +    *   http://masui.net/pukiwiki/pukiwiki.php?rss10
     
     XV—š—ð
    -    *   2002-03-18 1.3
    +    *   2002-06-10 1.3.1beta MASUI'z Edition
    +
    +        PukiWiki 1.3‚ðƒx[ƒX‚ɁAMASUI‚ªŸŽè‚Ƀvƒ‰ƒOƒCƒ“‚Æ‚©‚Ü‚Æ‚ß‚Ä‚Ý‚Ü‚µ‚½B
    +        ƒ\[ƒXƒtƒ@ƒCƒ‹‚𕪊„B
    +        calendar2, include, article, memo, aname, anchor, counter, vote, ls, yetlist, recent, source, imgƒvƒ‰ƒOƒCƒ“‚ð“Y•tB
    +        attach, commentƒvƒ‰ƒOƒCƒ“ƒo[ƒWƒ‡ƒ“ƒAƒbƒvB
    +        –{•¶‚ɁAƒ^ƒO‚ª“ü‚Á‚Ä‚¢‚½ê‡A•ÒW‚ª‚¤‚Ü‚­‚Å‚«‚È‚©‚Á‚½•s‹ï‡‚ðC³B
    +        XVÕ“ËŽž‚ÉdiffƒAƒ‹ƒSƒŠƒYƒ€‚ō·•ª‚ð‚Æ‚èAƒ}[ƒW‚ðs‚¤—l‚ɕύXB
    +	& <‚È‚Ç‚ðŠÜ‚ñ‚¾•¶Í‚ð•ÒW‚·‚é‚ƁA‚»‚ꂪÁ‚¦‚Ä‚µ‚Ü‚¤ê‡‚ª‚ ‚é•s‹ï‡‚ðC³B
    +	Ž©“®ƒeƒ“ƒvƒŒ[ƒg‹@”\‚ð’ljÁB[[SandBox/template]]
    +        ƒ\[ƒXƒtƒ@ƒCƒ‹‚𕪊„B
    +
    +    *   2002-03-18 1.3 by sng.
     
             ‚ ‚镶Žš—ñ‚ÖWikiName/BracketName‚ւ̃Šƒ“ƒN‚ð“\‚éB(ƒGƒCƒŠƒAƒX‹@”\)
             ‹^Ž—ƒfƒBƒŒƒNƒgƒŠ\‘zB./ ‚â ../ ‚È‚Ç‚ðBracketName‚Æ‚µ‚ÄŽg—p‚·‚邱‚Æ‚ÅŽÀŒ»B 
    @@ -282,7 +320,7 @@ RDF/RSS
             ˆê•”‚̐®Œ`ƒ‹[ƒ‹‚ðƒvƒ‰ƒOƒCƒ“‰»‚·‚éB
             Win32‚Å‚à³í‚É“®ì‚·‚é‚悤‚ɏC³
     
    -    *   2002-02-15 1.2.12
    +    *   2002-02-15 1.2.12 by sng.
     
             ƒoƒbƒNƒAƒbƒv‚Ì‹““®‚̕ύX 
             Œ»Ý•\Ž¦‚µ‚Ä‚¢‚éƒy[ƒW‚݂̂̃oƒbƒNƒAƒbƒvˆê——‚ð•\Ž¦‚·‚é 
    @@ -298,46 +336,51 @@ RDF/RSS
             #norelated ‚ðs“ª‚ɏ‘‚­‚ÆŠÖ˜Aƒy[ƒW‚ð•\Ž¦‚µ‚È‚¢ƒ‹[ƒ‹‚ð’ljÁ 
             ŠÖ˜Aƒy[ƒW‚Ì‹æØ‚蕶Žš‚𐮌`ƒ‹[ƒ‹—p‚Æ•ª‚¯‚½ 
     
    -    *   2002-02-09 1.2.11 ŠÖ˜AƒŠƒ“ƒNíŽž•\Ž¦‹@”\AŒo‰ßŽžŠÔ•\Ž¦‹@”\AƒZƒLƒ…ƒŠƒeƒB‘΍ôAƒRƒ}ƒ“ƒh‚ð cmd= ‚ɏC³B‚»‚Ì‘¼ƒoƒOC³B 
    +    *   2002-02-09 1.2.11 by sng. ŠÖ˜AƒŠƒ“ƒNíŽž•\Ž¦‹@”\AŒo‰ßŽžŠÔ•\Ž¦‹@”\AƒZƒLƒ…ƒŠƒeƒB‘΍ôAƒRƒ}ƒ“ƒh‚ð cmd= ‚ɏC³B‚»‚Ì‘¼ƒoƒOC³B 
     
    -    *   2002-02-09 1.2.1 ƒoƒOC³A‚‘¬‰»ARDF/RSS(1.0,0.91)‚ÌŽÀ‘•B
    +    *   2002-02-09 1.2.1 by sng. ƒoƒOC³A‚‘¬‰»ARDF/RSS(1.0,0.91)‚ÌŽÀ‘•B
     
    -    *   2002-02-07 1.2.0 Ý’èƒtƒ@ƒCƒ‹‚ðŠO•”‚ցAInterWiki“‹ÚAŠÖ˜Aƒy[ƒWƒ‹[ƒ‹A’Žßƒ‹[ƒ‹AhttpƒŠƒ“ƒNƒ‹[ƒ‹AƒoƒOC³B
    +    *   2002-02-07 1.2.0 by sng. Ý’èƒtƒ@ƒCƒ‹‚ðŠO•”‚ցAInterWiki“‹ÚAŠÖ˜Aƒy[ƒWƒ‹[ƒ‹A’Žßƒ‹[ƒ‹AhttpƒŠƒ“ƒNƒ‹[ƒ‹AƒoƒOC³B
     
    -    *   2002-02-05 1.10 ƒXƒLƒ“‹@”\AƒRƒƒ“ƒg‘}“üAŒ©o‚µ–ÚŽŸì¬A‚»‚Ì‘¼ƒoƒOC³B
    +    *   2002-02-05 1.10 by sng. ƒXƒLƒ“‹@”\AƒRƒƒ“ƒg‘}“üAŒ©o‚µ–ÚŽŸì¬A‚»‚Ì‘¼ƒoƒOC³B
     
    -    *   2002-02-01 1.07 ’ljÁ‹@”\Aƒ†[ƒU’è‹`ƒ‹[ƒ‹A’PŒêAND/ORŒŸõ‚ÌŽÀ‘•B
    +    *   2002-02-01 1.07 by sng. ’ljÁ‹@”\Aƒ†[ƒU’è‹`ƒ‹[ƒ‹A’PŒêAND/ORŒŸõ‚ÌŽÀ‘•B
     
    -    *   2001-01-22 1.06 ƒy[ƒW•ÒWŽžƒGƒ‰[‚̏C³Bƒy[ƒWƒ^ƒCƒgƒ‹‚Ì[[]]‚àŽæ‚菜‚­‚悤‚ɁB
    +    *   2001-01-22 1.06 by sng. ƒy[ƒW•ÒWŽžƒGƒ‰[‚̏C³Bƒy[ƒWƒ^ƒCƒgƒ‹‚Ì[[]]‚àŽæ‚菜‚­‚悤‚ɁB
     
    -    *   2001-12-12 1.05 ·•ªƒAƒ‹ƒSƒŠƒYƒ€‚̏C³AŽ©“®ƒoƒbƒNƒAƒbƒv‹@”\’ljÁB
    +    *   2001-12-12 1.05 by sng. ·•ªƒAƒ‹ƒSƒŠƒYƒ€‚̏C³AŽ©“®ƒoƒbƒNƒAƒbƒv‹@”\’ljÁB
     
    -    *   2001-12-10 1.01 ƒ[ƒ‹ƒAƒhƒŒƒXƒŠƒ“ƒN‚Ì•s”õ‚̏C³(thanks to s.sawada)
    +    *   2001-12-10 1.01 by sng. ƒ[ƒ‹ƒAƒhƒŒƒXƒŠƒ“ƒN‚Ì•s”õ‚̏C³(thanks to s.sawada)
     
    -    *   2001-12-05 1.00 ³Ž®ŒöŠJBŒŸõŒ‹‰Ê‚©‚ç‚̃nƒCƒ‰ƒCƒg•\Ž¦‹@”\‚̍폜B
    +    *   2001-12-05 1.00 by sng. ³Ž®ŒöŠJBŒŸõŒ‹‰Ê‚©‚ç‚̃nƒCƒ‰ƒCƒg•\Ž¦‹@”\‚̍폜B
     
    -    *   2001-11-29 0.96 ‚Ü‚½‚Ü‚½‚¢‚­‚‚©‚̃oƒO‚̏C³B·•ª‚̒ljÁB‚Ü‚¾‚Ü‚¾–¢Š®A‚Æ‚è‚ ‚¦‚¸B 
    +    *   2001-11-29 0.96 by sng. ‚Ü‚½‚Ü‚½‚¢‚­‚‚©‚̃oƒO‚̏C³B·•ª‚̒ljÁB‚Ü‚¾‚Ü‚¾–¢Š®A‚Æ‚è‚ ‚¦‚¸B 
     
    -    *   2001-11-28 0.94 ‚¢‚­‚‚©‚̃oƒO‚̏C³B“ú•tEŽž‘}“üƒ‹[ƒ‹‚̒ljÁB 
    +    *   2001-11-28 0.94 by sng. ‚¢‚­‚‚©‚̃oƒO‚̏C³B“ú•tEŽž‘}“üƒ‹[ƒ‹‚̒ljÁB 
     
    -    *   2001-11-27 0.93 ƒR[ƒh‚̐´‘BŒŸõŒ‹‰Ê‚©‚ç‚̃y[ƒW•\Ž¦ŽžƒnƒCƒ‰ƒCƒg•\Ž¦B 
    +    *   2001-11-27 0.93 by sng. ƒR[ƒh‚̐´‘BŒŸõŒ‹‰Ê‚©‚ç‚̃y[ƒW•\Ž¦ŽžƒnƒCƒ‰ƒCƒg•\Ž¦B 
     
    -    *   2001-11-26 0.92 ƒf[ƒ^ƒtƒ@ƒCƒ‹–¼‚ð YukiWiki ‚Æ‹¤’Ê‚Ì•ÏŠ·•û–@‚É‚µ‚½B 
    +    *   2001-11-26 0.92 by sng. ƒf[ƒ^ƒtƒ@ƒCƒ‹–¼‚ð YukiWiki ‚Æ‹¤’Ê‚Ì•ÏŠ·•û–@‚É‚µ‚½B 
     
    -    *   2001-11-25 0.91 ‘¦“ú‚É‚µ‚Ä’PŒêŒŸõ‹@”\‚ª’ljÁB·•ª‚ÍŒ‹\‚©‚©‚è‚»‚¤B 
    +    *   2001-11-25 0.91 by sng. ‘¦“ú‚É‚µ‚Ä’PŒêŒŸõ‹@”\‚ª’ljÁB·•ª‚ÍŒ‹\‚©‚©‚è‚»‚¤B 
     
    -    *   2001-11-25 0.90 ˆê‰žŒöŠJBYukiWiki ‚ÌŒŸõ‚ƍ·•ª‚Í‚Ü‚¾B
    +    *   2001-11-25 0.90 by sng. ˆê‰žŒöŠJBYukiWiki ‚ÌŒŸõ‚ƍ·•ª‚Í‚Ü‚¾B
     
     TODO
    -        - —\’è‚È‚µA‚±‚ê‚©‚çŽÀ‘•‚³‚ê‚é YukiWiki ‚Ì‹@”\‚ðˆÚA
    +        - —\’è‚È‚µA‚±‚ê‚©‚çŽÀ‘•‚³‚ê‚é YukiWiki ‚Ì‹@”\‚ðˆÚA by sng.
     
     ìŽÒ
    -        Copyright (C) 2001,2002 by sng.
    -        sng 
    -        http://factage.com/sng/
    -        http://factage.com/sng/pukiwiki/
    +        PukiWiki 1.3.1 MASUI'z Edition by
    +         Copyright (C) 2002 by sng & MASUI.
    +         Yuichiro MASUI 
    +         http://masui.net/pukiwiki/
     
    -    Ž¿–âAˆÓŒ©AƒoƒO•ñ‚Í sng@factage.com ‚Ƀ[ƒ‹‚µ‚Ä‚­‚¾‚³‚¢B
    +        PukiWiki 1.3 by
    +         Copyright (C) 2001,2002 by sng.
    +         sng 
    +         http://factage.com/sng/
    +
    +    Ž¿–âAˆÓŒ©AƒoƒO•ñ‚Í masui@masui.net ‚Ƀ[ƒ‹‚µ‚Ä‚­‚¾‚³‚¢B
     
     ”z•zðŒ
         PukiWiki‚́A GNU General Public License‚É‚ÄŒöŠJ‚µ‚Ü‚·B
    @@ -345,6 +388,8 @@ TODO
         PukiWiki‚̓tƒŠ[ƒ\ƒtƒg‚Å‚·B ‚²Ž©—R‚É‚¨Žg‚¢‚­‚¾‚³‚¢B
     
     ŽÓŽ«
    +    PukiWiki ‚ðŠJ”­‚µ‚½Asng‚³‚ñ‚ÉŠ´ŽÓ‚µ‚Ü‚·B
    +
         YukiWiki ‚̃Nƒ[ƒ“‰»‚ð‹–‰Â‚µ‚Ä‚¢‚½‚¾‚¢‚½Œ‹é_‚³‚ñ‚ÉŠ´ŽÓ‚µ‚Ü‚·B
     
         –{‰Æ‚ÌWikiWiki‚ðì‚Á‚½Cunningham & Cunningham, Inc.‚É Š´ŽÓ‚µ‚Ü‚·B
    diff --git a/rss.php b/rss.php
    new file mode 100644
    index 0000000..7092e96
    --- /dev/null
    +++ b/rss.php
    @@ -0,0 +1,103 @@
    + $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.= "\n";
    +			else
    +				$items.= "\n";
    +			$items.= " $title\n";
    +			$items.= " http://".SERVER_NAME.PHP_SELF."?".rawurlencode($url)."\n";
    +			$items.= " $desc\n";
    +			$items.= "\n\n";
    +			$rdf_li.= "    \n";
    +
    +		}
    +
    +		$cnt++;
    +	}
    +
    +	if($rss==1)
    +	{
    +?>
    +'?>
    +
    +
    +
    +
    +
    +
    +
    +<?=$page_title?>
    +
    +PukiWiki RecentChanges
    +ja
    +
    +
    +
    +
    +
    +'?>
    +
    +
    +
    +
    + ">
    +  <?=$page_title?>
    +  
    +  PukiWiki RecentChanges
    +  
    +   
    +
    +   
    +  
    + 
    +
    +
    +
    +
    diff --git a/pukiwiki.skin.en.php b/skin/pukiwiki.skin.en.php
    similarity index 100%
    rename from pukiwiki.skin.en.php
    rename to skin/pukiwiki.skin.en.php
    diff --git a/pukiwiki.skin.ja.php b/skin/pukiwiki.skin.ja.php
    similarity index 82%
    rename from pukiwiki.skin.ja.php
    rename to skin/pukiwiki.skin.ja.php
    index b49515a..64522b0 100644
    --- a/pukiwiki.skin.ja.php
    +++ b/skin/pukiwiki.skin.ja.php
    @@ -1,7 +1,9 @@
    +
     
    +
     
     
    -
    +
     sng's PukiWiki - <?=$title?>