# #
# File: shared/Template/Archive.pm #
# #
-# Authors: Frank Schoenmann <fs@tower.de>, 2001-06-08 #
+# Authors: André Malo <nd@o3media.de> #
+# Frank Schönmann <fs@tower.de> #
# #
# 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(
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-
my $tmplparam = {
$assign->{'year'} => $param->{'year'},
-# $assign->{'month'} => $param->{'month'},
-# $assign->{'monthName'} => month($param->{'month'})
};
#
#
sub print_month_as_HTML($$$) {
my ($mainfile, $tempfile, $param) = @_;
+ my $main = new Lock($mainfile);
my $assign = $param->{'assign'};
#
# check if XML file exists
#
- unless (-e $mainfile) {
+ unless (-f $main->filename) {
print ${$template->scrap(
$assign->{'error'},
{
#
# 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'},
{
)};
return;
}
- unlock_file($mainfile);
+ $main -> unlock;
my $tmplparam = {
$assign->{'year'} => $param->{'year'},
#
# thread overview
#
- for (sort keys %$threads) {
+ for (sort {$a <=> $b} keys %$threads) {
print ${$template->scrap(
$assign->{'monthThreadEntry'},
{
$assign->{'monthDocEnd'},
$tmplparam
)};
-
-
}
### print_thread_as_HTML () ####################################################
#
# check if XML file exists
#
- unless (-e $mainfile) {
+ unless (-f $mainfile) {
print ${$template->scrap(
$assign->{'error'},
{
}
-# keep require happy
+# keep 'require' happy
1;
#
#
-### end of Template::Archive ###################################################
+### end of Template::Archive ###################################################
\ No newline at end of file