voor Smarty maak ik gebruik van een standaard index.tpl die er gewoon standaard uitziet, zoiets:

<html>

<head>
</head>

<body>
{$content}
</body

</html>

Daarin staat {$content}. Nu is deze content natuurlijk voor elke pagina anders en heeft elke pagina daarvoor een andere template.

Wat is de beste manier op je pagina gewoon op het scherm te krijgen?

je kan in je index.tpl natuurlijk met if else gaan werken en aan de hand daarvan een tpl includen. maar zijn hier geen betere oplossingen voor?
voor elke pagina een complete template maken lijkt me ook niet efficient omdat een groot deel hetzelfde zal zijn

Je pagina in onderdelen uitbouwen

Header in een tpl, footer in een tpl, menu in een tpl enz...
is ook een mogelijkheid, maar als er nou een onderdeel bij moet op alle pagina's ben je op die manier wel even bezig

ik denk dat ik toch maar voor het dynamisch includen van een template ga
Ik gebruik 1 template, index.tpl.php. In deze template staan de header en footer en alle zaken die altijd terugkomen. Tevens staat hier in grote lijnen beschreven waar welk datatype (bv. formulieren) moet komen te staan. Heb ik op een bepaalde pagina 1 formulier, komt er 1 formulier, zijn er 2 formulieren, worden er keurig 2 formulieren onder elkaar gezet. Op deze manier is de hele layout gegroepeerd.

In theorie is het dus ook mogelijk om alle mogelijke data in 1x op in webpagina weer te geven.

De onderliggende scripts bepalen wat wel en wat niet wordt aangemaakt en dus wordt weergegeven.

Op deze manier hoef ik nooit 'alle' templates aan te passen wanneer ik bepaalde data wil weergeven. Ik hoef alleen maar in de logica op te geven dat deze data ook naar de template moet worden gestuurd.
maar op die manier kan je nooit een zeer gedetailleerde pagina maken, lijkt mij?
Waarom niet? De meeste websites bestaan, wat layout betreft, slechts uit een paar pagina's. 1 voor de home-page en soms dan nog 1 of 2 voor detailpagina's.

Alle data die in het hele systeem bestaat, kun je verdelen in verschillende soorten data. Denk bv. bij een adresboek aan namen, adressen, telefoonnummers, etc. etc. Het maakt dus niet uit hoeveel adressen er zijn, ze worden allemaal op dezelfde manier weergegeven, het is dezelfde soort data. Al deze soorten data, ga jij voorzien van een fraaie layout. Je geeft de layer waarin dit moet komen de naam van de juiste classe en klaar ben je. Je parsed deze template en je zorgt er voor dat deze in de template index.tpl.php wordt gezet. Deze komt automatisch op de juiste plek terecht, namelijk daar waar jij (bv.) adressen weergeeft.

Wil je dan later het datatype 'adres' van een andere layout voorzien, hoef je dat slechts 1x te doen.

Op deze manier bouw je snel een systeem en worden gegevens consequent op dezelfde manier weergegeven. Dat maakt het voor de bezoeker wel zo prettig.
ok, je gebruikt dus voor elk datatype een apart tpl bestand en deze include in weer in index.tpl waar je wil
Dat is een mogelijkheid, datatypes die vaak terugkomen staan in index.tpl.php. Maar dat zijn allemaal keuzes die je zelf maakt. Het is niet 'goed' of 'fout' om het anders te doen. De ene aanpak kan alleen wel handiger zijn dan de andere. Dit kun je het beste zelf uitvogelen, van je eigen fouten leer je het meeste.

Reageren