Smarty Template Engine

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Smarty Template Engine - Presentation Transcript

    1.  Diego Tremper  Zend Certified Engineer  Entusiasta PHP  Palestrante  Estudante
    2.  Cenário  Solução  Benefícios  Smarty Template  Sintaxe  Instalação  Configuração  Variáveis  Modificadores de Variáveis  Funções  Demonstração prática  Conclusão
    3.  Padrão Espaguete
    4.  Padrão Espaguete
    5.  Padrão Espaguete “Qualifica-se de código espaguete um programa de computador que não segue as regras da programação estruturada e abusa de desvios, condicionais ou não, o que torna a leitura do mesmo por seres humanos bem difícil.” Wikipédia: http://pt.wikipedia.org/wiki/Código_espaguete
    6. Lógica Apresentação • Lógicas de negócio • Html • Acesso a dados • Design
    7.  Torna o código mais legível  Útil para equipes que possuem designers e programadores  Reduz o esforço utilizado para fazer alterações no código (tanto na apresentação quanto na lógica)  Torna mais fácil o reaproveitamento de código
    8.  Biblioteca escrita em PHP que possibilita fazer a separação entre a lógica de negócio e a camada de apresentação
    9.  Como funciona?  O Smarty separa a apresentação em templates  Templates podem ser organizados de maneira hierárquica ▪ um template pode incluir outro  O Smarty “mistura” as variáveis da aplicação no template , gerando o código para a visualização
    10.  Exemplo  Index.tpl Variáveis <html> <head> <title>{$titulo}</title> </head> <body> <h1>Seja bem vindo {$nome}!</h1> </body> </html>
    11.  Exemplo  Index.php <?php // . . . $smarty->assign(‘nome’, ‘Diego’); $smarty->assign(‘titulo’, ‘Página de boas vindas’); $smarty->display(‘index.tpl’); // . . .
    12. Variáveis <?php /* Smarty version 2.6.20, created on 2008- 10-14 21:45:22 compiled from lista.tpl */ ?> <html> <head> <title><?php echo $this->_tpl_vars['titulo']; ?> </title> Smarty </head> <body> <h1>Seja bem vindo <?php echo $this- >_tpl_vars['nome']; ?>!</h1> </body> </html> Index.tpl Compilação
    13. <?php /* Smarty version 2.6.20, created on 2008-10-14 21:45:22 compiled from lista.tpl */ ?> <html> <html> <head> <head> <title>Página de boas <title><?php echo $this- vindas</title> >_tpl_vars['titulo']; ?> </head> </title> <body> </head> <h1>Seja bem vindo Diego!</h1> <body> </body> <h1>Seja bem vindo <?php echo $this- </html> >_tpl_vars['nome']; ?>!</h1> </body> Após execução do PHP </html> Código gerado pelo Smarty
    14.  Sintaxe  Todas as tags de template do Smarty contém delimitadores. Por padrão, estes delimitadores são { e }, mas eles podem ser alterados. Tags Smarty Tags HTML <html> <head> <title>{$titulo}</title> </head> <body> <h1>Seja bem vindo {$nome}!</h1> </body> </html>
    15.  Comentários  Os comentários do template ficam entre asteriscos dentro de delimitadores {* mostra título da página *} <title>{$titulo}</title> <boby> {* exibe combobox *} <select> <option>Selecione ..</option> </select> </body> </html>
    16.  Configuração  Após descompactar os arquivos do Smart ▪ Incluir o arquivo principal da biblioteca ▪ Criar uma instância da classe Smarty require 'Smarty.class.php'; $smarty = new Smarty;
    17.  Configuração  É necessário dizer onde estarão os diretórios que o Smarty utilizará // . . . $smarty->template_dir = '/diretorio/templates/'; $smarty ->compile_dir = '/diretorio/templates_c/'; $smarty ->config_dir = '/diretorio/'; $smarty ->cache_dir = '/diretorio/cache/'; // . . .
    18.  Variáveis  Para utilizar as variáveis dentro do template é necessário fazer a atribuição das mesmas  A atribuição de variáveis pode ser feita através do método Smart::assign() $smarty->assign(‚nome_variavel\", $valor);
    19.  Variáveis (cont..) require 'Smarty.class.php'; $smarty = new Smarty; $valor = 10; $smarty->assign(‚nome_variavel\", $valor); $smarty->display('index.tpl'); index.tpl O valor da variável é: {$nome_variavel}
    20.  Variáveis (cont..) {* exibe uma variável *} {$variavel} {* exibe o terceiro elemento de uma matriz *} {$matriz[3]} {* exibe o elemento ‚nome‛ de uma matriz *} {$matriz.nome}
    21.  Funções  Funções são processadas e exibidas colocando-se a função e seus atributos entre delimitadores. {* Exemplo *} {nome_funcao atributo1=‚valor 1‛ atributo2=$variavel} {* include template *} {include file=‚cabecalho.tpl‛} {* alterna as cores: branca e cinza *} {cycle values=‚#fff,#e5e5e5‛}
    22.  Funções internas  Funções internas são parte integral da linguagem de template. Você não pode criar funções personalizadas com o mesmo nome de uma função interna, e também não pode modificar funções internas.  foreach,foreachelse,include,literal,if,elseif,else…
    23.  Funções internas - foreach {* este exemplo irá mostrar todos os valores da matriz $custid *} {foreach from=$nomes_empregados item=nome} Nome: {$nome}<br> {/foreach} Semelhante: foreach ($nomes_empregados as $nome) { echo ‚Nome: ‛ . $nome . ‚<br>‛; }
    24.  Funções internas - if {if $nome == \"Diego\"} Bem vindo {$nome}! {elseif $nome == \"Andre\"} Bom dia professor {$nome}! {else} Bom dia senhor {$nome} {/if} {if $nome == \" Diego\" || $nome == \" Andre \"} . . . {/if}
    25.  Funções internas - include {* inclue o template cabecalho.tpl *} {include file=\"cabecalho.tpl\"} {* usando o caminho absoluto *} {include file=\"file:C:/local/meus/templates/cabecalho.tpl\"}
    26.  Funções personalizadas  O Smarty possui várias funções personalizadas que você pode usar em seus templates.  Estas funções normalmente estão disponíveis dentro do diretório plugins do Smarty  assign, counter,cycle,
    27.  Funções personalizadas – html_options <select name=‚cidades‛> {html_options options=$cidades selected=$cidade_selecionada} </select> OUTPUT: <select name=‚cidades‛> <option value=\"1000\">Alegrete</option> <option value=\"1001\">Canoas</option> <option value=\"1002\">Erechim</option> <option value=\"1003\" selected=\"selected\">Porto Alegre</option> </select>
    28.  Funções personalizadas – mailto {mailto address=\"eu@exemplo.com\"} OUTPUT: <a href=\"mailto:eu@exemplo.com\">eu@exemplo.com</a> {mailto address=\"eu@exemplo.com\" text=‚contato\"} OUTPUT: <a href=\"mailto:eu@exemplo.com\">contato</a>
    29.  Modificadores de variáveis  Permitem a modificação de variáveis, funções ou strings {* Faz o título ficar com letras maiúsculas *} <h2>{$titulo|upper}</h2> <h3>{‚SUBTITULO DA PAGINA‛|lower}</h3> {* Faz com que $topico use somente 40 caracteres, e coloca ... no fim da frase *} Tópico: {$topico|truncate:40:\"...\"}
    30.  Modificadores de variáveis (cont…)  É possível também aninhar modificadores {‚Diego‛|cat:‛ Tremper‛|upper} OUTPUT: DIEGO TREMPER
    31.  Modificadores de variáveis (cont…)  Outros modificadores… {* Substitui Brasilia por Porto Alegre *} {‚Em Brasilia 19 horas‛|replace:‛Brasilia‛:‛Porto Alegre‚} {* Ex.: Em Porto Alegre 19 horas *} {* Adiciona espaços entre cada caractere *} {‚Em Brasilia 19 horas‛|spacify} {* Ex.: E m B r a s i l i a 1 9 h o r a s*}
    32. Demonstração Prática
    33.  Existem alternativas para manter a organização em seu código  Separar a lógica de apresentação da lógica de negócio é uma das mais básicas  Não é fácil! Mas com o tempo acaba virando um costume
    34. Perguntas?
    35. Obrigado!!! Contato: diegotremper@gmail.com LinkedIn: http://www.linkedin.com/in/diegotremper Blog: http://www.diegotremper.com
    36.  Smarty: http://www.smarty.net/  PHP: http://www.php.net

    + diegotremperdiegotremper, 2 years ago

    custom

    2006 views, 1 favs, 4 embeds more stats

    Palestra sobre a utilização de Smarty Template em more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 2006
      • 1867 on SlideShare
      • 139 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 40
    Most viewed embeds
    • 120 views on http://blog.diegotremper.com
    • 15 views on http://planet.prophp.com.br
    • 3 views on http://ww.javabb.org
    • 1 views on http://www.infoblogs.com.br

    more

    All embeds
    • 120 views on http://blog.diegotremper.com
    • 15 views on http://planet.prophp.com.br
    • 3 views on http://ww.javabb.org
    • 1 views on http://www.infoblogs.com.br

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories