OSDN Git Service

(no commit message)
[fswiki/sandbox.git] / typer / plugin / thumbnail / Admin.pm
1 ###############################################################################\r
2 #\r
3 # thumbnail¥×¥é¥°¥¤¥ó¤ÎÀßÄê¤ò¹Ô¤¦¥¢¥¯¥·¥ç¥ó¥Ï¥ó¥É¥é\r
4 #\r
5 # ::default_size\r
6 # :::¥Ç¥Õ¥©¥ë¥È¥µ¥¤¥ºÌ¾\r
7 # ::name\r
8 # :::¥µ¥¤¥ºÌ¾\r
9 # ::priority\r
10 # :::¥×¥é¥¤¥ª¥ê¥Æ¥£(max or min)\r
11 # ::ratio:\r
12 # :::½Ì¾®Î¨(%)\r
13 # ::max\r
14 # :::ºÇÂçĹ(px)\r
15 # ::x\r
16 # :::²£ÊÕĹ(px)\r
17 # ::y\r
18 # :::½ÄÊÕĹ(px)\r
19 #\r
20 ###############################################################################\r
21 package plugin::thumbnail::Admin;\r
22 use strict;\r
23 use plugin::thumbnail::AdminTemplate;\r
24 use plugin::thumbnail::Delete;\r
25 use vars qw(@ISA);\r
26 @ISA = qw(Wiki::AdminTemplate);\r
27 #==============================================================================\r
28 # ¥³¥ó¥¹¥È¥é¥¯¥¿\r
29 #==============================================================================\r
30 sub new {\r
31         my $class = shift;\r
32         my $self = new Wiki::AdminTemplate('thumbnail');\r
33         $self->{action_name} = $plugin::thumbnail::Install::AdminHandler;\r
34         $self->{default_value} = {\r
35                 default_size    => "default",\r
36                 size            => [{\r
37                         name            => "default",\r
38                         priority        => "max",\r
39                         ratio           => "25",\r
40                         max             => "120",\r
41                         x               => "",\r
42                         y               => "",\r
43                 }, {\r
44                         name            => "large",\r
45                         priority        => "max",\r
46                         ratio           => "25",\r
47                         max             => "300",\r
48                         x               => "",\r
49                         y               => "",\r
50                 }, {\r
51                         name            => "small",\r
52                         priority        => "min",\r
53                         ratio           => "25",\r
54                         max             => "80",\r
55                         x               => "",\r
56                         y               => "",\r
57                 }],\r
58         };\r
59         $self->{config_template} = {\r
60                 default_size    => '^\w+$',\r
61                 size            => {\r
62                         name            => '^\w+$',\r
63                         priority        => ["max", "min"],\r
64                         ratio           => '^\d*$',\r
65                         max             => '^\d*$',\r
66                         x               => '^\d*$',\r
67                         y               => '^\d*$',\r
68                 },\r
69         };\r
70         $self->{size_change_conf} = {};\r
71         return bless $self,$class;\r
72 }\r
73 \r
74 sub load_config {\r
75         my $self = shift;\r
76         $self->SUPER::load_config(@_);\r
77         my %param = map {$_->{name} => $_} @{$self->{conf}->{size}};\r
78         $self->{param} = \%param;\r
79 }\r
80 \r
81 sub change_value {\r
82         my $self = shift;\r
83         my $key = shift;\r
84         my $new = shift;\r
85         my $old = shift;\r
86         if($key =~ /^(size\d\d)(.*)/) {\r
87                 $self->{size_change_conf}->{$1} = $2 eq "_name" ? $old : "";\r
88         }\r
89 }\r
90 \r
91 sub after_save_hook {\r
92         my $self = shift;\r
93         my $wiki = shift;\r
94         foreach my $key (keys %{$self->{old}}) {\r
95                 if($key =~ /^(size\d\d)_name$/) {\r
96                         $self->{size_change_conf}->{$1} = $self->{old}->{$key};\r
97                 }\r
98         }\r
99         foreach my $key (keys %{$self->{size_change_conf}}) {\r
100                 my $name = $self->{size_change_conf}->{$key} || $self->{flat}->{$key."_name"};\r
101                 plugin::thumbnail::Delete::delete_of_size($wiki, $name);\r
102         }\r
103         $self->{size_change_conf} = {};\r
104 }\r
105 \r
106 1;\r