kills Geschrieben 26. Mai 2004 Teilen Geschrieben 26. Mai 2004 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 27. Mai 2004 Teilen Geschrieben 27. Mai 2004 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 27. Mai 2004 Autor Teilen Geschrieben 27. Mai 2004 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 27. Mai 2004 Teilen Geschrieben 27. Mai 2004 http://smarty.php.net/manual/de/language.custom.functions.php#language.function.assign {assign name="neueVariable" value=$obj->getChildItems() } [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 27. Mai 2004 Autor Teilen Geschrieben 27. Mai 2004 http://smarty.php.net/manual/de/language.custom.functions.php#language.function.assign {assign name="neueVariable" value=$obj->getChildItems() } [/PHP] gut zu wissen, das man das assign tag auch in den templates verwenden kann könntest du mir nen kurzen auszug geben, wie du meinst, das der code meinen anforderungen entspricht? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 28. Mai 2004 Autor Teilen Geschrieben 28. Mai 2004 <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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 2. Juni 2004 Autor Teilen Geschrieben 2. Juni 2004 Hallo zusammen, wenn jemand nochmal auf diese Problem stoßen sollte, die Lösung fand ich durch einbinden eines Plugins das "Rekusionen" ermöglicht. näheres siehe: http://www.phpinsider.com/smarty-forum/viewtopic.php?t=291 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.