Utilizando o Smarty template no PHP

Nesse artigo vou explicar basicamente como criar um site em PHP utilizando o Smarty Templates. Para quem não sabe, template é uma metodologia que nos permite separar a programação lógica (PHP) da visual (HTML), o que torna o seu projeto mais organizado e seu código-fonte mais bonito aos olhos de terceiros.

[ Hits: 77.045 ]

Por: João Paulo de Oliveira Faria em 19/02/2005 | Blog: http://www.jpfaria.com


Criando os arquivos para o site



1 - Entre no diretório do seu site:

# cd /home/seusite

2 - Primeiro vamos criar o nosso arquivo de configuração. Crie e coloque o conteúdo abaixo no arquivo /home/seusite/includes/config.inc:

<?
/*
 +------------------------------------------+
 | FRAMEWORK                                |
 | Author: João Paulo de Oliveira Faria     |
 | All rights reserved.                     |
 +------------------------------------------+
 */

/*
Define Template
*/

$template = "default"; // nome do diretório onde vai estar nosso template.
$smarty->template_dir = 'templates/'.$template;


/*
Define Display Inicial;
*/

$display_inicial = "home";

?>

3 - Vamos criar o na raíz do seu site o index.php com o conteúdo abaixo:

<?

/*
Inicia Smarty
*/

require_once('./Smarty-2.6.0/Smarty.class.php');
$smarty = new Smarty;

/*
Arquivo de configurações
*/

require_once("includes/config.inc");

/*
Vamos definir algumas variáveis!
*/

$array['nome'] = "João Paulo";
$array['email'] = "joaopaulo@deoliveira.com.br";

/*
Informando ao smarty para enviar o nosso array.
Você pode enviar somente uma variável, você pode também enviar um array para fazer um loop.
*/

$smarty->assign('array',$array);

/*
Informando ao smarty para qual arquivo de template que ele deve enviar as informações
*/

$smarty->display('index.tpl');

?>

4 - Vamos criar em /home/seusite/templates/default/ o arquivo index.tpl que recebe o $array:

<html>
<head>
<title>MEU SITE EM PHP/SMARTY</title>
</head>
<body>
NOME: {$array.nome}<br>
E-MAIL: {$array.email}
</body>
</html>
Página anterior    

Páginas do artigo
   1. Introdução
   2. O que o Smarty é capaz de fazer
   3. Baixando o Smarty e instalando
   4. Estruturando um simples site em PHP usando o Smarty
   5. Criando os arquivos para o site
Outros artigos deste autor

Solução completa com o sendmail

Instalando e configurando um servidor DNS (Bind)

PEAR - Utilizando classes prontas e documentadas no PHP

Instalando e configurando um servidor DNS (Bind+CHROOT) no Slackware

Configurando o iptables-p2p no Slackware

Leitura recomendada

Capturando conteúdo de sites em PHP

Google Chart: Criando gráficos dinâmicos em minutos

Criando gráficos com a classe JPGraph (parte 2)

Trabalhando com datas em PHP

Symfony Framework - Introdução

  
Comentários
[1] Comentário enviado por talegall em 19/02/2005 - 21:41h

Bem legall. Muito pratico. Nem fazia ideia do que era isso mas agora vejo que pode ser de grande utilidade. Obrigado!

[2] Comentário enviado por fernandoamador em 18/04/2006 - 18:59h

Legal!!!

[3] Comentário enviado por removido em 20/04/2006 - 01:10h

é só a galera não esquecer que usar arquivos "*.inc" é encrenca garantida em sites de grande visitaçao.

Abraços

[4] Comentário enviado por bigo.doido em 29/11/2006 - 22:44h

opa joão... blz?

é o seguinte, me ocorreu a seguinte dúvida...

se eu tiver vários arquivos de template (.tpl) que formam o layout...?
eu fiz um pequeno teste aqui e o meu arquivo index que chama os templates soh pega o primeiro arquivo de template que eu chamo quando eu dou o $smarty->display(' arquivo.tpl)... ou seja mais ou menos assim...

$smarty->display('index.tpl'); (que vai montar meu layout) (soh esse pega as variaveis do smarty)
$smarty->display('menu.tpl');
$smarty->display('conteudo.tpl ');
$smarty->display('cabecalho.tpl');
$smarty->display('rodape.tpl');

como eh que vou jogar os dados do meu bd no menu, conteudo, cabecalho e rodape....

valeu...

eduardo.

[5] Comentário enviado por jpfaria em 30/11/2006 - 05:15h

cara.. so vc usar includes.. no smarty.. ex...
$smarty->display('index.tpl');

ai la no seu index.tpl

{include file="header.tpl"}
{include file="menu.tpl"}
{include file="footer.tpl"}

abs

[6] Comentário enviado por YONATHA em 03/11/2007 - 17:37h

Parabéns João Paulo, esse metedodo facilita muito a vida e como você mesmo disse, organiza bem as estrutura so site.

Muito bom mesmo!

[7] Comentário enviado por fbinasco em 27/12/2007 - 15:21h

Gostei do artigo mas ficou uma duvida, ja utilizei o smarty em 3 projetos mas quando vou passar um array com numeros em vez de letras ele não funciona ex:

[php]
$array[nome] = NomedaPessoa;
[html]
NOME: {$array.nome}

Este funciona ok.
====================
mas este não.

$array[1] = NomedaPessoa;
NOME: {$array.1}

===================
enfim a pergunta é a seguinte, no smarty não da pra fazer isso mesmo ou a configuração do meu que não permite. Obrigado

[8] Comentário enviado por thifacco em 29/12/2009 - 14:24h

Instalei o Smarty e o PEAR no Ubuntu... estou curtindo muito programar com eles!
Excelente artigo!

[]s
@thifacco

[9] Comentário enviado por halen em 17/06/2011 - 11:32h

Muito bom,

vai ser uma bela ajuda para mim, e a documentação realmente é muito boa.

[10] Comentário enviado por napalmdth em 29/09/2011 - 13:39h

ai nesse caso seria assim:
$array[1] = NomedaPessoa;

HTML
NOME: {$array[1]}


qualquer coisa aqui a documentação em pt-br do smarty:
http://www.smarty.net/files/docs/manual-pt_BR-2.6.pdf


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts