X-Git-Url: https://git.p6c8.net/selfforum.git/blobdiff_plain/d2a9a53e1134b61fa695688b5bc388091fc346cf..dd4ab9aedf7e7eaebddaf5c00f506972dad42b4c:/selfforum-cgi/shared/Template/Archive.pm diff --git a/selfforum-cgi/shared/Template/Archive.pm b/selfforum-cgi/shared/Template/Archive.pm index a0497a8..c71c359 100644 --- a/selfforum-cgi/shared/Template/Archive.pm +++ b/selfforum-cgi/shared/Template/Archive.pm @@ -20,10 +20,14 @@ use Posting::_lib qw( get_message_header get_message_body + get_all_threads parse_single_thread parse_xml_file + very_short_hr_time + short_hr_time hr_time + month KILL_DELETED ); @@ -36,7 +40,10 @@ use Template::_thread; # Export # use base qw(Exporter); -@Template::Archive::EXPORT = qw(print_thread_as_HTML); +@Template::Archive::EXPORT = qw( + print_month_as_HTML + print_thread_as_HTML +); ### print_year_as_HTML () ###################################################### @@ -62,8 +69,59 @@ use base qw(Exporter); sub print_month_as_HTML($$$) { my ($mainfile, $tempfile, $param) = @_; + my $assign = $param->{'assign'}; + my $template = new Template $tempfile; + my ($threads, $locked); + unless ($locked = lock_file($mainfile) and $threads = get_all_threads($mainfile, KILL_DELETED)) { + print ${$template->scrap( + $assign->{'errorLocking'} + )}; + return; + } + unlock_file($mainfile); + + my $tmplparam = { + $assign->{'year'} => $param->{'year'}, + $assign->{'month'} => $param->{'month'}, + $assign->{'monthName'} => month($param->{'month'}) + }; + + # + # monthDocStart + # + print ${$template->scrap( + $assign->{'monthDocStart'}, + $tmplparam + )}; + + # + # thread overview + # + for (sort keys %$threads) { + print ${$template->scrap( + $assign->{'monthThreadEntry'}, + { + $assign->{'threadID'} => $_, + $assign->{'threadCategory'} => $threads->{$_}->[0]->{'cat'}, + $assign->{'threadTitle'} => $threads->{$_}->[0]->{'subject'}, + $assign->{'threadTime'} => short_hr_time($threads->{$_}->[0]->{'time'}), + $assign->{'threadDate'} => very_short_hr_time($threads->{$_}->[0]->{'time'}), + $assign->{'year'} => $param->{'year'}, + $assign->{'month'} => $param->{'month'} + } + )}; + } + + # + # monthDocEnd + # + print ${$template->scrap( + $assign->{'monthDocEnd'}, + $tmplparam + )}; + } @@ -97,6 +155,9 @@ sub print_thread_as_HTML($$$) { $tree->{'month'} => $param->{'month'} }; + # + # used to print the thread view + # my $tpar = { 'thread' => $param->{'thread'}, 'template' => $param->{'tree'}, @@ -105,11 +166,15 @@ sub print_thread_as_HTML($$$) { 'addParam' => $addparam }; + # + # threadDocStart + # my $tmplparam = { $assign->{'threadCategory'} => $thread->[0]->{'cat'}, $assign->{'threadTitle'} => $thread->[0]->{'subject'}, - $assign->{'threadYear'} => $param->{'year'}, - $assign->{'threadMonth'} => $param->{'month'}, + $assign->{'year'} => $param->{'year'}, + $assign->{'month'} => $param->{'month'}, + $assign->{'monthName'} => month($param->{'month'}), $param->{'tree'}->{'main'} => html_thread($thread, $template, $tpar) }; @@ -118,6 +183,9 @@ sub print_thread_as_HTML($$$) { $tmplparam )}; + # + # print thread msgs + # for (@$thread) { my $mnode = get_message_node($xml, 't'.$tid, 'm'.$_->{'mid'}); my $header = get_message_header($mnode); @@ -149,6 +217,9 @@ sub print_thread_as_HTML($$$) { )}; } + # + # threadDocEnd + # print ${$template->scrap( $assign->{'threadDocEnd'}, $tmplparam