############################################################ # # <p>ファイルを添付するためのフォームを表示します。</p> # <pre> # {{attach}} # </pre> # <p> # 添付したファイルはフォームの上に一覧表示されます。 # 同じファイルを添付すると複数表示されてしまうのはご愛嬌です。 # nolistオプションをつけると一覧表示を行いません。 # </p> # <pre> # {{attach nolist}} # </pre> # ############################################################ package plugin::attach::Attach; use strict; #=========================================================== # コンストラクタ #=========================================================== sub new { my $class = shift; my $self = {}; return bless $self,$class; } #=========================================================== # プラグインの種別を返します #=========================================================== sub type { return "html"; } #=========================================================== # 添付フォームの表示 #=========================================================== sub paragraph { my $self = shift; my $wiki = shift; my $option = shift; my $cgi = $wiki->get_CGI; my $page = $cgi->param("page"); if(!defined($option) || $option ne "nolist"){ if(!defined($self->{$page})){ $self->{$page} = 1; } else { $self->{$page}++; } } else { $self->{$page} = undef; } my $buf = "<form action=\"".$wiki->create_url()."\" method=\"post\" enctype=\"multipart/form-data\">\n". " <input type=\"file\" name=\"file\">\n". " <input type=\"submit\" name=\"UPLOAD\" value=\" 添 付 \">\n". " <input type=\"hidden\" name=\"page\" value=\"". Util::escapeHTML($page)."\">\n". " <input type=\"hidden\" name=\"action\" value=\"ATTACH\">\n"; if(defined($self->{$page})){ $buf .= " <input type=\"hidden\" name=\"count\" value=\"".$self->{$page}."\">\n"; } $buf .= "</form>\n"; return $buf; } 1;