Do tej pory pisałem bez uzycia smarty a szablon dzieliłem na 3 główne pliki. head.php, foot.php i plik z główną zawartością.
Chciałbym dalej tak robić, lecz opierać wszystko na smarty. Przypuśćmy że mam pliki nagłówka i stopki zrobione już w smarty, i jak je teraz poprawnie dodawać do pliku głównego typu wiadomości, ogłoszenia itp....
Mam nadzieję, że rozumiecie o co mi chodzi. nie chcę w każdym pliku zaczynać od deklaracji html.... tylko podczepiać już gotowe pliki, w których już są wykonywane różne rzeczy,np w zależności od tego czy jest się zalogowanym, słowa kluczowe robione dynamicznie.
Czy jeżeli dam dołączenie
Kod
{include file='header.tpl'}
do pliku głównego czyli najpierw include headera.tpl, później zawartość pliku głównego i na koniec include foot.tpl - to kod php odpowiedzialny za te 2 pliki czyli np head.php i foot.php zostanie wykonany?Chciałbym się dowiedzieć, jak to zrobić najlepiej, żeby później nie robić tego źle.
Z góry dzięki za odp.
Dodam, że pliki główne są w katalogu /templates, a pliki nagłówka i stopki w katalogu: /templates/includes.
Pliki php są w kat. głównym, a pliki nagłówka i stopki w katalogu/includes
Czy taki zapis jest "dobry":
header.php
<?php require_once('smarty/Smarty.class.php'); $smarty = new Smarty; $smarty->template_dir = "templates/"; $smarty->compile_dir ='smarty/templates_c/'; $smarty->config_dir = 'smarty/configs/'; $smarty->cache_dir = 'smarty/cache/'; $tytul='Tytuł strony'; $smarty -> assign('tytul', $tytul); $smarty->display('includes/header.tpl'); ?>
header.tpl
index.php
<?php require_once('includes/header.php'); $smarty->assign('tytul', $tytul); $smarty->assign('test1', $test1); // klikanie switch ($_GET['id']) { case 1: $opcja=1; break; case 2: $opcja=2; break; case 3: $opcja=3; break; } } else{ $opcja="Brak wybranej opcji."; } $smarty->assign('cyfra', $opcja); //tablice 'Ford', 'Opel', 'Fiat', 'BMW', 'Mercedes', 'Renault', 'Citroen', 'Volkswagen' ); $smarty -> assign('samochody', $samochody); //php dla if'ów $wyb_opcja=$_GET['id']; } $smarty -> assign('wyb_opcja', $wyb_opcja); //display $smarty->display('index.tpl'); require_once('includes/footer.php'); ?>
index.tpl
W takim układzie header i footer się 2x wykonuje:/