X-Git-Url: https://git.p6c8.net/selfforum.git/blobdiff_plain/504ff3f8ee5e277c2b1bf12a7a630098eaf55f0a..ba659b53059e637777865e646f0f2a6fb7f2988e:/selfforum-cgi/shared/Template/_thread.pm diff --git a/selfforum-cgi/shared/Template/_thread.pm b/selfforum-cgi/shared/Template/_thread.pm new file mode 100644 index 0000000..8c3cbbb --- /dev/null +++ b/selfforum-cgi/shared/Template/_thread.pm @@ -0,0 +1,136 @@ +# Template/_thread.pm + +# ==================================================== +# Autor: n.d.p. / 2001-01-11 +# lm : n.d.p. / 2001-01-11 +# ==================================================== +# Funktion: +# HTML-Darstellung eines Threads +# ==================================================== + +use strict; + +package Template::_thread; + +use vars qw(@ISA @EXPORT); + +use Encode::Plain; $Encode::Plain::utf8 = 1; +use Posting::_lib qw(short_hr_time); +use Template; +use Template::_query; + +# ==================================================== +# Funktionsexport +# ==================================================== + +require Exporter; +@ISA = qw(Exporter); +@EXPORT = qw(html_thread); + +################################ +# sub html_thread +# +# Thread erzeugen +################################ + +sub html_thread ($$$) { + my ($msg, $template, $par) = @_; + + return \'' unless @$msg; + + my $temp = $par -> {template}; + my $i = $par -> {cgi} -> {user}; + my $t = $par -> {cgi} -> {thread}; + my $p = $par -> {cgi} -> {posting}; + my $c = $par -> {cgi} -> {command}; + my $tid = $par -> {thread}; + my $html=''; + my $startlevel=0; + my $oldlevel=0; + my @indexes; + + # ganzer 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})} + .'
';} + + 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 + 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 -> [$par -> {start}] -> {level};} + + # HTML erzeugen + for (@$msg[@indexes]) { + + if ($_ -> {level} < $oldlevel) { + $html.='
' x ($oldlevel - $_ -> {level});} + + $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})} + .'
'; + } + 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.='
' x ($oldlevel - $startlevel); + + \$html; +} + +# ==================================================== +# Modulinitialisierung +# ==================================================== + +# making require happy +1; + +# ==================================================== +# end of Template::_thread +# ==================================================== \ No newline at end of file