X-Git-Url: https://git.p6c8.net/selfforum.git/blobdiff_plain/3ccd0fa8e1b8039edd0332c8e079cd1add4f7703..33dc5903af2c531fdd07df0ac1591c55ea13c5d3:/selfforum-cgi/shared/Template/_thread.pm?ds=sidebyside diff --git a/selfforum-cgi/shared/Template/_thread.pm b/selfforum-cgi/shared/Template/_thread.pm index 74ae404..c47f28c 100644 --- a/selfforum-cgi/shared/Template/_thread.pm +++ b/selfforum-cgi/shared/Template/_thread.pm @@ -1,38 +1,50 @@ -# Template/_thread.pm +package Template::_thread; -# ==================================================== -# Autor: n.d.p. / 2001-01-11 -# lm : n.d.p. / 2001-01-11 -# ==================================================== -# Funktion: -# HTML-Darstellung eines Threads -# ==================================================== +################################################################################ +# # +# File: shared/Template/_thread.pm # +# # +# Authors: Andre Malo , 2001-06-16 # +# # +# Description: convert parsed thread to HTML # +# # +################################################################################ use strict; - -package Template::_thread; - -use vars qw(@ISA @EXPORT); +use vars qw( + @EXPORT + $VERSION +); use Encode::Plain; $Encode::Plain::utf8 = 1; use Posting::_lib qw(short_hr_time); use Template; use Template::_query; -# ==================================================== -# Funktionsexport -# ==================================================== +################################################################################ +# +# Version check +# +$VERSION = do { my @r =(q$Revision$ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; -require Exporter; -@ISA = qw(Exporter); +################################################################################ +# +# Export +# +use base qw(Exporter); @EXPORT = qw(html_thread); -################################ -# sub html_thread +### html_thread () ############################################################# +# +# create HTML string +# +# Params: $msg - Reference of Message-Array +# (Output of parse_single_thread in Posting::_lib) +# $template - Template object +# $par - Hash Reference (see doc for details) +# +# Return: Reference of HTML String # -# Thread erzeugen -################################ - sub html_thread ($$$) { my ($msg, $template, $par) = @_; @@ -49,45 +61,73 @@ sub html_thread ($$$) { my $oldlevel=0; my @indexes; - # ganzer Thread + # whole thread if ($par -> {start} == -1) { $_ = $msg -> [0]; @indexes = (1..$_ -> {answers}); if ($_ -> {answers}) { - $html = '
' - .${$template -> scrap ($temp -> {(length $_ -> {cat})?'start':'startNC'}, - {$temp -> {name} => $_ -> {name}, - $temp -> {subject} => $_ -> {subject}, - $temp -> {cat} => $_ -> {cat}, - $temp -> {time} => plain(short_hr_time ($_ -> {time})), - $temp -> {link} => query_string({$t => $tid, $p => $_ -> {mid}})}, - $par -> {addParam})} - .'
';} + $html = + '
'. + + ${$template -> scrap ( + $temp -> { + length $_ -> {cat} + ? 'start' + : 'startNC' + }, + { $temp -> {name} => $_ -> {name}, + $temp -> {subject} => $_ -> {subject}, + $temp -> {cat} => $_ -> {cat}, + $temp -> {time} => plain(short_hr_time ($_ -> {time})), + $temp -> {link} => query_string({$t => $tid, $p => $_ -> {mid}}), + $temp -> {tid} => $tid, + $temp -> {mid} => $_ -> {mid}, + }, + $par -> {addParam} + )} . + '
'; + } else { - $html = '
' - .${$template -> scrap ($temp -> {(length $_ -> {cat})?'start':'startNC'}, - {$temp -> {name} => $_ -> {name}, - $temp -> {subject} => $_ -> {subject}, - $temp -> {cat} => $_ -> {cat}, - $temp -> {time} => plain(short_hr_time ($_ -> {time})), - $temp -> {link} => query_string({$t => $tid, $p => $_ -> {mid}})}, - $par -> {addParam})} - .'
'; - - return \$html;}} - - # Teilthread + $html = + '
'. + ${$template -> scrap ( + $temp -> { + length $_ -> {cat} + ? 'start' + : 'startNC' + }, + { $temp -> {name} => $_ -> {name}, + $temp -> {subject} => $_ -> {subject}, + $temp -> {cat} => $_ -> {cat}, + $temp -> {time} => plain(short_hr_time ($_ -> {time})), + $temp -> {link} => query_string({$t => $tid, $p => $_ -> {mid}}), + $temp -> {tid} => $tid, + $temp -> {mid} => $_ -> {mid}, + }, + $par -> {addParam} + )}. + '
'; + + return \$html; + } + } + + # only subthread + # else { my $start=-1; for (@$msg) {$start++; last if ($_ -> {mid} == $par -> {start});} my $end = $start + $msg -> [$start] -> {answers}; $start++; @indexes = ($start..$end); - $oldlevel = $startlevel = $msg -> [$start] -> {level};} + $oldlevel = $startlevel = $msg -> [$start] -> {level} + if (defined $msg -> [$start] -> {level}); + } - # HTML erzeugen + # create HTML + # for (@$msg[@indexes]) { if ($_ -> {level} < $oldlevel) { @@ -96,41 +136,56 @@ sub html_thread ($$$) { $oldlevel = $_ -> {level}; if ($_ -> {answers}) { - $html.='
' - .${$template -> scrap ($temp -> {(length $_ -> {cat})?'line':'lineNC'}, - {$temp -> {name} => $_ -> {name}, - $temp -> {subject} => $_ -> {subject}, - $temp -> {cat} => $_ -> {cat}, - $temp -> {time} => plain(short_hr_time ($_ -> {time})), - $temp -> {link} => query_string({$t => $tid, $p => $_ -> {mid}})}, - $par -> {addParam})} - .'
'; + $html.= + '
'. + ${$template -> scrap ( + $temp -> { + length $_ -> {cat} + ? 'line' + : 'lineNC' + }, + { $temp -> {name} => $_ -> {name}, + $temp -> {subject} => $_ -> {subject}, + $temp -> {cat} => $_ -> {cat}, + $temp -> {time} => plain(short_hr_time ($_ -> {time})), + $temp -> {link} => query_string({$t => $tid, $p => $_ -> {mid}}), + $temp -> {tid} => $tid, + $temp -> {mid} => $_ -> {mid}, + }, + $par -> {addParam} + )}. + '
'; } else { - $html.='
' - .${$template -> scrap ($temp -> {(length $_ -> {cat})?'line':'lineNC'}, - {$temp -> {name} => $_ -> {name}, - $temp -> {subject} => $_ -> {subject}, - $temp -> {cat} => $_ -> {cat}, - $temp -> {time} => plain(short_hr_time ($_ -> {time})), - $temp -> {link} => query_string({$t => $tid, $p => $_ -> {mid}})}, - $par -> {addParam})} - .'
'; + $html.= + '
'. + ${$template -> scrap ( + $temp -> { + length $_ -> {cat} + ? 'line' + : 'lineNC' + }, + { $temp -> {name} => $_ -> {name}, + $temp -> {subject} => $_ -> {subject}, + $temp -> {cat} => $_ -> {cat}, + $temp -> {time} => plain(short_hr_time ($_ -> {time})), + $temp -> {link} => query_string({$t => $tid, $p => $_ -> {mid}}), + $temp -> {tid} => $tid, + $temp -> {mid} => $_ -> {mid}, + }, + $par -> {addParam} + )}. + '
'; } } - $html.='
' x ($oldlevel - $startlevel); \$html; } -# ==================================================== -# Modulinitialisierung -# ==================================================== - -# making require happy +# keep 'require' happy 1; -# ==================================================== -# end of Template::_thread -# ==================================================== \ No newline at end of file +# +# +### end of Template::_thread ################################################### \ No newline at end of file