--- /dev/null
+##########################################################################################
+#
+# ¥¹¥Ñ¥à¥Õ¥£¥ë¥¿¡¼¥×¥é¥°¥¤¥ó¡Ê³Ø½¬µ¡Ç½Ìµ¤·ÈÇ¡Ë
+#¡Êbbs¥×¥é¥°¥¤¥ó¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¡Ë
+#
+##########################################################################################
+use strict;
+
+use plugin::bbs::BBSHandler;
+use plugin::bbs::BBS2Handler;
+
+# plugin::bbs::BBSHandler¤Îdo_action¥á¥½¥Ã¥É¤ÎÃÖ¤´¹¤¨
+package plugin::bbs::BBSHandler;
+
+sub do_action {
+ my $self = shift;
+ my $wiki = shift;
+ my $cgi = $wiki->get_CGI;
+
+ my $name = $cgi->param("name");
+ my $subject = $cgi->param("subject");
+ my $message = $cgi->param("message");
+ my $count = $cgi->param("count");
+ my $page = $cgi->param("page");
+ my $option = $cgi->param("option");
+
+ if($name eq ""){
+ $name = "̵̾¤·¤µ¤ó";
+ } else {
+ # fswiki_post_name¤È¤¤¤¦¥¡¼¤Ç¥¯¥Ã¥¡¼¤ò¥»¥Ã¥È¤¹¤ë
+ my $path = &Util::cookie_path($wiki);
+ my $cookie = $cgi->cookie(-name=>'fswiki_post_name',-value=>Util::url_encode($name),-expires=>'+1M',-path=>$path);
+ print "Set-Cookie: ",$cookie->as_string,"\n";
+ }
+
+ if($subject eq ""){
+ $subject = "̵Âê";
+ }
+
+ if($page eq "" || $count eq ""){
+ return $wiki->error("¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹");
+ } elsif($message eq ""){
+ return $wiki->error("ËÜʸ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
+ }
+
+#--------------------------------------------------------------------------------------------------
+ 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_bbs.txt";
+ if(open(SPAM_LOG, ">>$file")){
+ print SPAM_LOG "-" x 70 . "\n";
+ print SPAM_LOG "$page:$subject - $name ($time)\n";
+ print SPAM_LOG "-" x 70 . "\n";
+ print SPAM_LOG "$message\n";
+ close(SPAM_LOG);
+ }
+ my $error_message = $wiki->error("Åê¹Æ¤µ¤ì¤¿Ê¸¾Ï¤Ï¥¹¥Ñ¥à¥á¥Ã¥»¡¼¥¸¤ÈȽÄꤵ¤ì¤Þ¤·¤¿¡£\n");
+ $subject = Util::escapeHTML($subject);
+ $message = Util::escapeHTML($message);
+ $message =~ s/\n/<br>/g;
+ $error_message .= "<p>\n";
+ $error_message .= "<div>Åê¹Æ¤µ¤ì¤¿Ê¸¾Ï¡§</div>\n";
+ $error_message .= "<div>¡ã·ï̾¡ä</div>\n";
+ $error_message .= "<div>$subject</div>\n";
+ $error_message .= "<div>¡ãËÜʸ¡ä</div>\n";
+ $error_message .= "<div>$message</div>\n";
+ $error_message .= "</p>\n";
+ return $error_message;
+ }
+ }
+#--------------------------------------------------------------------------------------------------
+
+ # ¥Õ¥©¡¼¥Þ¥Ã¥È¥×¥é¥°¥¤¥ó¤Ø¤ÎÂбþ
+ my $format = $wiki->get_edit_format();
+ $name = $wiki->convert_to_fswiki($name ,$format,1);
+ $subject = $wiki->convert_to_fswiki($subject,$format,1);
+ $message = $wiki->convert_to_fswiki($message,$format);
+
+ my @lines = split(/\n/,$wiki->get_page($page));
+ my $flag = 0;
+ my $form_count = 1;
+ my $content = "";
+
+ foreach(@lines){
+ $content = $content.$_."\n";
+ if(/^\{\{bbs\s*.*\}\}$/ && $flag==0){
+ if($form_count==$count){
+ $content .= "!!$subject - $name (".&Util::format_date(time()).")\n".
+ "$message\n";
+
+ # no_comment¥ª¥×¥·¥ç¥ó
+ if($option eq "no_comment"){
+
+ # reverse_comment¥ª¥×¥·¥ç¥ó
+ } elsif($option eq "reverse_comment"){
+ $content .= "{{comment reverse}}\n";
+ # ¥Ç¥Õ¥©¥ë¥È
+ } else {
+ $content .= "{{comment}}\n";
+ }
+ $flag = 1;
+
+ } else {
+ $form_count++;
+ }
+ }
+ }
+ if($flag==1){
+ $wiki->save_page($page,$content);
+ }
+
+ # ¸µ¤Î¥Ú¡¼¥¸¤Ë¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë
+ $wiki->redirect($page);
+}
+
+
+# plugin::bbs::BBS2Handler¤Îdo_action¥á¥½¥Ã¥É¤ÎÃÖ¤´¹¤¨
+package plugin::bbs::BBS2Handler;
+
+sub do_action {
+ my $self = shift;
+ my $wiki = shift;
+ my $cgi = $wiki->get_CGI;
+
+ my $bbsname = $cgi->param("bbsname");
+ my $name = $cgi->param("name");
+ my $subject = $cgi->param("subject");
+ my $message = $cgi->param("message");
+ my $page = $cgi->param("page");
+ my $option = $cgi->param("option");
+
+ if($name eq ""){
+ $name = "̵̾¤·¤µ¤ó";
+ } else {
+ # fswiki_post_name¤È¤¤¤¦¥¡¼¤Ç¥¯¥Ã¥¡¼¤ò¥»¥Ã¥È¤¹¤ë
+ my $path = &Util::cookie_path($wiki);
+ my $cookie = $cgi->cookie(-name=>'fswiki_post_name',-value=>Util::url_encode($name),-expires=>'+1M',-path=>$path);
+ print "Set-Cookie: ",$cookie->as_string,"\n";
+ }
+
+ if($subject eq ""){
+ $subject = "̵Âê";
+ }
+
+ if($bbsname eq ""){
+ return $wiki->error("¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£");
+ }
+ if($message eq ""){
+ return $wiki->error("ËÜʸ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
+ }
+
+#--------------------------------------------------------------------------------------------------
+ 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_bbs2.txt";
+ if(open(SPAM_LOG, ">>$file")){
+ print SPAM_LOG "-" x 70 . "\n";
+ print SPAM_LOG "$bbsname:$subject - $name ($time)\n";
+ print SPAM_LOG "-" x 70 . "\n";
+ print SPAM_LOG "$message\n";
+ close(SPAM_LOG);
+ }
+ my $error_message = $wiki->error("Åê¹Æ¤µ¤ì¤¿Ê¸¾Ï¤Ï¥¹¥Ñ¥à¥á¥Ã¥»¡¼¥¸¤ÈȽÄꤵ¤ì¤Þ¤·¤¿¡£\n");
+ $subject = Util::escapeHTML($subject);
+ $message = Util::escapeHTML($message);
+ $message =~ s/\n/<br>/g;
+ $error_message .= "<p>\n";
+ $error_message .= "<div>Åê¹Æ¤µ¤ì¤¿Ê¸¾Ï¡§</div>\n";
+ $error_message .= "<div>¡ã·ï̾¡ä</div>\n";
+ $error_message .= "<div>$subject</div>\n";
+ $error_message .= "<div>¡ãËÜʸ¡ä</div>\n";
+ $error_message .= "<div>$message</div>\n";
+ $error_message .= "</p>\n";
+ return $error_message;
+ }
+ }
+#--------------------------------------------------------------------------------------------------
+
+ # ¥Õ¥©¡¼¥Þ¥Ã¥È¥×¥é¥°¥¤¥ó¤Ø¤ÎÂбþ
+ my $format = $wiki->get_edit_format();
+ $name = $wiki->convert_to_fswiki($name ,$format,1);
+ $subject = $wiki->convert_to_fswiki($subject,$format,1);
+ $message = $wiki->convert_to_fswiki($message,$format);
+
+ my $pagename = $self->get_page_name($wiki,$bbsname);
+ my $content = "!![[$subject|$pagename]] - $name (".&Util::format_date(time()).")\n".
+ "$message\n";
+
+ # no_comment¥ª¥×¥·¥ç¥ó
+ if($option eq "no_comment"){
+
+ # reverse_comment¥ª¥×¥·¥ç¥ó
+ } elsif($option eq "reverse_comment"){
+ $content .= "{{comment reverse}}\n";
+ # ¥Ç¥Õ¥©¥ë¥È
+ } else {
+ $content .= "{{comment}}\n";
+ }
+ $wiki->save_page($pagename,$content);
+
+ # ¸µ¤Î¥Ú¡¼¥¸¤Ë¥ê¥À¥¤¥ì¥¯¥È
+ $wiki->redirect($pagename);
+}
+
+1;