############################################################################### # # <p>編集フォーマットを選択するためのプラグインです。</p> # ############################################################################### package plugin::format::FormatSelector; use strict; #============================================================================== # コンストラクタ #============================================================================== sub new { my $class = shift; my $self = {}; return bless $self,$class; } #============================================================================== # 編集フォームに書式を選択するためのコンボボックスを出力します。 #============================================================================== sub paragraph { my $self = shift; my $wiki = shift; my $cgi = $wiki->get_CGI(); my $page = $cgi->param('page'); my $format = $wiki->get_edit_format(); my @list = $wiki->get_format_names(); my $buf = "<form action=\"".$wiki->create_url()."\" method=\"POST\">\n". " <input type=\"hidden\" name=\"action\" value=\"CHANGE_FORMAT\">\n". " <input type=\"hidden\" name=\"query\" value=\"".$ENV{'QUERY_STRING'}."\">\n". " <select name=\"format\">\n"; foreach my $value (@list){ $buf .= " <option value=\"".&Util::escapeHTML($value)."\""; if($value eq $format){ $buf .= " selected"; } $buf .= ">".&Util::escapeHTML($value)."</option>\n"; } $buf .= " </select>\n". " <input type=\"submit\" value=\"変更\">\n". "</form>\n"; return $buf; } #============================================================================== # 書式変更時の処理を実装します。 #============================================================================== sub do_action { my $self = shift; my $wiki = shift; my $cgi = $wiki->get_CGI(); my $page = $cgi->param('page'); my $format = $cgi->param('format'); if($format eq ""){ $format = "FSWiki"; } my $path = &Util::cookie_path($wiki); my $cookie = $cgi->cookie(-name=>'edit_format',-value=>$format,-expires=>'+1M',-path=>$path); print "Set-Cookie: ",$cookie->as_string,"\n"; my $url = $wiki->config('script_name'); if($cgi->param('query') ne ''){ $url .= "?".$cgi->param('query'); } $wiki->redirectURL($url); } 1;