X-Git-Url: https://git.p6c8.net/selfforum.git/blobdiff_plain/f46d5dbbe5d2426a35407a3914666bc4d1bb9d18..a9a9cc16143ab7c16c4f140df5dff8473ed99119:/selfforum-cgi/shared/Template/Archive.pm?ds=inline diff --git a/selfforum-cgi/shared/Template/Archive.pm b/selfforum-cgi/shared/Template/Archive.pm index a22f269..bae7d47 100644 --- a/selfforum-cgi/shared/Template/Archive.pm +++ b/selfforum-cgi/shared/Template/Archive.pm @@ -4,15 +4,19 @@ package Template::Archive; # # # File: shared/Template/Archive.pm # # # -# Authors: Frank Schoenmann , 2001-06-08 # +# Authors: André Malo # +# Frank Schönmann # # # # Description: archive display # # # ################################################################################ use strict; +use vars qw( + @EXPORT +); -use Lock qw(:READ); +use Lock; use Encode::Posting; use Encode::Plain; $Encode::Plain::utf8 = 1; use Posting::_lib qw( @@ -35,23 +39,91 @@ use Template; use Template::_conf; use Template::_thread; +################################################################################ +# +# Version check +# +# last modified: +# $Date$ (GMT) +# by $Author$ +# +sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'} + ################################################################################ # # Export # use base qw(Exporter); -@Template::Archive::EXPORT = qw( +@EXPORT = qw( + print_overview_as_HTML print_year_as_HTML print_month_as_HTML print_thread_as_HTML ); +### print_overview_as_HTML () ################################################## +# +# archive entry +# +# Params: $arcdir main archive directory +# $tempfile template filename +# $param hash reference +# Return: -none- +# +sub print_overview_as_HTML($$$) { + my ($arcdir, $tempfile, $param) = @_; + + my $assign = $param->{'assign'}; + + my $template = new Template $tempfile; + + # + # archiveDocStart + # + print ${$template->scrap( + $assign->{'archiveDocStart'} + )}; + + # + # globbing to find year directories + # + for (<$arcdir????>) { + s/$arcdir//; + print ${$template->scrap( + $assign->{'archiveDocEntry'}, + { + $assign->{'year'} => $_ + } + + )}; + } + +# for (my $month = 1; $month <= 12; $month++) { +# if (-e $yeardir.$month.'/') { +# print ${$template->scrap( +# $assign->{'yearDocEntry'}, +# { +# $assign->{'year'} => $param->{'year'}, +# $assign->{'month'} => $month, +# $assign->{'monthName'} => month($month) +# } +# )}; +# } +# } + + # + # archiveDocEnd + # + print ${$template->scrap( + $assign->{'archiveDocEnd'} + )}; +} ### print_year_as_HTML () ###################################################### # # yearly overview over months # -# Params: +# Params: $yeardir directory, which contains month directories # $tempfile template filename # $param hash reference # Return: -none- @@ -77,8 +149,6 @@ sub print_year_as_HTML($$$) { my $tmplparam = { $assign->{'year'} => $param->{'year'}, -# $assign->{'month'} => $param->{'month'}, -# $assign->{'monthName'} => month($param->{'month'}) }; # @@ -122,6 +192,7 @@ sub print_year_as_HTML($$$) { # sub print_month_as_HTML($$$) { my ($mainfile, $tempfile, $param) = @_; + my $main = new Lock($mainfile); my $assign = $param->{'assign'}; @@ -130,7 +201,7 @@ sub print_month_as_HTML($$$) { # # check if XML file exists # - unless (-e $mainfile) { + unless (-f $main->filename) { print ${$template->scrap( $assign->{'error'}, { @@ -143,8 +214,8 @@ sub print_month_as_HTML($$$) { # # try locking and read/parse threads # - my ($threads, $locked); - unless ($locked = lock_file($mainfile) and $threads = get_all_threads($mainfile, KILL_DELETED)) { + my $threads; + unless ($main->lock (LH_SHARED) and $threads = get_all_threads($mainfile, KILL_DELETED)) { print ${$template->scrap( $assign->{'error'}, { @@ -153,7 +224,7 @@ sub print_month_as_HTML($$$) { )}; return; } - unlock_file($mainfile); + $main -> unlock; my $tmplparam = { $assign->{'year'} => $param->{'year'}, @@ -172,7 +243,7 @@ sub print_month_as_HTML($$$) { # # thread overview # - for (sort keys %$threads) { + for (sort {$a <=> $b} keys %$threads) { print ${$template->scrap( $assign->{'monthThreadEntry'}, { @@ -194,8 +265,6 @@ sub print_month_as_HTML($$$) { $assign->{'monthDocEnd'}, $tmplparam )}; - - } ### print_thread_as_HTML () #################################################### @@ -219,7 +288,7 @@ sub print_thread_as_HTML($$$) { # # check if XML file exists # - unless (-e $mainfile) { + unless (-f $mainfile) { print ${$template->scrap( $assign->{'error'}, { @@ -316,9 +385,9 @@ sub print_thread_as_HTML($$$) { } -# keep require happy +# keep 'require' happy 1; # # -### end of Template::Archive ################################################### +### end of Template::Archive ################################################### \ No newline at end of file