表紙 | 新規 | 一覧 | 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);
}
---)

- get_now関数
- armor_name関数
- unarmor_name関数
- is_exist_page関数

----
[[#trackback]]

先頭へ