Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 4dbd40c0

Von Sven Schöling vor etwa 14 Jahren hinzugefügt

  • ID 4dbd40c0260327ca136a5c0f49c67822e837f451
  • Vorgänger 7ed8903a
  • Nachfolger adecbacd

Multibox: Keine Variablen in den rows speichern

2 Gründe:

1. Die rows können Objekte sein, und sobald die entweder nicht auf Hashref
basieren, oder per AUTOLOAD ihre methoden sauber prüfen gibt das Chaos.
2. Wenn keine Daten da reingespeichert werden, bruachen die multiboxes nicht
mit INCLUDE aufgerufen werden, sondern können mit PROCESS den stack clone
umgehen.

Unterschiede anzeigen:

templates/webpages/generic/multibox.html
35 35
[%-
36 36
  name       = (select_name != '' and ! show_text) ? select_name : name
37 37
-%]
38
[%- FOREACH row = DATA %]
39
  [%-
40
       row.id       = row.$id_key     != ''  ? row.$id_key    : $id_sub(row)
41
       row.label    = row.$label_key  != ''  ? row.$label_key
42
                    : $label_sub(row) != ''  ? $label_sub(row)
43
                    :                          row.id
44
       row.selected = default == row.id
45
  -%]
46
[%- END -%]
47 38
[%- IF show_text %]
48 39
<input type="text"
49 40
 [%- IF name     %] name="[%     HTML.escape(name)     %]"[% END -%]
......
67 58
  <option value=""></option>
68 59
  [%- END %]
69 60
  [%- FOREACH row = DATA %]
70
  <option value="[% row.id | html %]"[% IF row.selected %] selected[% END %]>[% HTML.escape(row.label) %]</option>
61
  <option value="[% row.$id_key != '' ? row.$id_key : $id_sub(row) | html %]"[% IF default == (row.$id_key != '' ? row.$id_key : $id_sub(row)) %] selected[% END %]>[%
62
                      row.$label_key  != ''  ? row.$label_key
63
                    : $label_sub(row) != ''  ? $label_sub(row)
64
                    : row.$id_key     != ''  ? row.$id_key
65
                    :                          $id_sub(row) | html %]</option>
71 66
  [%- END %]
72 67
</select>
73 68
[%- END %]

Auch abrufbar als: Unified diff