[php] Template handig waarom

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 09-10-2024
ik heb me al een paar keer enigzins verdiept in templates, en het nut daarvan. Toch ben ik tot nu toe nog steeds niet overtuigd van het nut ervan in een dynamische site.

Ik zit namelijk met het volgende "probleem".

Ik maak een pagina (template1) die een standaard layout heeft.
Ik maak hierin twee dynamische velden die ik laat vullen door php,
namelijk een veld "titel" en een veld "inhoud"; dit zijn namelijk de enige waarden die veranderen op de site.

NU komt het grote issue volgens mij, want ik wil natuurlijk op de blek van die inhoud oa een gastenboek kunnen invullen, maar ook een fotoalbum, of gewoon een simpel tekstverhaal. Die kan ik allemaal weer in laden natuurlijk door middel van templates. Maar wat doe ik dan met de php code???

Maak ik toch een aparte php-pagina voor het fotoboek, het gastenboek en de standard tekst, die allemaal op hun beurt weer gebruik maken van de basis layout (template1), of kan ik dit allemal dmv php en templates in 1 php-script ordenen?

ik hoop dat mijn probleem duidelijk is, want ik vind het erg moeilijk om uit te leggen waar mijn probleem nu ligt.

Acties:
  • 0 Henk 'm!

  • samo
  • Registratie: Juni 2003
  • Laatst online: 18-09 18:50

samo

yo/wassup

Ligt er aan: Je kan in de waarde "inhoud" ook gewoon html invoeren, en dus alles weergeven. Anders moet je inderdaad voor iedere actie dat een script moet uitvoeren een nieuw verwerkingsonderdeel maken....
Het makkelijke? Dat wijzegingen over de hele site in maar 1 pagina gemaakt hoeven te worden...

Bekend van cmns.nl | ArneCoomans.nl | Het kindertehuis van mijn pa in Ghana


Acties:
  • 0 Henk 'm!

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 09-10-2024
wat ik dus bedoel is dat voor een gastenboek en een fotoalbum hele andere php code nodig is. Als ik dus een php-bestand maakt, dat het template vervangt, en afhankelijk van een bepaalde conditie inhoud dus moet vervangen met of een gastenboek, of een fotoalbum, dan is er dus een ander template nodig, dat is makkelijk te implementeren, maar dus ook andere php met andere assigncodes, want die zijn dus voor het gastenboek en het fotoalbum anders.

Acties:
  • 0 Henk 'm!

  • Jurgle
  • Registratie: Februari 2003
  • Laatst online: 24-06 00:27

Jurgle

100% Compatible

Je gebruikt nu toch al een bepaalde vorm van templates toch?

Kan je waar je echo $inhoud doet niet een if statement beginnen waarbij je onder bepaalde condities $inhoud echoot, onder andere require gastenboek.php doet en in een ander geval fotoboek.php required?

My opinions may have changed but not the fact that I am right ― Ashleigh Brilliant


Acties:
  • 0 Henk 'm!

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 09-10-2024
Jurgle schreef op 21 October 2003 @ 16:30:
Je gebruikt nu toch al een bepaalde vorm van templates toch?

Kan je waar je echo $inhoud doet niet een if statement beginnen waarbij je onder bepaalde condities $inhoud echoot, onder andere require gastenboek.php doet en in een ander geval fotoboek.php required?
Ja dat is dus waar het me om draait, die oplossing had ik zelf ook wel bedacht, maar is dat dan de manier van aanpakken binnen een grotere site, of zijn hier andere mooiere oplossingen voor,
het is dus niet dat ik het niet voor elkaar krijg, maar ik vraag me gewoon af, wat voor oplossingen hiervoor al eerder bedacht zijn.
Deze had ik dus al, maar toch bedankt!

Acties:
  • 0 Henk 'm!

  • Jurgle
  • Registratie: Februari 2003
  • Laatst online: 24-06 00:27

Jurgle

100% Compatible

* Jurgle snapt niet helemaal wat je bedoelt.

Je kan natuurlijk een template engine gebruiken, die zijn in alle soorten en maten te vinden/maken. Maar dat zal je niet willen als je het eerste al 'een oplissing voor grotere sites' vindt.

De andere kant op: je kan ook het bestand kopieren en de 'echo $inhoud' vervangen door een require('gastenboek.php'), etc regel. Maar dat is lelijker dan wat je nu doet.

Is dit wat je bedoelt? Probeer anders wat duidelijker te zijn...

My opinions may have changed but not the fact that I am right ― Ashleigh Brilliant


Acties:
  • 0 Henk 'm!

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 09-10-2024
ik moet echt moeite doen om helder uit te leggen wat ik bedoel..

waar het mij om gaat is dat ik eerder een pagina had waarbij ik dan een template had..

ik ging naar die pagina toe met een bepaald id.. en de pagina haalde uit een database de juiste titel en inhoud en vulde dit in in het template...

simpel en klaar, er bestond immers maar 1 soort inhoud.

Wat is nu het verhaal, nu wil ik dat er niet maar 1 soort inhoud is maar, meerdere soorten inhoud, dus niet alleen kale tekst maar ook allerlei andere mogelijkheden...

