1 ###############################################################################
3 # FSWiki¤Î¥¹¥¿¥¤¥ëÀßÄê¤ò¹Ô¤¦¥¢¥¯¥·¥ç¥ó¥Ï¥ó¥É¥é
5 ###############################################################################
6 package plugin::admin::AdminStyleHandler;
8 #==============================================================================
10 #==============================================================================
14 return bless $self,$class;
17 #==============================================================================
18 # ¥¢¥¯¥·¥ç¥ó¥Ï¥ó¥É¥é¥á¥½¥Ã¥É
19 #==============================================================================
23 my $cgi = $wiki->get_CGI();
25 $wiki->set_title("¥¹¥¿¥¤¥ëÀßÄê");
27 if($cgi->param("SAVE") ne ""){
28 return $self->save_config($wiki);
30 return $self->config_form($wiki);
34 #==============================================================================
36 #==============================================================================
41 my $config = &Util::load_config_hash($wiki,$wiki->config('config_file'));
42 my $usercss = &Util::load_config_text($wiki,$wiki->config('usercss_file'));
44 # ¥Æ¡¼¥Þ¤Î°ìÍ÷¤ò¼èÆÀ¤·¥Æ¥ó¥×¥ì¡¼¥ÈÍѤ˲ù©
45 my @buf = $self->list_theme($wiki);
46 my @theme = $self->convert_template_list(\@buf, $config->{theme});
48 # ¥µ¥¤¥È¥Æ¥ó¥×¥ì¡¼¥È¥Æ¡¼¥Þ¤Î°ìÍ÷¤ò¼èÆÀ¤·¥Æ¥ó¥×¥ì¡¼¥ÈÍѤ˲ù©
49 @buf = $self->list_site_tmpl_theme($wiki);
50 my @site_tmpl_theme = $self->convert_template_list(\@buf,$config->{site_tmpl_theme});
53 if($config->{'theme'} eq ""){
57 # ¥Æ¥ó¥×¥ì¡¼¥È¤Ë¥Ñ¥é¥á¡¼¥¿¤ò¥»¥Ã¥È
58 my $tmpl = HTML::Template->new(filename=>$wiki->config('tmpl_dir')."/admin_style.tmpl",
59 die_on_bad_params => 0);
60 $tmpl->param(THEME => \@theme,
62 OUTER_CSS => $config->{'outer_css'},
63 NO_THEME => $no_theme,
64 SITE_TMPL_THEME => \@site_tmpl_theme);
66 return "<form action=\"".$wiki->create_url()."\" method=\"POST\">\n".
68 "<input type=\"hidden\" name=\"action\" value=\"ADMINSTYLE\">\n".
72 #==============================================================================
74 #==============================================================================
78 my $cgi = $wiki->get_CGI;
79 my $config = &Util::load_config_hash($wiki,$wiki->config('config_file'));
81 $config->{theme} = $cgi->param("theme");
82 $config->{outer_css} = $cgi->param("outer_css");
83 $config->{site_tmpl_theme} = $cgi->param("site_tmpl_theme");
85 &Util::save_config_hash($wiki,$wiki->config('config_file'),$config);
87 my $usercss = $cgi->param("usercss");
88 &Util::save_config_text($wiki,$wiki->config('usercss_file'),$usercss);
90 return $wiki->redirectURL( $wiki->create_url({action=>"ADMINSTYLE"}) );
91 #return "ÀßÄê¤òÊݸ¤·¤Þ¤·¤¿¡£\n";
95 #==============================================================================
96 # ¥Ç¥£¥ì¥¯¥È¥ê¤Î°ìÍ÷¤ò¼èÆÀ
97 #==============================================================================
102 opendir(DIR, $dir) or die $!;
103 while(my $entry = readdir(DIR)) {
104 my $type = -d $dir."/$entry" ? "dir" : "file";
105 if($type eq "dir" && $entry ne "." && $entry ne ".."){
114 #==============================================================================
116 #==============================================================================
120 return $self->list_dir($wiki->config('theme_dir'));
123 #==============================================================================
124 # ¥µ¥¤¥È¥Æ¥ó¥×¥ì¡¼¥È¥Æ¡¼¥Þ¤Î°ìÍ÷¤ò¼èÆÀ
125 #==============================================================================
126 sub list_site_tmpl_theme {
129 return $self->list_dir($wiki->config('tmpl_dir').'/site');
132 #==============================================================================
133 # HTML::Template¤Î¥»¥ì¥¯¥È¥¿¥°ÍѤ˥ꥹ¥È¤òÊÑ´¹¤··ë²Ì¤ò¼èÆÀ
134 #==============================================================================
135 sub convert_template_list {
138 my $selected_value = shift;
141 foreach my $value (@$list){
143 if($value eq $selected_value){
146 push(@ret,{VALUE=>$value,SELECT=>$selected});