From: Moritz Bunkus Date: Mon, 12 Nov 2012 14:48:22 +0000 (+0100) Subject: Druckvorlagen: <%if%>-Block auf leere Arrays testen lassen können X-Git-Tag: release-3.0.0beta1~4^2~1 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=c0abdaa624bce372518dfd30fd1a9b68d5251f72;p=kivitendo-erp.git Druckvorlagen: <%if%>-Block auf leere Arrays testen lassen können --- 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: