Author Topic: Problem mit Listenausgabe in Template  (Read 746 times)

0 Members and 1 Guest are viewing this topic.

Offline DanielK

  • Newbie
  • *
  • Posts: 3
Problem mit Listenausgabe in Template
on: Mon, 27. April 2009 - 19:09:45
Hallo!

Ich probiere hier gerade einen kleinen Onlineshop zu schreiben.
Dafür brauche ich eine Kategorienübersicht ähnlich wie auf dieser Seite.
Die Anzeige soll dann etwa so aussehen:

Code: [Select]
<ul>
<li stile="font-weight:bold;>Kategoriename_1</li>
<li>Unterkategorie_1.1</li>
<li>Unterkategorie_1.2</li>
</ul>

<ul>
<li stile="font-weight:bold;>Kategoriename_2</li>
<li>Unterkategorie_2.1</li>
<li>Unterkategorie_2.2</li>
</ul>

Also für jede Kategorie eine eigene Liste. Mit reinem php und html funktioniert das auch einwandfrei.
Probleme hab ich jetzt bei der Übergabe ins Template.

Der php-Teil sieht so aus:

Code: [Select]
DB Abfrage..

$cat_overview = array();
while( $row = mysql_fetch_object( $res ) )  {
   
    array_push($cat_overview, array(
    list_item => $row->name
     )
     );
}

$tmpl->setloop(overview, $cat_overview);
$tmpl->pparse();

Die Ausgabe mit print_r lautet:
Code: [Select]
Array
(
    [0] => Array
        (
            [list_item] => Fernsehgeräte
        )

    [1] => Array
        (
            [list_item] => Flachbildschirm
        )
)
Array
(
    [0] => Array
        (
            [list_item] => Tragbare Elektronik
        )

    [1] => Array
        (
            [list_item] => MP3 PLAYER
        )
)

Und das Template sieht so aus:

Code: [Select]
<tmpl_loop name=overview>
<tmpl_if name=__FIRST__><ul><li style="font-weight:bold;">{tmpl_var name=list_item}</li>
<tmpl_else><li>{tmpl_var name=list_item}</li></tmpl_if>
<tmpl_if name=__LAST__></ul><tmpl_else></tmpl_if>
</tmpl_loop>

(Bitte nicht gleich steinigen, ich hab heute erst mit dem vlib angefangen..)
Die Ausgabe ist dann richtig, allerdings wird immer nur ein Datensatz angezeigt (derZweite). Vermutlich wird der Erste dann irgendwie überschrieben.
Ich blicke da grade nicht mehr durch. Vermutlich hab ich entweder das array falsch aufgebaut oder das Template. Bei den Beispielen bin ich mir jetzt nicht wirklich sicher, welches da am besten auf mich zutrifft..

Ich wäre für jede Hilfe Dankbar!

Offline DanielK

  • Newbie
  • *
  • Posts: 3
Re: Problem mit Listenausgabe in Template
Reply #1 on: Tue, 28. April 2009 - 20:25:48
Hallo, Sorry Problem gelöst. Ich hatte das array ganz falsch aufgebaut, genau wie das Template.
Letzteres sieht jetzt so aus:

Code: [Select]
<tmpl_loop name=outer>
<ul>
    <tmpl_loop name=inner>
        <li<tmpl_if name=__FIRST__> style="font-weight:bold;"<tmpl_else></tmpl_if>>{tmpl_var name=list_item}</li>
    </tmpl_loop>
</ul>
</tmpl_loop>

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
Re: Problem mit Listenausgabe in Template
Reply #2 on: Wed, 29. April 2009 - 15:13:18
Bitte noch
Code: [Select]
<tmpl_if name=__FIRST__> style="font-weight:bold;"<tmpl_else></tmpl_if>ersetzen durch
Code: [Select]
<tmpl_if name=__FIRST__> style="font-weight:bold;"</tmpl_if>denn ein leerer TMPL_ELSE macht keinen Sinn.

Gruß
Claus

Offline DanielK

  • Newbie
  • *
  • Posts: 3
Re: Problem mit Listenausgabe in Template
Reply #3 on: Thu, 30. April 2009 - 20:22:37
Da haste Recht.. Danke!

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
Re: Problem mit Listenausgabe in Template
Reply #4 on: Mon, 04. May 2009 - 12:09:38
Da haste Recht.. Danke!

Gern geschehen! :)
Claus