Vou mostrar aqui como eu uso o smarty nos meus sites.
Por neurose, eu coloco as libs do smarty fora do meu DocumentRoot (vide ApacheDoc). Entao, faça o download do smarty e descompacte-o em seu /home/usuario/ e renomeie a pasta para /home/usuario/smarty.
Agora vamos criar as pastas que o smarty necessita para funcionar. Os locais, você decide... eu, neste exemplo, vou colocar dentro do DocumentRoot.
template_dir /home/usuario/www/tpl
config_dir /home/usuario/www/cfg
compile_dir /home/usuario/www/tmp
cache_dir /home/usuario/www/tmp
Bem... ja criamos tudo o que é necessário para o funcionamento do smarty. Agora vamos configura-lo! Lembre-se de que todos os arquivos que forem citados agora, deveram estar dentro de /home/usuario/www/ .
config.php
<?php
// Smarty
define(SMARTY_DIR,
'/home/usuario/smarty/libs/');
// Bibliotecas do Smarty
require_once SMARTY_DIR.'Smarty.class.php';
class Smarty_Site extends Smarty {
function Smarty_Site()
{
$sBaseDir = '/home/usuario/www/';
$this->Smarty();
$this->template_dir = $sBaseDir.'templates/';
$this->compile_dir = $sBaseDir.'tmp/';
$this->config_dir = $sBaseDir.'conf/';
$this->cache_dir = $sBaseDir.'tmp/';
$this->caching = false;
$this->cache_lifetime = 0;
}
function show()
{
$tela = $r[1];
$this->assign('tela', $tela.".tpl");
$this->display('fixo/site.tpl');
}
}
$smarty = new Smarty_Site;
?>
templates/fixo/site.tpl
<html>
<head>
<title>Smarty Test</title>
</head>
<body>
<!-- MENU: inicio -->
<a href="index.php">Pagina Inicial</a> |
<a href="produtos.php">Produtos</a>
<!-- MENU: fim -->
<!-- CORPO: inicio -->
<!-- CORPO: fim -->
</body>
</html>
index.php
<?php
require_once "config.php";
$smarty->assign('nome', 'Pedro Faria');
$smarty->show();
?>
tpl/index.tpl
Meu nome é: {$nome}
resto do conteudo do site.
Não sei se você sacou, mas para cada arquivo.php, basta por um com o mesmo nome
e extensão .tpl no diretório tpl/ .
Viram como é simples o smarty?
Flw!