Ik heb nu de volgende oplossing bedacht..
ik include per id een bepaald php bestand dat op haar beurt weer een template laadt en dat dan vervolgens haar output geeft aan de inhoud variabele zoals die in het eerste template is gedefinieerd.

Zo heb ik alle mogelijkheden om later nog andere functionaliteiten toe te voegen, zonder dat ik in de basis een extra mogelijkheid toe moet voegen, omdat alle mogelijkheden al vast staan in code (ipv een nieuw php bestand includen met andere functies).

Ik vraag me dus af of dit een hjandig systeem is, en wat voor systemen hier eerder voor bedacht zijn

Acties:
  • 0 Henk 'm!

  • Orphix
  • Registratie: Februari 2000
  • Niet online
"Find what changes and encapsulate it".
Ofwel ga in je applicatie op meerder niveau's bekijken wat er verandert (of kan gaan veranderen!) en voeg dat logisch bij elkaar. Zorg ervoor dat je nergens dubbele code hebt.

Oftewel meestal is het zo dat je de layout van je 'header' en 'footer' van de site onafhankelijk van de content wilt veranderen -> voeg het logisch samen, koppel het los van de rest v/d scriptbestanden en laat die deze aanroepen (geen dubbele code)

Stel je hebt een gastenboek, en je wilt dat de layout veranderd kan worden door een derde partij. Het verandert, dus encapsulate het (in een bestand, template, of functie) en je gastenboek roept dit aan.

Als je op deze manier denkt is het al snel vrij logisch hoe je je site op moet zetten. Bedenkt goed van tevoren welke relaties er zijn tussen de scripts/objecten, op welk niveau je aan het analyseren bent en welke elementen er zouden kunnen veranderen.

Het klinkt wat abstract maar ik hoop dat het een beetje overkomt.

Acties:
  • 0 Henk 'm!

  • Orphix
  • Registratie: Februari 2000
  • Niet online
douweh schreef op 21 October 2003 @ 17:09:
Ik vraag me dus af of dit een hjandig systeem is, en wat voor systemen hier eerder voor bedacht zijn
Er is geen enkel ultiem systeem hiervoor. Het ligt dus geheel aan de applicatie die je maakt en de eisen die je hieraan stelt. Als een soort van vuistregel kan je ervan uitgaan dat flexibelere code uitgebreider, ingewikkelder en langzamer is. In het algemeen duurt het ontwikkelen ook langer. Echter het is makkelijker aan te passen aan nieuwe eisen, wat tegenwoordig erg belangrijk is.

Het is altijd een trade-off die je maakt en je zal die keuze voor jezelf moeten stellen. Wat is de doelgroep van je gastenboek, kunnen ze zelf in php sleutelen of moet het in html templates gebeuren, of misschien zelfs online de layout aan kunnen passen...

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Volgens mij snap je het idee van templates niet helemaal. Templates zijn er om je logica en data laag te scheiden van je layout. Je layout heeft immers helemaal niets te maken met hoe je je data ophaalt uit een database, en dus hoort het ook in een ander scriptje.

En aan de andere kant kun je de data-laag ook weer scheiden van je logica-laag. In je logica laag check je bijvoorbeeld of de input wel klopt, terwijl je in je datalaag je alleen bezig houd met opslag en retrieval.

En dit beantwoord ook gelijk of je je templates moet collapsen naar een enkele file, of dat je meerdere php scripts moet gebruiken.
Is de layout van je gastenboek essentieel anders dan die van je fotoalbum? Zo ja, dan maak je daar natuurlijk verschillende templates van. Die verschillende templates kunnen natuurlijk wel weer van dezelfde templates gebruik maken als grote stukken op biede pagina's hetzelfde zijn, zoals bijvoorbeeld de header en de footer

En de logica van je gastenboek, komt dat overeen met de logica van je fotoalbum? Zo ja, dan kun je dat combineren in hetzelfde script, en zo niet dan maak je daar 2 scripts van.

En je data-code staat weer in een geheel anders script, eentje die een connectie maakt met een database en gewoon blindelings data ophaalt en wegschrijft als dat nodig is.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
oisyn, als je php/mysql gebruikt doe je dat scheiden van data en logica al redelijk aardig. De data is mysql-lerig. Om dat ook in losse php files te gooien lijkt me onoverzichtelijk worden. Ik ben er we zeker van dat het in grotere projecten in andere talen wel zeer nuttig kan zijn.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

als je php/mysql gebruikt doe je dat scheiden van data en logica al redelijk aardig
Database queries horen niet in je logica-laag, je logica laag hoeft dan ook niet te weten dat er een database achter zit, of dat die database een mysql database is oid. Als je gewoon een php filetje maakt die alle benodigde info kan ophalen en wegschrijven, dan belandt je toch niet met allemaal losse php files?

Ik heb op mijn site ook gewoon een database.php waarmee ik alle gegevens op kan vragen, toe kan voegen of wijzigen die ik wil

Ik kan nu overstappen op een andere database, of gewoon een compleet andere opslagmethode, door alleen dat filetje aan te passen.

[ Voor 12% gewijzigd door .oisyn op 22-10-2003 16:03 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1