data driven site. hoe verwijs je naar pagina?

Status
Niet open voor verdere reacties.

fsasfsas

Gebruiker
Lid geworden
11 sep 2006
Berichten
429
Dag

ik ben bezig een site te bouwen en maak deze data-driven. ik heb daar geen ervaring mee maar wil dat graag leren. ik heb veel tutorials over dat onderwerp gevolgd en het lukt me prima om een pagina te maken waarbij de inhoud in de database staat en dus op wens geleverd wordt. Echter, ik kan niet goed vinden hoe je om moet gaan met meerdere pagina's die veel op elkaar lijken, qua opmaak. De tutorials die ik gezien heb beginnen bij de basis en vervolgens staat er over dat punt van meerdere pagina' meestal niet meer dan "gebruik templates". ik weet echter niet goed hoe.
Als voorbeeld: Ik heb een menu met als item "about". Daaronder zitten meerdere submenu's, bijvoorbeeld "what is" en "history". Het eenvoudigst is gewoon een aparte pagina maken voor allebei deze items. Dit zijn dan bv what-is.php en history.php. Zo'n pagina bestaat dan uit lay-out code en gegevens over waar in de database de gewenste info kan worden gehaald. Dit lijkt me een beetje voorbij te gaan aan een van de dingen van een database driven website: ik heb immers nog steeds voor elke keuze een pagina. Weliswaar niet statisch maar veel pagina's bevatten dezelfde opmaakcode dus dat lijkt me nog een behoorlijke redundantie. Ik had bedacht dat dat met een GET op te lossen is als volgt: in het menu about> what is verwijs ik dan niet naar de pagina what_is.php maar naar een algemenere pagina about.php. (bv href= ....about.php?page=what_is) en voor de history vergelijkbaar (bv href= ....about.php?page=history). Ik kan dan een pagina about.php maken waar de opmaakcode voor allebei in staat en met een case of zo op de GET variabele die ik bij de ref mee geef duidelijk maken waar uit de database de info vandaan moet komen. Mij lijken er geen veiligheidsissues met betrekking tot de GET omdat ik immers de meegeleverde info niet in de database zet of ergens uitvoer. Het is slechts om de case of andersoortige condities aan te sturen.
is dit de manier om het te doen en zo nee, hoe dan? Zie ik iets eenvoudigs over het hoofd?

groetjes, Anjo
 
Je kan prima met includes werken, zodat je de header, footer en menu van je site al standaard defineert.

Ikzelf heb een eigen CMS gebouwd, en die werkt met modules. Zo heb ik ook een pagina-module die de inhoud van de site (en dus niet de layout) uit de database haalt. Ikzelf werk daarin ook met includes. Gezien ik een templateparser (Smarty) gebruik om de clientside (HTML, JS, CSS) te scheiden van de PHP-code, heeft Smarty ook een include-functie om een andere template in te laten, zoals header, footer etc...

Ikzelf raad altijd bij grotere sites een templateparser aan. De bekendste op dit moment zijn Smarty en Twig. Welke sneller is verschilt een beetje met wat je wilt doen. Elk heeft zijn pro's en con's. Maar Smarty vind ik wel heerlijk werken.
 
Laatst bewerkt:
@PHP4U

Het is geen grote ste. nog niet. De homepage bevat eigenlijk niks wat niet ook via het navigatiedeel te bereiken is. De homepage zit in index.php en is dermate anders van de anderen dat een template daar niet zinnig is. Sommige stukken content zullen wel uit de database komen. De site is gebaseerd op bootstrap maar eigenlijk wil ik verder geen tools gebruiken maar zelf proberen omdat ik daarmee het idee heb dat ik het beter leer.
Er is een navigatiebar met daarin een aantal menu items, zoals het hierboven genoemde about. Deze menu-items zijn merendeels geen verwijzingen naar eigen pagina's maar slechts namen voor de dropdown menu's. De items in die dropdown menu's verwijzen wel naar pagina's. Voorbeelden daarvan zijn dus about > what is en about > history Als ik nu geen tools zou willen gebruiken maar alleen de boel database driven wil maken, heb ik dus voor elk dropdown-menu-item een pagina nodig waar de opmaak in staat en waar in staat waar de content staat die uit de database dient te komen. Als ik dat samenvoeg in 1 pagina, kan ik daarnaar verwijzen zoals ik hierboven aangeef (dus met een vraagteken in de verwijzing en een GET in de ontvangende file). Waarna ik dan in de ontvangende file de opmaak kan zetten en via een conditionele operator (case of zo) een onderscheid kan maken of het hier what_is of history (of een van de andere keuzes) betreft. Als ik dus geen tools zou gebruiken, zijn er dan andere, betere opties dan een GET?

(de pagina-opmaak die nog in elke pagina terug zou komen (header, footer, navbar enz) is zoveel mogelijk met includes e.d. gedaan om redundantie te voorkomen en onderhoud eenvoudiger te maken. Maar ook dan komen er nog dubbele dingen voor (bijvoorbeeld dezelfde includes). Het lijkt me dus dat ik dat eenvoudig anders kan doen met bovengenoemde GET)

groetjes, Anjo
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan