Mam takie pliki: index.php, index.tpl, login.php, login.tpl. Index.tpl jest ładowany przez index.php. W index.tpl jest również linijka odpowiadająca za zmianę głównej treści strony na podstawie id przekazanego przez $_GET. Napisałem prostą klasę, która będzie to robiła automatycznie. I gdy mam id=login ma załączyć plik login.php - to działa. Problem jest w tym, że plik login.php nie chce załączyć pliku login.tpl.
Kody plików:
index.php
require_once('/smarty/libs/Smarty.class.php'); require_once('class/class.main.php'); require_once('class/class.router.php'); $main = new Main(); $router = new Router(); $objSmarty = new Smarty; $objSmarty->template_dir = ''; $objSmarty->config_dir = ''; $objSmarty->cache_dir = ''; $objSmarty->compile_dir = ''; $strTemplate = 'index.tpl'; $router = "./controler/" . $router->getId() . ".php"; $objSmarty->assign('title', $main->get($title = 'title')); $objSmarty->assign('autor', $main->get($autor = 'autor')); $objSmarty->assign('router', $router); $objSmarty->display($strTemplate);
index.tpl
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div id='logo'> </div> <div id='menu_left'> </div> <div id='news'> {include file="$router"} </div> </body> </html>
login.php
$str = "./view/login.tpl"; $objSmarty->display($str);
login.tpl
Oczywiście pliki login są jeszcze niedokończone, jednak na początku chcę je poprawnie wyświetlić.