+##########################################################################################
+#
+# ¥¹¥Ñ¥à¥Õ¥£¥ë¥¿¡¼¥×¥é¥°¥¤¥ó¡Ê³Ø½¬µ¡Ç½Ìµ¤·ÈÇ¡Ë
+#¡Êpcomment¥×¥é¥°¥¤¥ó¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¡Ë
+#
+##########################################################################################
+use strict;
+
+use plugin::pcomment::PComment;
+
+# plugin::pcomment::PComment¤Îdo_action¥á¥½¥Ã¥É¤ÎÃÖ¤´¹¤¨
+package plugin::pcomment::PComment;
+
+sub do_action {\r
+ my $self = shift;\r
+ my $wiki = shift;\r
+ my $cgi = $wiki->get_CGI;\r
+ \r
+ my $name = $cgi->param("name");\r
+ my $message = $cgi->param("message");\r
+ my $save_page = $cgi->param("save_page");\r
+ my $show_page = $cgi->param("show_page");\r
+ my $head_char = $cgi->param("head_char");\r
+ my $reply = $cgi->param("reply");\r
+\r
+#--------------------------------------------------------------------------------------------------
+ if($message){
+ unless(&plugin::_ex_spam_filter_light::Install::judgment_text($message)){
+ my $time = Util::format_date(time());
+ my $file = $wiki->config('log_dir')."/spam_pcomment.txt";
+ if(open(SPAM_LOG, ">>$file")){
+ print SPAM_LOG "$show_page:$message - $name($time)\n";
+ close(SPAM_LOG);
+ }
+ my $error_message = $wiki->error("Åê¹Æ¤µ¤ì¤¿Ê¸¾Ï¤Ï¥¹¥Ñ¥à¥á¥Ã¥»¡¼¥¸¤ÈȽÄꤵ¤ì¤Þ¤·¤¿¡£\n");
+ $error_message .= "<p>\n";
+ $error_message .= "<div>Åê¹Æ¤µ¤ì¤¿Ê¸¾Ï¡§</div>\n";
+ $error_message .= "<div>" . Util::escapeHTML("$message") . "</div>\n";
+ $error_message .= "</p>\n";
+ return $error_message;
+ }
+ }
+#--------------------------------------------------------------------------------------------------
+\r
+ if($name eq ""){\r
+ $name = "̵̾¤·¤µ¤ó";\r
+ } else {\r
+ # post_name¤È¤¤¤¦¥¡¼¤Ç¥¯¥Ã¥¡¼¤ò¥»¥Ã¥È¤¹¤ë\r
+ my $cookie = $cgi->cookie(-name=>'post_name',-value=>$name,-expires=>'+1M');\r
+ print "Set-Cookie: ",$cookie->as_string,"\n";\r
+ }\r
+\r
+ if($save_page ne "" && $message ne ""){\r
+ my $content;\r
+ if($wiki->page_exists($save_page)){\r
+ $content = $wiki->get_page($save_page);\r
+ $content =~ s/\n+$//g; #¹ÔËö¤Î²þ¹Ô¤ÏÁ´¤Æ½üµî\r
+ }else{\r
+ $content = "[[$show_page]]\n";\r
+ }\r
+ my $new_content .= $head_char . "$message - $name (".Util::format_date(time()) . ")";\r
+\r
+ unless($reply){\r
+ $content .= "\n" if($content);\r
+ $content .= $new_content . "\n";\r
+ }else{\r
+ my @content;\r
+ my $reply_sw = 0; #±ø¤¤¤±¤É...\r
+ my $lev = 0;\r
+ foreach(split /\n/, $content){\r
+ /^([*+]+)/;\r
+ if($reply_sw == 1 and $lev >= length($1)){\r
+ push(@content, $head_char x $lev . $new_content);\r
+ $reply_sw = 2;\r
+ }\r
+ if($reply_sw == 0 and $reply eq Util::md5($_)){\r
+ $lev = length($1);\r
+ $reply_sw = 1;\r
+ }\r
+ push(@content, $_);\r
+ }\r
+ if($reply_sw == 1){\r
+ push(@content, $head_char x $lev . $new_content);\r
+ }\r
+ $content = join("\n", @content);\r
+ }\r
+\r
+ $wiki->save_page($save_page, $content);\r
+\r
+ my $modtime = &Util::load_config_hash($wiki,$Wiki::DefaultStorage::MODTIME_FILE);\r
+ $modtime->{$show_page} = time();\r
+ &Util::save_config_hash($wiki,$Wiki::DefaultStorage::MODTIME_FILE,$modtime);\r
+\r
+ }\r
+ # ɽ¼¨¤µ¤ì¤Æ¤¤¤¿¥Ú¡¼¥¸¤Ë¥ê¥À¥¤¥ì¥¯¥È\r
+ $wiki->redirect($show_page);\r
+}\r
+
+1;