Wisselende afbeeldingen - uitgebreid

U wilt op eenzelfde pagina steeds een andere afbeelding, zoals foto’s, banners, logo’s, etc. In tegenstelling tot de pagina „Wisselende afbeeldingen - eenvoudig” willen we ook een link naar een website en veel meer vrijheid in de soort afbeeldingen en de plaats ervan. Een link kan naar de eigen site of een andere website zijn. Natuurlijk kunt u de Banner- of de Advertisement-module gebruiken. Maar soms is dit niet nodig of zelfs ongewenst vanwege de eisen die deze modules stellen.

Op de website www.bccal.nl staat onder in de rechter kolom onderaan steeds een andere advertentie met een link naar een interne- of externe website. De advertenties worden beheerd door onderstaande code.

Randvoorwaarden:

  • er worden geen volgnummers in $banners[] ingevuld --> automatische nummering;
  • de banners worden aselect getoond;
  • er wordt slechts 1 banner tegelijk weergegeven;
  • de afbeeldingen worden handmatig op de website geplaatst (via FTP).

Hoe gaat een en ander in z’n werk?

Ga naar Beheren » Blokken en klik op „Blok toevoegen”. Zet in de blokbeschrijving een herkenbare tekst zoals: „advertenties rechtsonder”. De Bloktitel wordt leeg gelaten want we willen geen naam tonen boven het blok op de pagina. In Blokinhoud komt de oplossing. Zet hier de volgende tekst:

<?php
static $banners;
if (!$banners) {
$banners[] = '<a href="/node/2" title="Interne pagina 2"><img src="/files/banners/banner37.jpg" border="0" /></a>';
$banners[] = '<a href="http://www.example.com" title="Externe website" target="_blank"><img src="/files/logo/logo28.gif" border="0" /></a>';
$banners[] = '<h5 align="center">Uw eigen banner hier ?</h5><h5 align="center">Neem contact op met het <a href="/contact/Secretariaat">secretariaat</a>.</h5>';
}
print $banners[rand(0,count($banners)-1)];
?>

Klik op invoerformaat, kies "PHP code" en sla het blok op.

Zet vervolgens het blok op de gebruikelijk manier op de pagina door het „in te schakelen” en in de juiste zijbalk te plaatsen.

Verklaring van het programma dat u zojuist hebt ingevoerd:

  • <?php en ?> geven aan dat we een PHP programma hebben geschreven, waarbij <?php het begin van de PHP-code en >? het einde aangeeft;
  • er worden 3 banners opgegeven in de achtereenvolgende $banners[]-regels, waaruit de PHP-functie rand() één van de drie aselect selecteert met de code: print $banners[rand(0,count($banners)-1)];. Het is essentieel geen nummering tussen de haakjes van $banner[] in te voeren. Het programma kan zo zelf uitzoeken hoeveel banners er geplaatst zijn. Dit maakt het eenvoudig het aantal banners te wijzigen;
  • de opmaak van de banners wordt eenmalig in het geheugen gezet met de instructies: static $banners respectievelijk if (!$banners) { …. };

De inhoud van de banners is de volgende:

  • banner 1: bij het aanklikken wordt „/node/2” op dezelfde website geopend. De banner heeft als titel (deze is te zien als de cursor boven de banner wordt gehouden): „Interne pagina 2”. Het plaatje dat wordt getoond is: /files/banners/banner37.jpg. border="0". Border="0" betekent: maak geen rand rond de banner;
  • banner 2: bij het aanklikken wordt de externe website www.example.com geopend op een nieuw tabblad of venster (target="_blank").
    De banner heeft als titel (deze is te zien als de cursor boven de banner wordt gehouden): „Externe website”. Het plaatje dat wordt getoond staat in een andere map op de website en heeft een ander bestandformaat: /files/logo/logo28.gif. Border="0" is hierboven reeds beschreven;
  • banner 3: dit is een stukje tekst van 2 regels: „Uw eigen banner hier” en „Neem contact op met het secretariaat”. Hier wordt het woord „secretariaat” als link gebruikt naar de interne pagina: „/contact/Secretariaat”. De <h5> respectievelijk </h5> zijn PHP-codes die aangeven dat de tekst als „paragraaf 5” moet worden geformatteerd.

Het aanpassen van het voorbeeld moet zorgvuldig gebeuren want het is een combinatie van PHP-code en HTML-code. Gebruik nergens anders enkele-quotes dan opgegeven, want daar kan PHP niet tegen.

Opmerking: door het gebruik van de Drupal-caching blijft enkele uren dezelfde banner op dezelfde pagina staan. De pagina wordt uit de cache gehaald waardoor de pagina niet steeds opnieuw wordt aangemaakt. Na verloop van tijd zal deze veranderen.

Laatste wijziging: 13 maart 2008: automatisch bepalen van het aantal banners.