############################################################ # # <p>最近更新されたページを日付ごとに一覧表示します。</p> # <p>引数で表示日数を指定します。</p> # <pre> # {{recentdays 10}} # </pre> # <p>引数を省略した場合は5日分を出力します。</p> # ############################################################ package plugin::recent::RecentDays; use strict; #=========================================================== # コンストラクタ #=========================================================== sub new { my $class = shift; my $self = {}; return bless $self,$class; } #=========================================================== # パラグラフメソッド #=========================================================== sub paragraph { my $self = shift; my $wiki = shift; my $max = shift; my $cgi = $wiki->get_CGI; # 表示形式を決定 if($max eq ""){ $max = 5; } # 表示内容を作成 my $content = ""; my $count = 0; my $l_year = 0; my $l_mon = 0; my $l_day = 0; foreach my $page ($wiki->get_page_list({-sort=>'last_modified',-permit=>'show'})){ my $modtime = $wiki->get_last_modified2($page); my ($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime($modtime); $year += 1900; $mon += 1; if($l_year!=$year || $l_mon!=$mon || $l_day!=$mday){ if($count==$max){ last; } $content .= "'''$year/$mon/$mday'''\n"; $l_year = $year; $l_mon = $mon; $l_day = $mday; $count++; } $content .= "*[[$page]]\n"; } return $content; } 1;