Archief - PHP: Methodes om je layout in php te brengen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Featherfoot

Legacy Member
Hallo,

Voor mijn richting op school, Informaticabeheer, moeten wij dit jaar ons eindwerk maken. Dit bevat als grootste onderdeel een dynamische website creeëren met behulp van PHP & MySQL.

Sinds gisteren heb ik mijn volledige casevoorstel af en is dit goedgekeurd. Nu wil ik in de kerstvakantie toch een fatsoenlijk begin maken zodat ik in het begin van het nieuwe jaar al een deel af heb.

Het begin van de website is natuurlijk de layout. Die maken is geen probleem voor mij, maar ik ben nu al enkele uurtjes aan het zoeken en uitproberen van de beste en snelste manieren om mijn layout in php te krijgen. Ik moet alle code zelf schrijven, dus gebruik maken van een template parser zoals "Smarty" behoort niet tot de mogelijkheden.

Welke methodes gebruiken jullie zoal?
Ik had al gezocht en kwam uit op het includen van een header / footer bestand. Een vriend van mij gebruikt zijn mysql database om zijn layout op te vragen en dan weer te geven. Iemand die met dit systeem bekend is?

En wat is eigelijk de beste ( lees: snelste, veiligste ) manier?

Bedankt op voorhand!

PS: Mij gewoon de methode uitleggen en waar ik er eventueel meer informatie over kan vinden is voor mij meer dan voldoende. Voorbeelden waar je systeem gebruikt wordt mogen ook altijd.

Greets, FeatheR

tikketim

Legacy Member
ik maak eerst mijn xhtml en css volledig in orde en daarna voeg ik al het php werk in met include's en classes ...

Tyfius

Legacy Member
Inderdaad, schrijf zelf een basis template klasse. Met een str_replace() kom je al een heel eind :)

jorrelemargi

Legacy Member
ik teken meestal de grote structuur uit in Fireworks,
daarna bouw ik in xhtml de (tableless) structuur, link daar mijn CSS aan

dan zet ik mijn php in de xhtml en daarna hou ik me bezig met de grafische details

El_L4mor

Legacy Member
template engine's en dergelijke hebt ge allemaal niet nodig imo. Da's enkel voor grote en vooral meertalige sites :).

ik ² dan ook Jorrelemargi en tikketim

Steffo

Legacy Member
Toch kunnen template parsers heel nuttig zijn.
Alleen is het me niet duidelijk hoe ik ook men variabelen kan doorsluizen naar de html bv $ik = "jij"; .
Als je da $ik in template zet dat er automatisch jij komt te staan .
Ik zoek er al een tijdje op iemand een oplossing ?

J3rry

Legacy Member
Steffo zei:
Toch kunnen template parsers heel nuttig zijn.
Alleen is het me niet duidelijk hoe ik ook men variabelen kan doorsluizen naar de html bv $ik = "jij"; .
Als je da $ik in template zet dat er automatisch jij komt te staan .
Ik zoek er al een tijdje op iemand een oplossing ?

je kan dit op verschillende manieren, hangt er ook van af hoe je je templates maakt

voorbeeld, als je een gastenboek maakt met optie meerdere talen
dan ziet je lang.php fileer zo ongeveer uit:

PHP:
$lang['name']="Naam";
$lang['email']="E-mail";
$lang['url']="Website";
$lang['message']="Bericht";

en de template kan je dan maken op verschillende manieren:

guestbook.template:
PHP:
<table>
<tr><td><!-name-></td><td><input type="text" name="name"></td></tr>
<tr><td><!-email-></td><td><input type="text" name="email"></td></tr>
<tr><td><!-url-></td><td><input type="text" name="url"></td></tr>
<tr><td><!-message-></td><td><input type="text" name="message"></td></tr>
</table>

guestbook.php
PHP:
require('lang.php');
$template=file("guestbook.template");
foreach ($template as $line) {
$line=str_replace("<!-name->",$lang['name'],$line);
$line=str_replace("<!-email->",$lang['name'],$line);
$line=str_replace("<!-url->",$lang['name'],$line);
$line=str_replace("<!-message->",$lang['name'],$line);
echo $line;
}

ofwel een template dmv include/require openen
dan zou je template er zo uit zien:
PHP:
<table>
<tr><td><? echo $lang['name']; ?></td><td><input type="text" name="name"></td></tr>
<tr><td><? echo $lang['email']; ?></td><td><input type="text" name="email"></td></tr>
<tr><td><? echo $lang['url']; ?></td><td><input type="text" name="url"></td></tr>
<tr><td><? echo $lang['message']; ?></td><td><input type="text" name="message"></td></tr>
</table>

Tyfius

Legacy Member
Ikzelf werk voor kleine projecten op de volgende manier:
Ik lees de ganse template in met file_get_contents(), bvb in $page.
PHP:
$search = array('{name}', '{email}');
$replace = array('naam', 'emailadres');
$out = str_replace($search, $replace, $page);
Op die manier moet je niet elke regel gaan str_replacen.

Steffo

Legacy Member
Bestaat er zo geen makkelijkere manier ik denk dat het iets met eval() is ?
Een manier waarbij je niet elke variabele moet opgeven die je wilt veranderen maar gwn $dit in je template kan gebruiken ?

dJeez

Legacy Member
Je kan uiteraard ook via PHP XML gaan genereren en die via XSLT omvormen naar HTML output. Maar voor een beginner is dat niet echt de snelste en wellicht ook niet de meest aangewezen optie (hoewel het - mits correct toegepast - wel een heel flexibele oplossing is).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan