login  Naam:   Wachtwoord: 
Registreer je!
 Forum

TemplatePower

Offline Fenrir - 18/01/2005 20:47 (laatste wijziging 18/01/2005 21:11)
Avatar van FenrirPHP expert Ik ben nu een tijdje bezig met TemplatePower, en het bevalt goed.
Maar ik weet niet hoe ik dynamisch-geneste blokken kan maken.

Een voorbeeld:

Ik wil met php een soort windows-verkenner maken.
Hierbij wil ik dus mappen en submappen en subsubmappen, etc laten zien.

dit is de html:
  1. <ul>
  2. <li>Map1
  3. <ul>
  4. <li>subMap1
  5. <ul>
  6. <li>subsubMap1</li>
  7. <li>subsubMap2</li>
  8. <li>subsubMap3</li>
  9. </ul>
  10. </li>
  11. <li>subMap2</li>
  12. <li>subMap3</li>
  13. </ul>
  14. </li>
  15. <li>Map2
  16. <ul>
  17. <li>subMap1</li>
  18. <li>subMap2</li>
  19. <li>subMap3</li>
  20. </ul>
  21. </li>
  22. <li>Map3</li>
  23. <li>Map4</li>
  24. </ul>


Hoe kan in met TemplatPower zoiets doen? Zo ja, hoe? Of kan het niet?

mvd,
Fenrir

p.s. Werken er mensen met TemplatePower? Wat vinden jullie ervan?

7 antwoorden

Gesponsorde links
Offline Thomas - 18/01/2005 21:17
Avatar van Thomas Moderator haaai o/ (ik werk ook met TemplatePower)
Mja euh... hoe lang gaat dat "etcetera" door (hoe veel submappen kunnen er zijn), want die dynamische blokken moet wel van tevoren in je template inzetten, je kan volgens mij niet (of iig niet gemakkelijk) je templates "variabel" maken. Anders zul je toch aan een JavaScript-achtige oplossing moeten denken denk ik... Ik weet niet of TemplatePower ondersteuning biedt aan dit soort dynamische 'boomstructuren' (ik denk het haast niet).
Offline Fenrir - 18/01/2005 21:24 (laatste wijziging 18/01/2005 21:25)
Avatar van Fenrir PHP expert Het was eigenlijk de bedoeling dat het oneindig doorgaat.

Maar het kan dus met deze code? (voor 2 sub-levels):

Let even niet op de [ ], dat heb ik in TemplatePower veranderd omdat dat korter is.
  1. [START BLOCK : DirStructuur]
  2. <ul>
  3. [START BLOCK : Dir]
  4. <li>Map1
  5. [START BLOCK : SubDirs]
  6. <ul>
  7. [START BLOCK : SubDir]
  8. <li>subMap1
  9. [START BLOCK : SubSubDirs]
  10. <ul>
  11. [START BLOCK : SubSubDir]
  12. <li>[DirName]</li>
  13. [END BLOCK : SubSubDir]
  14. </ul>
  15. [END BLOCK : SubSubDirs]
  16. </li>
  17. [END BLOCK : SubDir]
  18. </ul>
  19. [END BLOCK : SubDirs]
  20. </li>
  21. [END BLOCK : Dir]
  22. </ul>
  23. [END BLOCK : DirStructuur]

?
Of kan het ook op een kortere manier?
Offline EclipX - 18/01/2005 22:21
Avatar van EclipX Lid Wat is templatepower eigenlijK? 
Offline Maarten - 18/01/2005 22:22
Avatar van Maarten Erelid Een andere benaming voor "Zie tutorials"...
http://www.site...&id=58
Offline Thomas - 18/01/2005 22:58 (laatste wijziging 18/01/2005 22:59)
Avatar van Thomas Moderator Hmm... mja, zo kan het Fenrir... voor 2 niveaus diep.

Ik zou voor deze verkenner toch een beetje smokkelen, door dat <ul> en <li> gedoe te verplaatsen naar PHP, dat je daar een soort van recursieve functie of iets hebt die zo'n boom genereert, en dat je dan die hele boom in een PHP-variabele kwakt (met HTML en al), en deze maar assigned aan een (enkele) template-variabele (bijvoorbeeld {DIR_TREE} ofzo, ik noem maar wat).
Ik wéét dat dit eigenlijk niet de bedoeling is van TemplatePower, maar omdat TemplatePower volgens mij geen ondersteuning biedt voor zulke dynamische structuren, is het een beetje een kwestie van improviseren .
Offline twopeak - 19/01/2005 07:24 (laatste wijziging 19/01/2005 07:27)
Avatar van twopeak Gouden medaille

PHP ver gevorderde
kun je niet op een of andere manier een blok maken, en telkens je een nieuwe diepte hebt, voeg je dat blok in (en in dat blok zit dan opnieuw een herhaling, die zichzelf inroept bij itteratie)

Ik gebruik smarty, maar ik zo zo iets proberen:

blok1
  1. {blok}
  2. {if waarde in blok is een subarray}
  3. {include blok2)
  4. {/if}
  5. - bestanden
  6. {/blok}
blok2:
  1. {blok}
  2. {if waarde in blok is een subarray}
  3. {include blok2}
  4. {/if}
  5. - bestanden
  6. {/blok}


ik weet niet goed hoe een template engine hierop zou reageren. in principe kan PHP dit wel (ik heb een scriptje die een array maakt van een dir structuur met onbekende diepte)

heb net die tut gelezen en je kunt mischien iets doen met getOutputContent() samen met de methode van FangorN?
Offline Thomas - 19/01/2005 09:04 (laatste wijziging 19/01/2005 10:48)
Avatar van Thomas Moderator Je kan niet twee keer een blok gebruiken in een template met dezelfde naam - ik denk dat dit probleem er uiteindelijk voor zal zorgen dat zo'n boomstructuur niet gaat werken in templatepower zoals Fenrir voorstelt.
Je moet je ook afvragen hoeveel moeite je moet doen om zo'n dynamische structuur werkend te krijgen in templatepower, en hoe je het eventueel makkelijker (1 template-variabele) kunt oplossen... als ik moest kiezen tussen die twee dan zou ik het wel weten .
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.448s