[php] Klasa typu Template i zagniezdzanie loopa

0

Witam

Bawie sie od jakiejs 21:00 dnia dzisiejszego ;) klasa Simple template pareser autorstwa naszego kolegi Piechnata. Konkretna sprawa, chociaz w moim wypadku potrzebuje czegos duzo wiecej a mianowicie zagniezdzania loopa :D. Przyklad:

Juz kombinowalem ile wlezie, ale dochodze zawsze do omementu, gdy szablon dostosowuje sie do kodu, a kod do szablonu czyli wychodzi totalne zaprzeczenie MVC :D.

Ma ktos chuda, ale na tyle wydajna klase, zeby to obsluzyc? Bede wdzieczny.

0

Ja napisałem taką małą funkcyjkę, która PRAWIE potrafi coś takiego obsłużyć. To znaczy ma tą wadę, że każdy "środek" pętli czy warunku jest w osobnym pliku TPL. Może to kiedyś ulepszę, ale chwilowo brak pomysłów :) Jak chcesz coś takiego, to daj znać na maila albo coś.

0
Adam.Pilorz napisał(a)

Ja napisałem taką małą funkcyjkę, która PRAWIE potrafi coś takiego obsłużyć.

Mozesz to jakos bardziej okreslic? ;) Jesli rozni sie wylacznie tym, ze srodek petli ma w osobnym pliku, to nie wiele mi to pomoc moze :(.

To, co chce osiagnac jest niby proste - menu przypomina drzewo, w ktorym powtarzaja sie glowne kategorie wedle schematu, a wewnatrz nich - subkategorie, tylko ze nie znana jest ich liczba, stad musi byc to drugi loop...

0

Haha!
http://4programmers.net/Forum/viewtopic.php?id=71229
Też tego potrzebuję [green]

0

roSzi: nie całkiem mnie zrozumiałeś. W moim systemie możesz mieć nawet nieskończenie wiele zagnieżdżeń (plik może odwoływać się sam do siebie, tylko z jakimś warunkiem). Tylko tyle, że właśnie te poszczególne kawałki są w różnych plikach. Mam na przykłąd coś takiego:

index.tpl:
Jakiś tam początek strony
{TEMPLATE-LOOP('ilosc','plik.tpl')}
Jakaś tam dalsza część stronki

plik.tpl:
Powiedzmy sobie początek elementu menu
{TEMPLATE-IF(warunek czy dany element ma podmenu,'plik2.tpl')}
{TEMPLATE-WRITE(DATA('Nazwa'))}
Powiedzmy sobie koniec elementu menu

plik2.tpl:
{TEMPLATE-LOOP('ilosc_sub','plik.tpl')}

To tak z pamięci, ale zgrubsza powinno osiągnąć co trzeba...

1 użytkowników online, w tym zalogowanych: 0, gości: 1