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

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

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

更新履歴(RecentChanges)を更新する関数。

処理の流れは以下の通り

sub update_recent_changes {
    my $update = "- @{[&get_now]} @{[&armor_name($form{mypage})]} @{[&get_subjectline($form{mypage})]}";
    my @oldupdates = split(/\r?\n/, $database{$[[RecentChanges]]});
    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{$[[RecentChanges]]} = join("\n", @updates);
    if ($file_touch) {
        open(FILE, "> $file_touch");
        print FILE localtime() . "\n";
        close(FILE);
    }
}

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

先頭へ