# Copyright (C) 2004 Alex Schroeder # Copyright (C) 2005 Ingo Belka # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . use strict; use v5.10; AddModuleDescription('headlines.pl', 'Headlines Extension'); our (@MyRules); our ($HeadlineNumber); push(@MyRules, \&HeadlinesRule); # Include this page on every page: $HeadlineNumber = 20; sub HeadlinesRule { if (m/\G(\<headlines(:(\d+))?\>)/cgi) { if (($3) and ($3>0)) {$HeadlineNumber = $3;}; Clean(CloseHtmlEnvironments()); Dirty($1); HeadlinesPrint(); return AddHtmlEnvironment('p'); } return; } sub HeadlinesPrint { my @pages = (grep(/^\d\d\d\d-\d\d-\d\d_.+/, AllPagesList())); @pages = sort {$b cmp $a} @pages; @pages = @pages[0 .. $HeadlineNumber - 1] if $#pages >= $HeadlineNumber; my $current_date; if (@pages) { print '
'; foreach my $page (@pages) { if ($page =~ /^(\d\d\d\d-\d\d-\d\d)_(.+)/) { my ($date, $title) = ($1, $2); $title =~ s/_/ /g; print '
' . $date . '
' unless $date eq $current_date; $current_date = $date; print '
' . ScriptLink($page, $title, 'headlineslink') . '
'; } } print '
'; } }