2016-12-13 4 views
0

Je commence juste à utiliser smarty. Je suis juste un peu confus comment joindre des fichiers ensemble. Simplement dit, je veux rejoindre le pied de page et en-tête dans d'autres fichiers tels que l'indice et postMeilleure approche pour inclure les fichiers d'en-tête et de pied de page dans smarty

Je créé un header.php et header.tpl et a ajouté le code ci-dessous pour header.php

$header_template = new Smarty; 
$header_template->debugging = false; 
$header_template->caching = false; 
$header_template->setTemplateDir('./templates/'); 
$header_template->assign("title", $home_title); 
$header_template->assign("description", $output_cities); 
$header_template->display('header.tpl'); 

Et puis J'ai créé un fichier index.php et index.tpl et dans l'index. php ajouté ci-dessous le code

include('header.php'); 
$index_template = new Smarty; 
$index_template->debugging = false; 
$index_template->caching = false; 
$index_template->setTemplateDir('./templates/'); 
$index_template->assign("posts", $post); 
$index_template->display('index.tpl'); 

Mais dans la documentation Smarty ils demandent d'utiliser {include file=header.tpl'} Je ne sais pas si je fais cela la bonne façon. Appréciez toute réponse que vous pouvez me donner.

+0

Funny typo dans votre premier mot ... – JustOnUnderMillions

+0

@JustOnUnderMillions haha ​​mon mauvais. Pardon. – Jordyn

+0

Fondamentalement lorsque vous utilisez Smarty, vous ne devez pas inclure une partie de la page avec 'include ('header.php');', faire tout le travail dans les templates, quand il s'agit de composer des modèles – JustOnUnderMillions

Répondre

1

Est-ce de cette manière à index.php:

$index_template = new Smarty; 
$index_template->debugging = false; 
$index_template->caching = false; 
$index_template->setTemplateDir('./templates/'); 
$index_template->assign("posts", $post); 
$index_template->assign("title", $home_title);//from header.php 
$index_template->assign("description", $output_cities);//from header.php 
$index_template->display('index.tpl'); 

puis dans index.tpl

{include file='header.tpl'} 
index template code 
{include file='footer.tpl'} 

Vous ne avez pas besoin header.php ou footer.php

Peut-être que vous devriez utiliser des noms plus variables comme header_title au lieu de title, pour empêcher le dépassement.

+0

ok mais semble que j'ai besoin d'écrire le code d'en-tête et de pied de page dans tous mes autres fichiers php. puisque je ne peux pas les inclure séparément. – Jordyn