- Sicherheit bringen. </p>
- Z.B. das vom Benutzer eingestellte Zahlenformat, bevor man Berechnung in einem
- bestimmten Format durchführt (SL/Form.pm Zeile 3552, Stand version 2.7beta), um
- dies hinterher wieder auf den richtigen Wert zu setzen:
- <pre class="programlisting">
- my $saved_numberformat = $::myconfig{numberformat};
- $::myconfig{numberformat} = $numberformat;
- # (...) div Berechnungen
- $::myconfig{numberformat} = $saved_numberformat;
- </pre><p>Das Objekt der Klasse Form hat leider im Moment noch viele
- zentrale Funktionen die vom internen Zustand abhängen, deshalb
- bitte nie einfach zerstören oder überschreiben (zumindestens nicht kurz
- vor einem Release oder in Absprache über bspw. die devel-Liste ;-).
- Es geht ziemlich sicher etwas kaputt.</p><p>
- <code class="varname">$::form</code> ist gleichzeitig der Standard Scope
- in den <span class="productname">Template::Toolkit</span>™ Templates
- außerhalb der Controller: der Ausdruck <code class="function">[% var
- %]</code> greift auf <code class="varname">$::form->{var}</code> zu.
- Unter Controllern ist der Standard Scope anders, da lautet der
- Zugriff <code class="function">[% FORM.var %]</code>. In Druckvorlagen sind
- normale Variablen ebenfall im <code class="varname">$::form</code> Scope, d.h.
- <code class="function"><%var%></code> zeigt auf
- <code class="varname">$::form->{var}</code>.
- Nochmal von der anderen Seite erläutert, innerhalb von (Web-)Templates sieht
- man häufiger solche Konstrukte:
- </p><pre class="programlisting">
- [%- IF business %]
- # (... Zeig die Auswahlliste Kunden-/Lieferantentyp an
- [%- END %]
- </pre><p>
- Entweder wird hier dann $::form->{business} ausgewertet oder aber der Funktion
- <code class="function">$form->parse_html_template</code> wird explizit noch ein zusätzlicher Hash
- übergeben, der dann auch in den (Web-)Templates zu Verfügung steht, bspw. so:
- <code class="function">$form->parse_html_template("is/form_header", \%TMPL_VAR);</code>
-
- Innerhalb von Schleifen wird
- <code class="varname">$::form->{TEMPLATE_ARRAYS}{var}[$index]</code>
- bevorzugt, wenn vorhanden.</p>
- Zum Beispiel in SL/DO.pm welche über alle Positionen eines Lieferscheins
- in Schleife läuft:
- <pre class="programlisting">
- for $i (1 .. $form->{rowcount}) {
- (...)
- push @{ $form->{TEMPLATE_ARRAYS}{runningnumber} }, $position;
- push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"};
- push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"};
- </pre></div><div class="sect3" title="4.1.3.2. %::myconfig"><div class="titlepage"><div><div><h4 class="title"><a name="d0e4529"></a>4.1.3.2. %::myconfig</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Das einzige Hash unter den globalen Variablen</p></li><li class="listitem"><p>Wird spätestens benötigt wenn auf die Datenbank
+ Sicherheit bringen. </p><p>
+ Z.B. das vom Benutzer eingestellte Zahlenformat, bevor man Berechnung in einem
+ bestimmten Format durchführt (SL/Form.pm Zeile 3552, Stand version 2.7beta), um
+ dies hinterher wieder auf den richtigen Wert zu setzen:
+ </p><pre class="programlisting"> my $saved_numberformat = $::myconfig{numberformat};
+ $::myconfig{numberformat} = $numberformat;
+ # (...) div Berechnungen
+ $::myconfig{numberformat} = $saved_numberformat;</pre><p>
+ Das Objekt der Klasse Form hat leider im Moment noch viele zentrale Funktionen die vom internen Zustand abhängen, deshalb bitte
+ nie einfach zerstören oder überschreiben (zumindestens nicht kurz vor einem Release oder in Absprache über bspw. die devel-Liste
+ ;-). Es geht ziemlich sicher etwas kaputt.
+ </p><p>
+
+ <code class="varname">$::form</code> ist gleichzeitig der Standard Scope in den <span class="productname">Template::Toolkit</span>™ Templates
+ außerhalb der Controller: der Ausdruck <code class="function">[% var %]</code> greift auf <code class="varname">$::form->{var}</code> zu. Unter
+ Controllern ist der Standard Scope anders, da lautet der Zugriff <code class="function">[% FORM.var %]</code>. In Druckvorlagen sind
+ normale Variablen ebenfall im <code class="varname">$::form</code> Scope, d.h. <code class="function"><%var%></code> zeigt auf
+ <code class="varname">$::form->{var}</code>. Nochmal von der anderen Seite erläutert, innerhalb von (Web-)Templates sieht man häufiger
+ solche Konstrukte:
+ </p><pre class="programlisting">[%- IF business %]
+# (... Zeig die Auswahlliste Kunden-/Lieferantentyp an)
+[%- END %]</pre><p>
+ Entweder wird hier dann $::form->{business} ausgewertet oder aber der Funktion <code class="function">$form->parse_html_template</code>
+ wird explizit noch ein zusätzlicher Hash übergeben, der dann auch in den (Web-)Templates zu Verfügung steht, bspw. so:
+ </p><pre class="programlisting">$form->parse_html_template("is/form_header", \%TMPL_VAR);</pre><p>
+ Innerhalb von Schleifen wird <code class="varname">$::form->{TEMPLATE_ARRAYS}{var}[$index]</code> bevorzugt, wenn vorhanden. Ein
+ Beispiel findet sich in SL/DO.pm, welches über alle Positionen eines Lieferscheins in Schleife läuft:
+ </p><pre class="programlisting">for $i (1 .. $form->{rowcount}) {
+ # ...
+ push @{ $form->{TEMPLATE_ARRAYS}{runningnumber} }, $position;
+ push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"};
+ push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"};
+ # ...
+}</pre></div><div class="sect3" title="4.1.3.2. %::myconfig"><div class="titlepage"><div><div><h4 class="title"><a name="d0e4531"></a>4.1.3.2. %::myconfig</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Das einzige Hash unter den globalen Variablen</p></li><li class="listitem"><p>Wird spätestens benötigt wenn auf die Datenbank