[Smarty] Variabelen in class toekennen en in alle .tpl files gebruiken
application
----- classes
---------- website.class.php
----- includes
---------- config.inc.php
----- libs
---------- smarty
--------------- ...
----- public
---------- cache
---------- configs
---------- templates
--------------- foot.tpl
--------------- head.tpl
--------------- home.tpl
--------------- contact.tpl
--------------- ...
---------- templates_c
httpdocs
----- css
----- images
----- js
----- index.php
----- home.php
----- contact.php
----- ...
Bij wijze van testen heb ik al even een index.php bestand aangemaakt die de template file "index.tpl" van de nodige variabelen kan voorzien én die de head.tpl en foot.tpl files include:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
include_once('includes/site.inc.php');
include_once('includes/config.inc.php');
require(SMARTY_DIR . 'Smarty.class.php');
$smarty = new Smarty();
$smarty->setTemplateDir(BASIC_PATH . '/application/public/templates/');
$smarty->setCompileDir(BASIC_PATH . '/application/public/templates_c/');
$smarty->setConfigDir(BASIC_PATH . '/application/public/configs/');
$smarty->setCacheDir(BASIC_PATH . '/application/public/cache/');
$smarty->display('index.tpl');
?>
include_once('includes/site.inc.php');
include_once('includes/config.inc.php');
require(SMARTY_DIR . 'Smarty.class.php');
$smarty = new Smarty();
$smarty->setTemplateDir(BASIC_PATH . '/application/public/templates/');
$smarty->setCompileDir(BASIC_PATH . '/application/public/templates_c/');
$smarty->setConfigDir(BASIC_PATH . '/application/public/configs/');
$smarty->setCacheDir(BASIC_PATH . '/application/public/cache/');
$smarty->display('index.tpl');
?>
Het is nu mijn bedoeling om in head.tpl een iteratie te voorzien die alle menu variabelen (knoppen en links) kan outputten. Ik denk niet dat het de bedoeling is om in de httpdocs map een head.php bestand aan te maken, en daarmee heb ik dus een class "website.class.php" aangemaakt waarin ik de smarty variabelen zou kunnen declareren.
Dus dat moet iets in de aard van het volgende worden:
Code (php)
Nu vraag ik me dan toch af of ik via deze manier goed bezig ben en of dit voor een grote website met veel pagina's wel kan lukken? Tips of verbeteringen zijn dus mee dan welkom, een kritische kijk mag ;)
Of je kan dit in de database stoppen en door alle waardes heen gaan.. of in een ini bestandje?
De bedoeling is inderdaad om het menu vanuit de database op te halen, ik wilde met die array enkel aantonen dat het volledige menu in de class wordt aangemaakt ;)