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
);
# 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 () ######################################################
sub print_month_as_HTML($$$) {
my ($mainfile, $tempfile, $param) = @_;
+ my $assign = $param->{'assign'};
+
my $template = new Template $tempfile;
+ #
+ # check if XML file exists
+ #
+ unless (-e $mainfile) {
+ print ${$template->scrap(
+ $assign->{'error'},
+ {
+ $assign->{'errorText'} => "Es existieren keine Nachrichten für diesen Monat."
+ }
+ )};
+ return;
+ }
+
+ #
+ # try locking and read/parse threads
+ #
+ my ($threads, $locked);
+ unless ($locked = lock_file($mainfile) and $threads = get_all_threads($mainfile, KILL_DELETED)) {
+ print ${$template->scrap(
+ $assign->{'error'},
+ {
+ $assign->{'errorText'} => "Fehler beim Locking."
+ }
+ )};
+ 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
+ )};
+
}
my $template = new Template $tempfile;
+ #
+ # check if XML file exists
+ #
+ unless (-e $mainfile) {
+ print ${$template->scrap(
+ $assign->{'error'},
+ {
+ $assign->{'errorText'} => "Der gewünschte Thread existiert nicht."
+ }
+ )};
+ return;
+ }
+
my $view = get_view_params ({
'adminDefault' => $param->{'adminDefault'}
});
$tree->{'month'} => $param->{'month'}
};
+ #
+ # used to print the thread view
+ #
my $tpar = {
'thread' => $param->{'thread'},
'template' => $param->{'tree'},
'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)
};
print ${$template->scrap(
$assign->{'threadDocStart'},
- $tmplparam
+ $tmplparam,
+ 1
)};
+ #
+ # print thread msgs
+ #
for (@$thread) {
my $mnode = get_message_node($xml, 't'.$tid, 'm'.$_->{'mid'});
my $header = get_message_header($mnode);
my $body = get_message_body($xml, 'm'.$_->{'mid'});
- my $text = message_field (
+ my $text = message_field(
$body,
{
'quoteChars' => plain($view->{'quoteChars'}),
$assign->{'msgCategory'} => plain($header->{'category'}),
$assign->{'msgSubject'} => plain($header->{'subject'}),
$assign->{'msgBody'} => $text
- }
+ },
+ 1
)};
}
+ #
+ # threadDocEnd
+ #
print ${$template->scrap(
$assign->{'threadDocEnd'},
- $tmplparam
+ $tmplparam,
+ 1
)};
}