Home Ontwerp je site PHP Paginasysteem in PHP

Paginasysteem in PHP

Als je de pagina's van je website goed bekijkt, merk je op dat al je pagina's zijn opgebouwd volgens hetzelfde systeem: je hebt een titel of banner, je hebt een navigatie, je hebt je inhoud en eventueel een footer (tekst onderaan).

Deze elementen komen terug op alle pagina's en zijn normaal gezien overal dezelfde.

Je hebt wellicht al door dat het geen handige methode is om al deze elementen op te gaan nemen in elke pagina. Als je dan iets wilt veranderen aan bijvoorbeeld de footer, dan zou je dat op elke pagina handmatig moeten gaan veranderen.

een hele klus als je website uit veel pagina's bestaat! We gaan dus op zoek moeten gaan naar een systeem dat aan volgende eisen voldoet:

  • Inladen van website-elementen willen we automatisch laten uitvoeren, zonder op elke pagina een include()-opdracht te moeten opgeven.
  • Je hoeft slechts één keer iets te wijzigen en de wijziging is meteen toegepast en zichtbaar op alle pagina's van je website.
  • Inhoud en de elementen die steeds dezelfde zijn (banner, navigatie en footer) houden we gescheiden.
  • Wanneer iemand een onbestaande pagina opvraagt, krijgt de gebruiker een persoonlijke foutpagina te zien.

Dit alles kan met PHP!

Werking van het systeem

Het systeem werkt met een dynamisch paginasysteem; dit betekent in de praktijk dat je in de adresbalk een variabele toevoegt die ervoor zorgt dat een bepaalde inhoudspagina ingeladen wordt.

Je krijgt adressen in de vorm van www.website.be/index.php?load=about_us. In dit voorbeeld zal de (inhouds)pagina about_us ingeladen worden in index.php.

Je hebt een overkoepelende pagina nodig met daarin alles behalve je inhoud, normaal gezien is dat je index.php.

In je inhoudspagina komt vervolgens enkel je inhoud; een verwijzing naar includes is hier overbodig.

Het script werkt trouwens ook zonder het expliciet opvragen van de index-pagina: www.website.be/?load=about_us werkt eveneens.

Vooraleer we kunnen beginnen met het eigenlijke scripten, voer je onderstaande voorbereidende stappen uit:

  • Zorg ervoor dat je eerste pagina die moet verschijnen index.php heet.
  • Zorg ervoor dat deze pagina de volledige opbouw bevat (header, navigatie, footer, ...) zoals je wilt dat je website eruit ziet.
  • Verwijder in index.php je inhoud, dit is het feitelijke informatiegedeelte (tekst, afbeeldingen,...) dat afhankelijk is van welke pagina je bekijkt.
  • Verwijder alle overbodige ballast van je inhoudspagina's tot enkel de eigenlijke inhoud overblijft! De tags , , ,... zijn overbodig aangezien je de inhoudspagina's later gaat inladen in je index.php, dat al begint met deze verplichte tags.
  • Zorg ervoor dat al je inhoudspagina's de extensie .php hebben. Dit is niet strikt noodzakelijk, maar wellicht ga je in de toekomst toch meer met PHP werken en dan kunnen je bestandsnamen alvast onveranderd blijven.

Praktische uitwerking

Op de plaats waar de inhoud moet komen in je index.php (dus ergens tussen je -tags neem je volgende code op:

<?php
if(!isset($_GET['load'])) {
$load = "home";
}else{
$load = $_GET['load'];
}
?>

Een woordje uitleg bij deze code:

Als de indexpagina wordt opgevraagd zonder een waarde in de variabele ?load, wordt standaard de waarde "home" ingeladen. Wanneer je dus gewoon www.website.be invoert, kom je op de homepagina. Logisch toch?!

Is er wel een waarde ingevuld in de ?load-variabele, dan wordt de waarde in een variabele $load opgeslagen; die variabele gaat later nog van pas komen bij het aanroepen van de juiste pagina.

Onder de PHP-code die ik je hierboven gaf, komt de PHP-code die ervoor gaat zorgen dat de indexpagina weet welke inhoudspagina's er moeten ingeladen worden. Hiervoor maken we gebruik van deze code:

<?php
if($load == "home")
include "home.php";
}
?>

Hetgeen zoveel wil zeggen als: wordt in de url "home" opgevraagd, dan wordt het bestand home.php geïnclude.

Natuurlijk moeten we deze code ook nog gaan opgeven voor de andere pagina's die kunnen geïnclude worden. Een voorbeeld:


<?php
if($load == "home"){
include "home.php";
}elseif ($load == "nieuwsbrief"){
include "nieuwsbrief.php";
}elseif ($load == "disclaimer"){
include "disclaimer.php";
}elseif ($load == "copyright"){
include "copyright.php";
}elseif ($load == "contact"){
include "contact.php";
}elseif ($load == "privacy"){
include "privacy.php";
}elseif($load == "fout404"){
include "errors/fout404.php";
}else{
include "errors/fout404.php";
}
?>

Als je een pagina opvraagt die niet bestaat (else), laadt het script een foutpagina.

Wanneer je nu nieuwe pagina's gaat aanmaken, hoef je enkel maar je inhoud op te slaan én een nieuwe regel code toe te voegen voor die pagina in je index.php.


5 + 4 =
 

GOOGLE adsense