From c0abdaa624bce372518dfd30fd1a9b68d5251f72 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Mon, 12 Nov 2012 15:48:22 +0100 Subject: [PATCH] =?utf8?q?Druckvorlagen:=20<%if%>-Block=20auf=20leere=20Ar?= =?utf8?q?rays=20testen=20lassen=20k=C3=B6nnen?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- SL/Template/Simple.pm | 1 + doc/dokumentation.xml | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/SL/Template/Simple.pm b/SL/Template/Simple.pm index d29ec8f5c..926ef1f7f 100644 --- a/SL/Template/Simple.pm +++ b/SL/Template/Simple.pm @@ -197,6 +197,7 @@ sub _parse_block_if { } my $value = $self->_get_loop_variable($var, 0, @indices); + $value = scalar(@{ $value }) if (ref($value) || '') eq 'ARRAY'; my $hit = 0; if ($operator_type) { diff --git a/doc/dokumentation.xml b/doc/dokumentation.xml index a2a3c8ae2..fbc4f4203 100644 --- a/doc/dokumentation.xml +++ b/doc/dokumentation.xml @@ -1401,7 +1401,7 @@ Administration -> Benutzerverwaltung -> [ein Benutzer] f-tex Die Installation - Vorlagenverzeichnis mit Option f-tex anlegen, siehe: + Vorlagenverzeichnis mit Option f-tex anlegen, siehe: Das Vorlagensystem funktioniert jetzt schon, hat allerdings noch einen Beispiel Briefkopf @@ -4412,6 +4412,18 @@ Administration -> Benutzerverwaltung -> [ein Benutzer] und dem "end" werden nur ausgegeben, wenn die Variable variablenname gesetzt und ungleich 0 ist. + Handelt es sich bei der benannten Variable um ein Array, also um einen Variablennamen, über den man mit + <%foreach variablenname%> iteriert, so wird mit diesem Konstrukt darauf getestet, ob das Array Elemente + enthält. Somit würde im folgenden Beispiel nur dann eine Liste von Zahlungseingängen samt ihrer Überschrift "Zahlungseingänge" + ausgegeben, wenn tatsächlich welche getätigt wurden: + + <%if payment%> +Zahlungseingänge: + <%foreach payment%> + Am <%paymentdate%>: <%payment%> € + <%end foreach%> +<%end if%> + Die Bedingung kann auch negiert werden, indem das Wort not nach dem if verwendet wird. Beispiel: -- 2.20.1