Nieuwe skin (4)

[Het zat me toch niet lekker][1] en heb het uitgeplozen!

In de .tpl bestanden van phpBB kan geen php-code worden gebruikt. Om nu toch gebruik te maken van de include-functie zijn er een aantal stappen nodig:

  • codeer de include-functie in de page_header.php Ik heb onderstaande code gebruikt:
//include code 
ob_start();
include("../site_header.php");
$my_header = ob_get_contents();
ob_end_clean();
//include code

De functie [ob_start][2] is een functie die een speciale buffer creeert. Dit is noodzakelijk omdat anders de beruchte foutmelding Headers already sent verschijnt (of kan verschijnen). De functie [ob_clean][3] maakt de outputbuffer weer leeg.

  • definieer een variable in de page_header.php
// 
// The following assigns all _common_ variables that may be used at any point 
// in a template. 
// 
$template->assign_vars(array( 
   'MY_HEADER' => $my_header,  //send to the header tpl file
  • gebruik de variable in de overall_header of overall_footer om de uitkomst van de include te tonen. Omdat ik gebruik maak van een aparte div voor de header, kan ik de variable in de overall_footer.tpl plaatsen.

De code om de variable te tonen is:



En hiermee heb ik bereikt dat ik maar 1 bestand hoef aan te passen om de header voor de hele site (weblog, forum en links- en smileypagina’s) aan te passen!

 [1]: /archives/nieuwe-skin-3
 [2]: http://nl2.php.net/ob_start
 [3]: http://nl2.php.net/manual/en/function.ob-clean.php