Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich habe hier eine object struktur, die ich von einem menu abgeleitet habe.

also im sinne von:


Parent => Produkte

Child => Computer

Child => Stereoanlage

Child => Fernseher

nun habe ich alle meine Produkte in einem Wunderschönen Array zusammengepackt. Alle meine Menupunkte sind Objecte die die Methode getParent() und getChild() enthalten.

Nun möchte ich dieses Array nur noch an mein Template übergeben, und dieses Soll mir anhand des Arrays eine dazu passende Tabelle erstellen.

Mein ansatz:


<table cellspacing="0" cellpadding="0" width=90%>
{ foreach from=$aoMenuStructure item=oMenuItem }
<tr>
<td>{ $oMenuItem->sLabel }</td>
<td>{ $oMenuItem->sLink }</td>
</tr>

{ if ($oMenuItem->hasChildItems())}
{ foreach from=$oMenuItem->getChildItems() item=oChildItem }
<tr>
<td style="padding-left: { $oChildItem->iLevel*20 }px;">{ $oChildItem->sLabel }</td>
<td>{ $oChildItem->sLink }</td>
</tr>
{ /foreach }
{ /if }

{ /foreach }
</table>
[/PHP]

Nur wenn ich das nun so lasse, zeigt er mir nur die ersten beiden Ebenen an Elementen auf.

Leider habe ich keine Möglichkeit gesehen, in Smarty z.B. anstatt von

[PHP]
{ if ($oMenuItem->hasChildItems())}

in etwa sowas zu bauen:


{ while ($oMenuItem->hasChildItems())}
{ /while }
[/PHP]

weiss jmd was ich meine und ob ich das so verwirklichen könnte?

Geschrieben

Probiere mal vor der zweiten foreach-schleife das ergebnis von getChildItems() in einer variablen zu speichern un diese dann in der schleife zu durchlaufen.

wie sieht das ergebnis aus?

Geschrieben
Probiere mal vor der zweiten foreach-schleife das ergebnis von getChildItems() in einer variablen zu speichern un diese dann in der schleife zu durchlaufen.

wie sieht das ergebnis aus?

hm das Problem ist ja, das ich eine unbestimmte anzahl an childs in meinen elementen drinne hab ( von der Tiefe her gesehen, da ja jedes child wiederum ein child haben kann usw.)

wie kann ich in smary eine variablenzuweisung durchführen?

Geschrieben


<table cellspacing="0" cellpadding="0" width=90%>
{ foreach from=$aoMenuStructure item=oMenuItem }
<tr>
<td>{ $oMenuItem->sLabel }</td>
<td>{ $oMenuItem->sLink }</td>
</tr>

{ if ($oMenuItem->hasChildItems())}
{ assign var=aoMenuStructure[] value=$oMenuItem->getChildItems() }
{ /if }

{ /foreach }
</table>
[/PHP]

ich habs jetzt so, aber irgendwie fehlt noch der letzte schliff.

Es geht nicht :(

Wo könnte mein denkfehler sein.

ich muss irgendwie hinbekommen, dass ich den punkt den er als nächstes aus dem aoMenuStructure Array "holt", das child ist das ich unten zuweise

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...