Thread HTML::Template Problem: Wie verschachtelte Listen darstellen? (12 answers)
Opened by Cremator at 2006-01-26 16:31

Cremator
 2006-01-26 18:06
#6793 #6793
User since
2003-11-26
97 Artikel
BenutzerIn
[default_avatar]
Leider hab ich keine Vorgabe fuer einen Maximalwert..

Aber ich glaub ich hab eine Loesung... Template-Rekursion in Iteration umwandeln und Datenstruktur anpassen. Statt

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$var = [
{
'cat_id' => 1,
'cat_name' => 'Foo',
'cat_sub' => {
'cat_id' => 2,
'cat_name' => 'Bar',
'cat_sub' => []
}
},
{
'cat_id' => 3,
'cat_name' => 'Buz',
'cat_sub' => []
}
]

einfach
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$var = [
{
'cat_id' => 1,
'cat_name' => 'Foo',
'inc' => undef,
'dec' => undef,
},
{
'cat_id' => undef,
'cat_name' => undef,
'inc' => 1,
'dec' => undef,
},
{
'cat_id' => 2,
'cat_name' => 'Bar',
'inc' => undef,
'dec' => undef,
},
{
'cat_id' => undef,
'cat_name' => undef,
'inc' => undef,
'dec' => 1,
},
{
'cat_id' => 3,
'cat_name' => 'Buz',
'inc' => undef,
'dec' => undef,
},
]

Und als Template dann:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<ul>
<TMPL_LOOP NAME="catLoop">

<TMPL_IF NAME="inc">
<ul>
</TMPL_IF>

<TMPL_IF NAME="cat_id">
<li><input type="checkbox" name="cat" id="c<TMPL_VAR NAME="cat_id">" value="<TMPL_VAR NAME="cat_id">" />
<label for="c<TMPL_VAR NAME="cat_id">"><TMPL_VAR NAME="cat_name"></label>
</TMPL_IF>

<TMPL_IF NAME="dec">
</ul></li>
<TMPL_ELSE>
</li>
</TMPL_IF>

</TMPL_LOOP>
</ul>


Edit: Typos und Template angepasst.\n\n

<!--EDIT|Cremator|1138301737-->

View full thread HTML::Template Problem: Wie verschachtelte Listen darstellen?