]> git.p6c8.net - selfforum.git/blobdiff - selfforum-cgi/shared/Template/_thread.pm
version checks added, fixed comments
[selfforum.git] / selfforum-cgi / shared / Template / _thread.pm
index 0cea038ab6649bdc92f0bcb0b104eb00e50e6952..c47f28c3ee4a577d8b411b0978cfcdba8eca96fa 100644 (file)
@@ -1,35 +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 <nd@o3media.de>, 2001-06-16                          #
+#                                                                              #
+# Description: convert parsed thread to HTML                                   #
+#                                                                              #
+################################################################################
 
 use strict;
-
-package Template::_thread;
+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 };
 
+################################################################################
+#
+# Export
+#
 use base qw(Exporter);
-@Template::_thread::EXPORT = qw(html_thread);
+@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) = @_;
 
@@ -46,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 = '<dd><dl><dt>'
-              .${$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})}
-              .'</dt>';}
+      $html =
+        '<dd><dl><dt>'.
+
+        ${$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}
+          )} .
+        '</dt>';
+    }
 
     else {
-      $html = '<dd>'
-              .${$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})}
-              .'</dd>';
-
-      return \$html;}}
-
-  # Teilthread
+      $html =
+        '<dd>'.
+        ${$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}
+          )}.
+        '</dd>';
+
+      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) {
@@ -93,41 +136,56 @@ sub html_thread ($$$) {
     $oldlevel = $_ -> {level};
 
     if ($_ -> {answers}) {
-      $html.='<dd><dl><dt>'
-             .${$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})}
-             .'</dt>';
+      $html.=
+        '<dd><dl><dt>'.
+        ${$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}
+          )}.
+        '</dt>';
     }
     else {
-      $html.='<dd>'
-             .${$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})}
-             .'</dd>';
+      $html.=
+        '<dd>'.
+        ${$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}
+          )}.
+        '</dd>';
     }
   }
-
   $html.='</dl></dd>' 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

patrick-canterino.de