web headers/footers update from Josip
[mirror/userdir-ldap.git] / web / template / debian / recent_list.wml
1 #use wml::debian::ctime
2
3 <define-tag noitemsforthisyear whitespace=delete>
4         [EN:No items for this year.:]
5         [TR:Bu yIl iCin bilgi yok:]
6         [FI:Ei otsikoita tältä vuodelta:]
7         [PT:Sem itens neste ano.:]
8         [HR:Za ovu godinu nema èlanaka.:]
9         [FR:Pas d'éléments cette année.:]
10         [DE:Kein Eintrag für dieses Jahr.:]
11         [IT:No items for this year.:]
12         [JA:No items for this year.:]
13         [PL:Brak wydarzeñ w tym roku.:]
14         [ES:No items for this year.:]
15         [DA:Ingen begivenheder i dette &aring;r.:]
16         [NO:Ingen begivenheter dette året:]
17         [ZH:No items for this year.:]
18         [SV:Ingenting detta år.:]
19         [KO:No items for this year.:]
20 </define-tag>
21
22 # DO NOT translate anything below here. If you feel something needs to be changed, write to
23 # debian-www first
24
25 <perl>
26
27 # grabs the date and title of the last $number news items from directory $year.
28 # If $number is zero then all the news items are shown.
29 # example usage:
30 # get_recent_list ('1998', '0', '$(ENGLISHDIR)/News', '', '\d+\w*')
31
32 sub get_recent_list {
33         my ($year, $number, $eng_dir, $format, $match) = @_;
34
35         if ($format =~ order) {
36                 $listhead = '<OL>';
37                 $listfoot = '</OL>';
38                 $elemhead = '<LI>';
39                 $elemfoot = '';
40         }
41         elsif ($format =~ bullet) {
42                 $listhead = '<UL>';
43                 $listfoot = '</UL>';
44                 $elemhead = '<LI>';
45                 $elemfoot = '';
46         }
47         elsif ($format =~ list) {
48                 $listhead = '<DL>';
49                 $listfoot = '</DL>';
50                 $elemhead = '<DT>';
51                 $elemfoot = '<DD>';
52         }
53         else {
54                 $listhead = '';
55                 $listfoot = '';
56                 $elemhead = '';
57                 $elemfoot = '';
58         }
59
60         $str=$listhead;
61
62         opendir(DIR, "$eng_dir/$year");
63         @files = grep { /^$match.wml$/ && -f "$eng_dir/$year/$_" } readdir(DIR);
64         @files = sort {$b cmp $a} @files;
65         closedir DIR;
66
67         $count = 0;
68         grab_titles($year, $number, $eng_dir, $format, $match);
69
70         if ($count < $number && $number ne 0) {
71                 @tmp = split('/', $year);
72                 $tmp[$#tmp]--;
73                 # $year--;
74                 $year = join('/', @tmp);
75                 if (-d "$eng_dir/$year") {
76                         opendir(DIR, "$eng_dir/$year") or printf stderr "couldn't open dir $eng_dir/$year\n";
77                         @files = grep { /^$match.wml$/ && -f "$eng_dir/$year/$_" } readdir(DIR);
78                         @files = sort {$b cmp $a} @files;
79                         closedir DIR;
80                 }
81                 grab_titles($year, $number, $eng_dir, $format, $match);
82         }
83         if ($count eq 0) {
84                 $str .= "<noitemsforthisyear>\n";
85         }
86         $str .= $listfoot;
87         return $str;
88 }
89
90 sub grab_titles {
91         my ($year, $number, $eng_dir, $format, $match) = @_;
92         foreach (@files) {
93                 $trans_title = $_;
94                 $trans_title =~ s/wml/title/;
95                 $count++;
96                 open(FILE, "<$year/$_") || open(FILE, "<$year/$trans_title") || open(FILE, "<$eng_dir/$year/$_") or printf stderr "ACK: can't open $year/$_\n";
97                 if (/($match).wml/) {
98                         $base = $1;
99                 }
100                 $date = ''; $title = ''; $desc = '';
101                 foreach $line (<FILE>) {
102                         if ($line =~ /^<define-tag pagetitle>(.*)<\/define-tag>$/) {
103                                 $title = qq/$1/;
104                         }
105                         elsif ($line =~ /^<define-tag release_date>(.*)<\/define-tag>$/) {
106                                 $date = qq/$1/;
107                         }
108                         elsif ($line =~ /^<define-tag report_date>(.*)<\/define-tag>$/) {
109                                 $date = qq/$1/;
110                         }
111                         elsif ($line =~ /^<define-tag date>(.*)<\/define-tag>$/) {
112                                 $date = qq/$1/;
113                         }
114                         elsif ($line =~ /^<define-tag description>(.*)<\/define-tag>$/) {
115                                 $desc = qq/$1/;
116                         }
117                         if ($title && $date && $desc) {
118                                 $date = newsdate($date);
119                                 $str1 = "$elemhead<tt>[$date]</tt> <strong><a href=\"$year/$base\">$title</a></strong> - $elemfoot$desc<br>\n";
120                                 last;
121                         }
122                         elsif ($title && $date) {
123                                 $date = newsdate($date);
124                                 $str1 = "$elemhead<tt>[$date]</tt> <strong><a href=\"$year/$base\">$title</a></strong><br>\n";
125                         }
126                 }
127                 $str .= $str1;
128                 close FILE;
129                 if ($count eq $number) { last; }
130         }
131         return $str;
132 }
133
134 </perl>