1 2
|
###############################################################################
# <p>CardForm用のformを挿入します。</p> |
以下続くヘルプメッセージは省略
282 283 284 285 286 287
|
###############################################################################
package plugin::cardform::CardForm;
use strict;
use vars qw(@ISA);
@ISA = qw(plugin::cardform::FormFuncBase);
use plugin::cardform::FormFuncBase; |
お決まりの宣言とクラスの継承。
288 289 290 291 292 293 294 295
|
#==============================================================================
# エラーメッセージ生成オーバーライド
#==============================================================================
sub errmsg {
my $self = shift;
ref $self or unshift @_, $self;
return Util::paragraph_error(shift,"WIKI");
} |
インラインプラグインでHTML出力が基本のFormFuncBaseを継承するが、このクラスはパラグラフプラグインのWIKI出力であるのでエラーメッセージ生成メソッドを変更している。
296 297 298 299 300 301 302 303 304
|
#==============================================================================
# インラインメソッド
#==============================================================================
sub paragraph {
my $self = shift;
my $wiki = shift;
my $formpage = shift;
my $basename = shift;
my $savepage = shift; |
プラグインとして渡される3つの引数を取得している。
306 307 308 309
|
# フォーム中なら何もかえさない。
if($self->is_enable){
return "";
} |
ネスト防止のため、フォーム中では無視する。
311 312 313 314 315 316 317
|
# 第1引数のチェック
if($formpage eq ""){
return $self->errmsg("フォームページ名が指定されていません。");
}
unless($wiki->page_exists($formpage)){
return $self->errmsg("フォームページが存在しません。");
} |
第1引数であるフォームページの指定は省略できず、ページが存在している必要がある。
318 319 320 321
|
# 第2引数のチェック
if($basename eq ""){
$basename = $formpage;
} |
第2引数であるベース名は省略できる。省略された場合は代わりにフォームページ名をとなる。フォームページ名は先ほどのチェックで空でない事が保証されている。
322 323 324 325 326 327 328 329 330
|
# 第3引数のチェック
if($savepage ne ""){
if($wiki->page_exists($savepage)){
$self->set_initpage($wiki,$basename,$savepage);
}
$savepage = "{{formhidden page,$savepage}}";
}elsif($wiki->page_exists("$basename/0")){
$self->set_initpage($wiki,$basename,"$basename/0");
} |
第3引数であるセーブページ名は通常指定しない。セーブページ名が指定された場合、そのページが存在すれば修正を意味するとして、そのページから初期値をえる。そのページが存在しなければ新規保存となる。セーブページ名が指定されていない場合は通常の様に「ベース名/数字」が保存先となり、「ベース名/0」が初期値のページとなる。
332 333 334 335 336 337 338 339 340 341 342 343
|
return <<"_EOF_";
{{formstart}}{{formhidden action,CARDFORM}}{{formhidden basename,$basename}}$savepage
{{include $formpage}}
{{formend}}
_EOF_
}
1;
}}
最後にフォームページをインクルードする前後にフォーム開始/終了プラグインと、
CardFormのハンドラに渡すためactionパラメータとbasenameパラメータ、
そして第3引数があった場合はセーブページ名をpageパラメータに渡すためformhiddenプラグインの記述に書き換えられた$savepage(第3引数がなければ空)を返す。 |
最終更新時間:2007年10月05日 23時22分55秒