OSDN Git Service

(no commit message)
[fswiki/fswiki.git] / plugin / admin / AdminSpamHandler.pm
1 ###############################################################################\r
2 #\r
3 # ¥¹¥Ñ¥àÂкö¤ÎÀßÄê¤ò¹Ô¤¦¥¢¥¯¥·¥ç¥ó¥Ï¥ó¥É¥é\r
4 #\r
5 ###############################################################################\r
6 package plugin::admin::AdminSpamHandler;\r
7 use strict;\r
8 #==============================================================================\r
9 # ¥³¥ó¥¹¥È¥é¥¯¥¿\r
10 #==============================================================================\r
11 sub new {\r
12         my $class = shift;\r
13         my $self = {};\r
14         return bless $self,$class;\r
15 }\r
16 \r
17 #==============================================================================\r
18 # ¥¢¥¯¥·¥ç¥ó¥Ï¥ó¥É¥é¥á¥½¥Ã¥É\r
19 #==============================================================================\r
20 sub do_action {\r
21         my $self  = shift;\r
22         my $wiki  = shift;\r
23         my $cgi   = $wiki->get_CGI();\r
24         \r
25         $wiki->set_title("¥¹¥Ñ¥àÂкö¤ÎÀßÄê");\r
26         \r
27         if($cgi->param("SAVE") ne ""){\r
28                 return $self->save_config($wiki);\r
29         } else {\r
30                 return $self->config_form($wiki);\r
31         }\r
32 }\r
33 \r
34 #==============================================================================\r
35 # ÀßÄê¥Õ¥©¡¼¥à\r
36 #==============================================================================\r
37 sub config_form {\r
38         my $self = shift;\r
39         my $wiki = shift;\r
40         my $spam = &Util::load_config_text($wiki,'spam.dat');\r
41         my $spam_ip = &Util::load_config_text($wiki,'spam_ip.dat');\r
42         my $rule = &Util::load_config_text($wiki,'spam_rules.dat');\r
43         \r
44         # ¥Æ¥ó¥×¥ì¡¼¥È¤Ë¥Ñ¥é¥á¡¼¥¿¤ò¥»¥Ã¥È\r
45         my $tmpl = HTML::Template->new(filename=>$wiki->config('tmpl_dir')."/admin_spam.tmpl",\r
46                                        die_on_bad_params => 0);\r
47         $tmpl->param(\r
48                 SPAM_CONTENT => $spam,\r
49                 SPAM_IP      => $spam_ip\r
50         );\r
51         \r
52         foreach my $line (split(/\n/, $rule)){\r
53                 chomp($line);\r
54                 $tmpl->param(\r
55                         $line => 1,\r
56                 );\r
57         }\r
58         \r
59         return "<form action=\"".$wiki->create_url()."\" method=\"POST\">\n".\r
60                $tmpl->output().\r
61                "<input type=\"hidden\" name=\"action\" value=\"ADMINSPAM\">\n".\r
62                "</form>\n";\r
63 }\r
64 \r
65 #==============================================================================\r
66 # ÀßÄê¤òÊݸ\r
67 #==============================================================================\r
68 sub save_config {\r
69         my $self = shift;\r
70         my $wiki = shift;\r
71         my $cgi  = $wiki->get_CGI;\r
72         my $spam = $cgi->param('spam');\r
73         my $spam_ip = $cgi->param('spam_ip');\r
74         my $rule = join("\n", $cgi->param('rules'));\r
75         \r
76         \r
77         &Util::save_config_text($wiki,'spam.dat',$spam);\r
78         &Util::save_config_text($wiki,'spam_ip.dat',$spam_ip);\r
79         &Util::save_config_text($wiki,'spam_rules.dat',$rule);\r
80         \r
81         $wiki->redirectURL( $wiki->create_url({ action=>"ADMINSPAM"}) );\r
82 }\r
83 \r
84 1;\r