Pular para o conteúdo

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.
João Paulo de Oliveira Faria jpfaria
Hits: 79.625 Categoria: PHP Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 5: 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";

?>
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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>
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   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

Instalando e configurando um servidor DNS (Bind)

Instalando o AWSTATS no Slackware

PEAR - Utilizando classes prontas e documentadas no PHP

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

Solução completa com o sendmail (segunda edição)

Prado - Orientação a componentes em PHP

Utilizando PHP para validar dados passados pelo usuário

Usando classes em conexão e consultas à banco de dados em PHP

Inteligência Artificial com PHP e MySQL (parte I)

Compactador de URL utilizando manipulação de diretórios do Linux com PHP

#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.

Contribuir com comentário

Entre na sua conta para comentar.