1 ##########################################################################################
3 # ¥¹¥Ñ¥à¥Õ¥£¥ë¥¿¡¼¥×¥é¥°¥¤¥ó¡Ê³Ø½¬µ¡Ç½Ìµ¤·ÈÇ¡Ë
4 #¡Êbbs¥×¥é¥°¥¤¥ó¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¡Ë
6 ##########################################################################################
9 use plugin::bbs::BBSHandler;
10 use plugin::bbs::BBS2Handler;
12 # plugin::bbs::BBSHandler¤Îdo_action¥á¥½¥Ã¥É¤ÎÃÖ¤´¹¤¨
13 package plugin::bbs::BBSHandler;
18 my $cgi = $wiki->get_CGI;
20 my $name = $cgi->param("name");
21 my $subject = $cgi->param("subject");
22 my $message = $cgi->param("message");
23 my $count = $cgi->param("count");
24 my $page = $cgi->param("page");
25 my $option = $cgi->param("option");
30 # fswiki_post_name¤È¤¤¤¦¥¡¼¤Ç¥¯¥Ã¥¡¼¤ò¥»¥Ã¥È¤¹¤ë
31 my $path = &Util::cookie_path($wiki);
32 my $cookie = $cgi->cookie(-name=>'fswiki_post_name',-value=>Util::url_encode($name),-expires=>'+1M',-path=>$path);
33 print "Set-Cookie: ",$cookie->as_string,"\n";
40 if($page eq "" || $count eq ""){
41 return $wiki->error("¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹");
42 } elsif($message eq ""){
43 return $wiki->error("ËÜʸ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
46 #--------------------------------------------------------------------------------------------------
48 unless(&plugin::_ex_spam_filter_light::Install::judgment_text($message)){
49 my $time = Util::format_date(time());
50 my $file = $wiki->config('log_dir')."/spam_bbs.txt";
51 if(open(SPAM_LOG, ">>$file")){
52 print SPAM_LOG "-" x 70 . "\n";
53 print SPAM_LOG "$page:$subject - $name ($time)\n";
54 print SPAM_LOG "-" x 70 . "\n";
55 print SPAM_LOG "$message\n";
58 my $error_message = $wiki->error("Åê¹Æ¤µ¤ì¤¿Ê¸¾Ï¤Ï¥¹¥Ñ¥à¥á¥Ã¥»¡¼¥¸¤ÈȽÄꤵ¤ì¤Þ¤·¤¿¡£\n");
59 $subject = Util::escapeHTML($subject);
60 $message = Util::escapeHTML($message);
61 $message =~ s/\n/<br>/g;
62 $error_message .= "<p>\n";
63 $error_message .= "<div>Åê¹Æ¤µ¤ì¤¿Ê¸¾Ï¡§</div>\n";
64 $error_message .= "<div>¡ã·ï̾¡ä</div>\n";
65 $error_message .= "<div>$subject</div>\n";
66 $error_message .= "<div>¡ãËÜʸ¡ä</div>\n";
67 $error_message .= "<div>$message</div>\n";
68 $error_message .= "</p>\n";
69 return $error_message;
72 #--------------------------------------------------------------------------------------------------
74 # ¥Õ¥©¡¼¥Þ¥Ã¥È¥×¥é¥°¥¤¥ó¤Ø¤ÎÂбþ
75 my $format = $wiki->get_edit_format();
76 $name = $wiki->convert_to_fswiki($name ,$format,1);
77 $subject = $wiki->convert_to_fswiki($subject,$format,1);
78 $message = $wiki->convert_to_fswiki($message,$format);
80 my @lines = split(/\n/,$wiki->get_page($page));
86 $content = $content.$_."\n";
87 if(/^\{\{bbs\s*.*\}\}$/ && $flag==0){
88 if($form_count==$count){
89 $content .= "!!$subject - $name (".&Util::format_date(time()).")\n".
92 # no_comment¥ª¥×¥·¥ç¥ó
93 if($option eq "no_comment"){
95 # reverse_comment¥ª¥×¥·¥ç¥ó
96 } elsif($option eq "reverse_comment"){
97 $content .= "{{comment reverse}}\n";
100 $content .= "{{comment}}\n";
110 $wiki->save_page($page,$content);
113 # ¸µ¤Î¥Ú¡¼¥¸¤Ë¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë
114 $wiki->redirect($page);
118 # plugin::bbs::BBS2Handler¤Îdo_action¥á¥½¥Ã¥É¤ÎÃÖ¤´¹¤¨
119 package plugin::bbs::BBS2Handler;
124 my $cgi = $wiki->get_CGI;
126 my $bbsname = $cgi->param("bbsname");
127 my $name = $cgi->param("name");
128 my $subject = $cgi->param("subject");
129 my $message = $cgi->param("message");
130 my $page = $cgi->param("page");
131 my $option = $cgi->param("option");
134 $name = "̵̾¤·¤µ¤ó";
136 # fswiki_post_name¤È¤¤¤¦¥¡¼¤Ç¥¯¥Ã¥¡¼¤ò¥»¥Ã¥È¤¹¤ë
137 my $path = &Util::cookie_path($wiki);
138 my $cookie = $cgi->cookie(-name=>'fswiki_post_name',-value=>Util::url_encode($name),-expires=>'+1M',-path=>$path);
139 print "Set-Cookie: ",$cookie->as_string,"\n";
147 return $wiki->error("¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£");
150 return $wiki->error("ËÜʸ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
153 #--------------------------------------------------------------------------------------------------
155 unless(&plugin::_ex_spam_filter_light::Install::judgment_text($message)){
156 my $time = Util::format_date(time());
157 my $file = $wiki->config('log_dir')."/spam_bbs2.txt";
158 if(open(SPAM_LOG, ">>$file")){
159 print SPAM_LOG "-" x 70 . "\n";
160 print SPAM_LOG "$bbsname:$subject - $name ($time)\n";
161 print SPAM_LOG "-" x 70 . "\n";
162 print SPAM_LOG "$message\n";
165 my $error_message = $wiki->error("Åê¹Æ¤µ¤ì¤¿Ê¸¾Ï¤Ï¥¹¥Ñ¥à¥á¥Ã¥»¡¼¥¸¤ÈȽÄꤵ¤ì¤Þ¤·¤¿¡£\n");
166 $subject = Util::escapeHTML($subject);
167 $message = Util::escapeHTML($message);
168 $message =~ s/\n/<br>/g;
169 $error_message .= "<p>\n";
170 $error_message .= "<div>Åê¹Æ¤µ¤ì¤¿Ê¸¾Ï¡§</div>\n";
171 $error_message .= "<div>¡ã·ï̾¡ä</div>\n";
172 $error_message .= "<div>$subject</div>\n";
173 $error_message .= "<div>¡ãËÜʸ¡ä</div>\n";
174 $error_message .= "<div>$message</div>\n";
175 $error_message .= "</p>\n";
176 return $error_message;
179 #--------------------------------------------------------------------------------------------------
181 # ¥Õ¥©¡¼¥Þ¥Ã¥È¥×¥é¥°¥¤¥ó¤Ø¤ÎÂбþ
182 my $format = $wiki->get_edit_format();
183 $name = $wiki->convert_to_fswiki($name ,$format,1);
184 $subject = $wiki->convert_to_fswiki($subject,$format,1);
185 $message = $wiki->convert_to_fswiki($message,$format);
187 my $pagename = $self->get_page_name($wiki,$bbsname);
188 my $content = "!![[$subject|$pagename]] - $name (".&Util::format_date(time()).")\n".
191 # no_comment¥ª¥×¥·¥ç¥ó
192 if($option eq "no_comment"){
194 # reverse_comment¥ª¥×¥·¥ç¥ó
195 } elsif($option eq "reverse_comment"){
196 $content .= "{{comment reverse}}\n";
199 $content .= "{{comment}}\n";
201 $wiki->save_page($pagename,$content);
203 # ¸µ¤Î¥Ú¡¼¥¸¤Ë¥ê¥À¥¤¥ì¥¯¥È
204 $wiki->redirect($pagename);