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.968 ]

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

Como hospedar um site/domínio de graça na sua casa

Kernel 2.6.9 no Slackware

Configurando o iptables-p2p no Slackware

Instalando o AWSTATS no Slackware

SpamAssassin no Sendmail usando o Procmail

Leitura recomendada

Utilizando PHP para validar dados passados pelo usuário

Instalando Lamp Stack no Servidor Debian

Guia completo do Ocomon módulo admin no Linux (exclusivo VOL)

Criando um sistema de banners rotativos em PHP

Capturando conteúdo de sites em PHP

  
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