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

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

YukiWikiベースのPonyWikiのソースを読んでみる その27

新規作成したページを作成履歴(RecentCreates)へ追加する関数。

update_recent_changes関数とやってる事はほぼ同じです。違いは、こちらは新規作成時に呼ばれる関数なので、is_exist_page関数を呼んでも「存在しない」と言われる点だけです。

sub update_recent_creates {
    my $update = "- @{[&get_now]} @{[&armor_name($form{mypage})]}";
    my @oldupdates = split(/\r?\n/, $database{$[[RecentCreates]]});
    my @updates;
    foreach (@oldupdates) {
        /^\- \d\d\d\d\-\d\d\-\d\d \(...\) \d\d:\d\d:\d\d (\[\[.+?\]\])/;    # date format.
        my $name = &unarmor_name($1);
        if (&is_exist_page($name) and ($name ne $form{mypage})) {
            push(@updates, $_);
        }
    }
    if (!&is_exist_page($form{mypage})) {
        unshift(@updates, $update);
    }
    splice(@updates, $maxrecent + 1);
    $database{$[[RecentCreates]]} = join("\n", @updates);
}

''TrackBack'' - http://you-like.to/cgi-bin/ponytail/yukiwiki/wiki.cgi/update_recent_creates%b4%d8%bf%f4

先頭へ