表紙 | 新規 | 一覧 | RSS | 検索 | 閲覧履歴 | 作成履歴 | 更新履歴

do_edit関数 - YukiWikiベースのPonyWikiのソースを読んでみる その04

差分表示


[[YukiWikiベースのPonyWikiのソースを読んでみる]] その4
[[YukiWikiベースのPonyWikiのソースを読んでみる]] その04

処理としては[[do_read関数]]と同じで、ヘッダ部分の表示・内容の表示・フッタの表示を行っています。&br()

- 引数のページ名(&verb($form{mypage}))を&verb([[[[]]]])で括り(&verb(&verb&armor_name))、さらに&verb([[[[]]]])を取り除いています。なんでこんな処理してるんだろ?
- ヘッダ部分を表示
- 変更可能かチェック
-- 変更不可の時は、$resource{cantchange}を表示する
- ページが凍結されているかチェック
-- 凍結されていれば、$resource{cantchange}を表示する
- ページの部分編集が設定されていれば(&verb($form{mypart}))、その部分を切り出してテキストボックスに表示させる
-- 部分編集でない場合は、内容全体をテキストボックスに表示させる
- フッタ部分表示

---(
sub do_edit {
    my ($page) = &unarmor_name(&armor_name($form{mypage}));
    &print_header($page);
    if (not &is_editable($page)) {
        &print_message($resource{cantchange});
    } elsif (&is_frozen($page)) {
        &print_message($resource{cantchange});
    # Walrus add [part edit] start
    } elsif ($form{mypart} =~ /^\d+$/ and $form{mypart}) {
        my $mymsg = (&read_by_part($page))[$form{mypart} - 1];
        &print_editform($mymsg, &get_info($page, $info_ConflictChecker), admin=>0);
    # Walrus add [part edit] end
    } else {
        &print_editform($database{$page}, &get_info($page, $info_ConflictChecker), admin=>0);
    }
    &print_footer($page);
}
---)


- armor_name関数
- get_info関数
- is_editable関数
- is_frozen関数
- print_editform関数
- [[print_footer関数]]
- [[print_header関数]]
- [[print_message関数]]
- read_by_part関数
- unarmor_name関数


-----
[[#rtrackback]]

先頭へ