]> git.p6c8.net - selfforum.git/commitdiff
added methods: joinlist, printscrap and scrap2file
authorndparker <>
Mon, 2 Jul 2001 19:36:47 +0000 (19:36 +0000)
committerndparker <>
Mon, 2 Jul 2001 19:36:47 +0000 (19:36 +0000)
selfforum-cgi/shared/Template.pm

index 4e19eb24d3f21e73bafa8aecb81e573c1d24eabc..50103d2e5d12b468ea390a134a80cc8a5147cd2b 100644 (file)
@@ -4,7 +4,7 @@ package Template;
 #                                                                              #
 # File:        shared/Template.pm                                              #
 #                                                                              #
 #                                                                              #
 # File:        shared/Template.pm                                              #
 #                                                                              #
-# Authors:     AndrĂ© Malo       <nd@o3media.de>, 2001-06-16                    #
+# Authors:     AndrĂ© Malo       <nd@o3media.de>, 2001-07-01                    #
 #              Frank Schoenmann <fs@tower.de>,   2001-06-04                    #
 #                                                                              #
 # Description: Handle XML based HTML-Templates                                 #
 #              Frank Schoenmann <fs@tower.de>,   2001-06-04                    #
 #                                                                              #
 # Description: Handle XML based HTML-Templates                                 #
@@ -107,13 +107,30 @@ sub insert {
 #
 sub list {
   my $self = shift;
 #
 sub list {
   my $self = shift;
-  my $name = shift;
 
   croak "no template file specified"
     unless (defined $self -> {file});
 
 
   croak "no template file specified"
     unless (defined $self -> {file});
 
-#  no warnings 'uninitialized';
-  my $list = join '' => map { ${ $self -> scrap ($name, $_) } } @{ +shift };
+  $self -> joinlist ('' => @_);
+}
+
+### sub joinlist ###############################################################
+#
+# fill in a complete list, using a scrap between the list elements
+#
+# Params: $join  - joining string (or stringref)
+#         $name  - name of the atomic list scrap
+#         $array - list of hashes (same strcuture like the hash used by 'scrap')
+#
+# Return: scalar reference - filled in list
+#
+sub joinlist {
+  my $self = shift;
+  my $join = shift;
+  $join = $$join if ref($join);
+  my $name = shift;
+
+  my $list = join $join => map { ${ $self -> scrap ($name, $_) } } @{ +shift };
 
   # return
   \$list;
 
   # return
   \$list;
@@ -198,6 +215,42 @@ sub scrap {
   \$scrap;
 }
 
   \$scrap;
 }
 
+### printscrap () ##############################################################
+#
+# fill in a template scrap and print to STDOUT
+#
+# Params: $name    name of the scrap
+#         ...
+#         $no_nl   1 - remove newlines (\n)
+#                  0 - do no such thing
+#
+# Return: success code (boolean)
+#
+sub printscrap {
+  my $self = shift;
+
+  $self -> scrap2file (\*STDOUT, @_);
+}
+
+### scrap2file () ##############################################################
+#
+# fill in a template scrap and print to a file handle
+#
+# Params: $handle  filehandle
+#         $name    name of the scrap
+#         ...
+#         $no_nl   1 - remove newlines (\n)
+#                  0 - do no such thing
+#
+# Return: success code (boolean)
+#
+sub scrap2file {
+  my $self = shift;
+  my $handle = shift;
+
+  print $handle ${$self->scrap(@_)};
+}
+
 ### sub parse_file #############################################################
 #
 # read in and parse template file
 ### sub parse_file #############################################################
 #
 # read in and parse template file

patrick-canterino.de