Desenvolvimento WEB PHP - MVC Apresentação 01 MVC – Visão geral Camada de apresentação Smarty
MVC MVC – Padrão de projeto de software
MVC Arquitetura de desenvolvimento em 3 camadas Model - Modelo que implementa a camada de dados  Controller – Controle das requisições e acesso a camada model View - Interface com usuário
View – Camada de Apresentação Camada responsável pela interface com o usuário Envia as requisições do usuário para a camada de controle da aplicação Torna a interface independente do negócio
Smarty Para representar nossa camada de apresentação (view) usaremos o Smarty. http://smarty.php.net/
O que é o Smarty? Sistema de templates para PHP; Permite a separação da aplicação lógica e o conteúdo de sua apresentação; Permite trabalhar no template apenas as regras de layout
Smarty – Características Sistema de compilação de templates; Só recompila os arquivos de template que foram mudados; Extensível, permite a criação de funções próprias  e seus próprios modificadores de variáveis; Suporte de caching embutido; É possível embutir o código PHP diretamente em seus arquivos de template, apesar de não ser recomendado; Arquitetura de Plugins;
Smarty - Instalação Requisitos Servidor web com PHP 4.0.6 ou superior Faça o download da ultima versão do Smarty Crie a seguinte estrutura: /  - raiz, onde estarão os seus aplicativos em php  /cache  - caso queira aplicar cache na sua aplicação esta é a pasta onde ficará o arquivo de cache (chmod 755)  /templates  - pasta onde o WebDesigner vai trabalhar, mais propriamente dito como o diretório dos templates (HTML's)  /templates_c  - pasta onde o ficará a compilação do template + php, onde o proprio smarty irá gerar os arquivos ali listados. (chmod 755)
Smarty - Configuração Exemplo: require('Smarty.class.php'); $smarty = new Smarty; $smarty->assign('nome','Thomas'); $smarty->display('index.tpl');
Smarty – PHP Constantes SMARTY_DIR   Caminho completo do path para a localização dos arquivos de classe da Smarty. Ex: define("SMARTY_DIR","/usr/local/lib/php/Smarty/"); require_once(SMARTY_DIR."Smarty.class.php");
$template_dir   Este é o nome padrão do diretório de templates. Por padrão é "./templates", significando que irá olhar para o diretório de templates no mesmo diretório que está executando o script PHP. Smarty – PHP Variáveis
Smarty – PHP Variáveis $compile_dir Esse é o nome do diretório onde os template compilados estão localizados Por padrão é "./templates_c", significando que irá olhar para o diretório templates_c no mesmo diretório que está executando o script PHP.
Smarty – PHP Variáveis $plugins_dir Esse é o diretório onde Smarty irá procurar por plugins que são necessários. O Padrão é "plugins" sob o SMARTY_DIR. Se vocês especificar um path relativo, Smarty irá primeiro procurar sob o SMARTY_DIR, então relativo para o diretório atual.
Smarty – PHP Variáveis $cache_dir Isso é o nome do diretório onde os caches do template são armazenados. Por padrão isso é "./cache", significando que irá olhar para o diretório de cache no mesmo diretório que executar scripts PHP.
Smarty – PHP Variáveis $cache_lifetime Isso é o tempo em segundos que um cache de template é válido. Uma vez que este tempo está expirado, o cache irá ser gerado novamente.
Smarty – PHP Funções assign Isso é usado para fixar valores para o template. Você pode explicitamente passar pares de nomes/valores, ou um array associativo contendo o par de nome/valor $smarty->assign("Name","Fred"); $smarty->assign("Address",$address);  $smarty->assign(array("city" => "Lincoln“,    "state" => "Nebraska"));
Smarty – PHP Funções display Isso mostra o template executando todas as ações do mesmo, baseados nas variáveis passadas para o mesmo. $smarty->display("index.tpl");
Smarty – PHP Funções fetch Essa função retorna a saída do template ao invés de mostrá-lo. $output = $smarty->fetch("index.tpl");  echo $output;
Smarty – Templates  Sintaxe básica Delimitadores: {  } Para o Smarty, todo o conteúdo fora dos delimitadores é mostrado como conteúdo estático, ou inalterável. Quando o Smarty encontra tags de template, ele tenta interpretá-las, e então mostra a saída apropriada em seu lugar. Comentários: {*  *} Comentários do Smarty não são exibidos no resultado final do template.
Smarty – Templates Funções Cada tag Smarty mostra uma variável ou utiliza algum tipo de função. Funções são processadas e exibidas colocando-se a função e seus atributos entre delimitadores,  exemplo:  {funcname attr1="val" attr2="val"} {include file="cabecalho.tpl"}
Smarty – Templates Matemática Matemática Matemática pode ser aplicada diretamente aos valores de variáveis.  {* exemplo *} {if ($foo$baz*134232+10+$b+10) == 0} ... {/if}
Smarty – Templates Variáveis Variáveis que são definidas do PHP ou dentro do template são referenciadas precedendo elas com o sinal $.
Smarty – Templates Variáveis Exemplo 1: index.php:  $smarty = new Smarty; $smarty->assign(‘Nome',”João”); $smarty->display('index.tpl');  index.tpl:  Nome: {$nome}<br> MOSTRA: Nome: João
Smarty – Templates Variáveis Exemplo 2: index.tpl: {assign var=&quot;nome&quot; value=&quot;Bob&quot;} Nome: {$nome} MOSTRA: Nome: Bob
Smarty – Templates Variável reservada $smarty A variável reservada {$smarty} pode ser utilizada para acessar variáveis especiais do template.
Smarty – Templates Variável reservada $smarty Mostra o valor de “page” da URL (GET)  {$smarty.get.page}  Mostra a variável &quot;page&quot; de um formulário (POST)  {$smarty.post.page}  Mostra o valor do cookie &quot;username“ {$smarty.cookies.username}  Mostra a variável de session do php &quot;id“ {$smarty.session.id} Mostra a variável &quot;username&quot; da união do request {$smarty.request.username}
Smarty – Templates Variável reservada $smarty {$smarty.const} Você pode acessar o valor de constantes PHP diretamente Ex: {$smarty.const._MY_CONST_VAL} {$smarty.section}, {$smarty.foreach} A variável {$smarty} pode ser usada para se referir a propriedades 'section' e 'foreach' de loop.
Smarty – Templates Modificadores de variáveis Modificadores de variáveis podem ser aplicados a variáveis, funções personalizadas ou strings. Para aplicar um modificador, especifique o valor seguido por | e o nome do modificador. Um modificador aceita parâmetros adicionais que afetam o seu comportamento. Estes parâmetros vem após o nome do modificador e são separados por : (dois pontos).
Smarty – Templates Modificadores de variáveis Exemplos: Faz o título ficar com letras maiúsculas {$titulo|upper} Faz com que $topico use somente 40 caracteres, e coloca ... no fim da frase Tópico: {$topico|truncate:40:&quot;...&quot;}
Smarty – Templates Modificadores de variáveis Alguns modificadores: count_characters : conta o número de caracteres em  uma variável.  Ex: {$articleTitle|count_characters} default : define um valor padrão para uma variável caso esteja vazia. Ex: {$myTitle|default:&quot;no title&quot;}
Smarty – Templates Modificadores de variáveis lower : Converte para minúsculas uma variável. Ex:  {$articleTitle|lower}  upper : Converte para maiúsculas uma variável Ex:  {$articleTitle|upper}  replace : Localiza e substitui strings em uma variável Ex:  {$articleTitle|replace:“Titulo&quot;:“Title&quot;}
Smarty – Templates Combinando modificadores de variáveis Você pode aplicar a quantidade de moficadores que quiser à uma variável. Eles serão aplicados na ordem em que foram combinados, da esquerda para direita. Eles devem ser separados com o caracter | . Ex: {$articleTitle|lower|truncate:30|spacify}
Smarty – Templates Funções Internas O Smarty contém várias 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.
Smarty – Templates Funções Internas include Tags include são usadas para incluir outros templates no template atual. Quaisquer variáveis disponíveis no template atual também estarão disponíveis junto com template incluído. A tag include deve ter o atributo &quot;file&quot;, o qual contém o caminho do arquivo a incluir. {include file=&quot;cabecalho.tpl&quot;}
Smarty – Templates Funções Internas if,elseif,else Comandos {if} no Smarty tem muito da mesma flexibilidade do php, com algumas características à mais para o sistema de template. Todo if deve ter o seu /if. else e elseif também são permitidos. Todos os condicionais do PHP são reconhecidos, tais como ||, or, &&, and, etc.
Smarty – Templates Funções Internas Exemplos: {if $name == &quot;Fred&quot; || $name == &quot;Wilma&quot;} ... {/if}  {if $name == &quot;Fred&quot;} Bem vindo Sr.  {elseif $name == &quot;Wilma&quot;} Bem vinda Sra.  {else}  Bem vindo, seja qual for seu nome.  {/if}
Smarty – Templates Funções Internas section,sectionelse Os 'sections' são usados para percorrer os dados de uma matriz. Todas as tags  section  devem ser finalizadas com  /section . Os parâmetros obrigatórios são  name  e  loop . O nome da 'section' pode ser o que você quiser, contendo letras, números e sublinhados. As 'sections' podem ser aninhadas, e os nomes das sections devem ser únicos.
Smarty – Templates Funções Internas A variável 'loop' (normalmente uma matriz de valores) determina o número de vezes que a section será percorrida. Quando estiver exibindo uma variável dentro de uma section, o nome da section deve estar ao lado da variável dentro de conchetes []. sectionelse é executado quando não houver valores na variável 'loop'.
Smarty – Templates Funções Internas Exemplo: {section name=consumidor loop=$custid} id: {$custid[consumidor]}<br> {sectionelse} não há valores em $custid.  {/section}  matrizes associativas {section name=consumidor loop=$contatos} nome: {$contatos[consumidor].nome}<br> telefone: {$contatos[consumidor].telefone}<br> celular: {$contatos[consumidor].celular}<br> e-mail: {$contatos[consumidor].email}<p> {/section}
Smarty – Templates Funções Internas foreach,foreachelse foreach é uma alternativa para loops section. foreach é usado para pegar cada elemento de uma matriz associativa simples. A sintaxe para foreach é muito mais simples do que section, mas tem a desvantagem de poder ser usada apenas para uma única matriz. Tags foreach devem ter seu par /foreach. Os parâmetros requeridos são from e item. Loops foreach podem ser aninhados. A variável from (normalmente uma matriz de valores) determina o número de vezes do loop foreach.  foreachelse é executado se não houverem mais valores na variável from.
Smarty – Templates Funções Internas Exemplo: {*este exemplo irá mostrar todos os valores da matriz $custid*}  {foreach from=$custid item=curr_id} id: {$curr_id}<br> {/foreach}   MOSTRA: id: 1000<br> id: 1001<br> id: 1002<br>
Smarty – Templates Funções Internas PHP Tags php permitem que códigos php sejam embutidos diretamente nos templates. {php} // incluindo um script php include(&quot;/caminho/para/condicoes_do_tempo.php&quot;); {/php}
Smarty – Templates Funções Internas literal Tags literal permitem que um bloco de dados seja tratado literalmente, ou seja, não é interpretado pelo Smarty. Isto é tipicamente usado com blocos de código javascript ou folhas de estilo (stylesheet), que às vezes contém chaves que podem entrar em conflito com o delimitador de sintaxe.  Qualquer coisa entre {literal}{/literal} não é interpretado, mas é mostrado. {literal} <script language=javascript> function alo() { alert(“alo”); } </script> {/literal}
Smarty – Templates Funções Personalizadas O Smarty contém várias funções personalizadas que você pode usar em seus templates. O Smarty suporta que você crie suas próprias funções personalizadas e use em seus templates.
Smarty – Templates Funções Personalizadas assign assign é usado para definir o valor de uma variável de template durante a execução do template. {assign var=&quot;nome&quot; value=&quot;Bob&quot;}  O valor de $nome é {$nome}. MOSTRA:  O valor de $nome é Bob.
Smarty – Templates Funções Personalizadas html_options html_options é uma função personalizada que cria um grupo html option com os dados fornecidos. Ela está atenta de quais itens estão selecionados por padrão. Atributos obrigatórios são 'values' e 'output', a menos que você use options no lugar.
Smarty – Templates Funções Personalizadas Exemplo: <select name=customer_id> {html_options values=$cust_ids selected=$customer_id output=$cust_names} </select> Matriz associativa <select name=customer_id> {html_options options=$cust_options  selected=$customer_id}  </select>
Smarty – Templates Funções Personalizadas html_radios Mesma funcionalidade da função anterior mas monta um grupo de inputs do tipo radio button. html_checkboxes Mesma funcionalidade da função anterior mas monta um grupo de inputs do tipo checkbox.
Smarty – Templates Funções Personalizadas Exemplos: {html_radios  values=$cust_ids     output=$cust_names   OU   options=$cust_options     checked=$customer_id  (array)   separator=&quot;<br />“ }
Smarty – Templates Funções Personalizadas Exemplos: {html_checkboxes  values=$cust_ids     output=$cust_names   OU   options=$cust_checkboxes   checked=$customer_id          separator=&quot;<br />“ }
Referências Documentação do Smarty http://smarty.php.net/docs.php
Duvidas?

Mais conteúdo relacionado

ODP
Php 05 Mvc
ODP
Php 02 Primeiros Passos
PPT
Prog web 02-php-primeiros-passos
PPTX
Introdução ao PHP - Criação de sites II
PPTX
Aula 5 PHP - Criação de sites II
PPTX
Criando APIs com Node e TypeScript
PPT
Introdução ao Smarty
PPTX
Aula 01 - Curso PHP e MySQL
Php 05 Mvc
Php 02 Primeiros Passos
Prog web 02-php-primeiros-passos
Introdução ao PHP - Criação de sites II
Aula 5 PHP - Criação de sites II
Criando APIs com Node e TypeScript
Introdução ao Smarty
Aula 01 - Curso PHP e MySQL

Mais procurados (20)

PPTX
Arrays PHP - Criação de sites II
PDF
PHP Jedi - Boas Práticas e Alta Performance
PPTX
Aula 02 - Curso PHP e MySQL
PPTX
M5 php rc
PDF
Desenvolvimento ágil com Kohana framework
PDF
PHP Day - PHP para iniciantes
PPTX
Otimização e Escalabilidade
PDF
Hooks, o condimento mágico e escondido do WordPress
PDF
Estruturas blade-repeticao
PPT
Curso de Introdução - PHP
PDF
Perl Moderno, dia5
PDF
Smarty Template Engine
PDF
Refatoração - aquela caprichada no código
PDF
LabMM4 (T13 - 12/13) - Funções
PDF
Perl Moderno, dia2
PDF
Perl Moderno, dia4
PDF
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PPTX
DevTalk Zoox 04/2016
PDF
Evento Front End SP - Organizando o Javascript
PDF
Serversidephp pptx2-120418140114-phpapp01
Arrays PHP - Criação de sites II
PHP Jedi - Boas Práticas e Alta Performance
Aula 02 - Curso PHP e MySQL
M5 php rc
Desenvolvimento ágil com Kohana framework
PHP Day - PHP para iniciantes
Otimização e Escalabilidade
Hooks, o condimento mágico e escondido do WordPress
Estruturas blade-repeticao
Curso de Introdução - PHP
Perl Moderno, dia5
Smarty Template Engine
Refatoração - aquela caprichada no código
LabMM4 (T13 - 12/13) - Funções
Perl Moderno, dia2
Perl Moderno, dia4
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
DevTalk Zoox 04/2016
Evento Front End SP - Organizando o Javascript
Serversidephp pptx2-120418140114-phpapp01
Anúncio

Destaque (20)

ODP
Usando MVC para agilizar o desenvolvimento
PPTX
Palestra Flisol 2012 - Campinas
PDF
Strings, Arrays e Manipulação Datas em PHP
PDF
Test-Driven Development with PHP
PDF
Variaveis Superglobais
PDF
Criando e consumindo webservice REST com PHP e JSON
PDF
Cookies e Sessões e PHP
PPT
Aula 5 - Cookies e Sessões em PHP
ODP
Desenvolvimento Mobile Web usando PHP
PDF
Web Service and PHP, REST and SOAP
PDF
Como implementar APIs RESTful em PHP
PDF
Construindo uma Rede Social com PHP e Software Livre
PDF
Polimorfismo
PDF
php4android: desenvolva aplicações android em PHP
PDF
Servicio y Consumo de Servicios REST en PHP
PDF
Consuming RESTful services in PHP
PDF
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
PDF
Rest api design by george reese
PDF
Consumindo dados via web service no android
PDF
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
Usando MVC para agilizar o desenvolvimento
Palestra Flisol 2012 - Campinas
Strings, Arrays e Manipulação Datas em PHP
Test-Driven Development with PHP
Variaveis Superglobais
Criando e consumindo webservice REST com PHP e JSON
Cookies e Sessões e PHP
Aula 5 - Cookies e Sessões em PHP
Desenvolvimento Mobile Web usando PHP
Web Service and PHP, REST and SOAP
Como implementar APIs RESTful em PHP
Construindo uma Rede Social com PHP e Software Livre
Polimorfismo
php4android: desenvolva aplicações android em PHP
Servicio y Consumo de Servicios REST en PHP
Consuming RESTful services in PHP
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Rest api design by george reese
Consumindo dados via web service no android
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
Anúncio

Semelhante a Slides (20)

PDF
Smarty + PHP
PDF
Aula 10 - Trabalhando com Templates - Programação Web
PDF
User Interface (in portuguese)
PPT
Mini-curso codeIgniter - aula 1
PDF
Linguagem PHP para principiantes
PDF
PHP, Smarty e o Template View Pattern
PDF
PHP Aula 06 - Include, Require e Querystring
PPT
Aula3
PPT
PHP GERAL
PPT
Desenvolvimento de web sites com php
PPT
Aula 01 - Programação Web - PHP
ODP
Oficina de Web Design Lecom - PHP e JavaScript
PDF
Desenvolvimento Web Avançado usando PHP
PPTX
PPT
A Linguagem Php
PPTX
Php Visao Geral Svs
PPTX
Introdução a Linguagem de Programação PHP
PDF
Desenvolvimento de Software I - USBWEBSERVER - PHP
PDF
O que são linguagens de scripting m18
Smarty + PHP
Aula 10 - Trabalhando com Templates - Programação Web
User Interface (in portuguese)
Mini-curso codeIgniter - aula 1
Linguagem PHP para principiantes
PHP, Smarty e o Template View Pattern
PHP Aula 06 - Include, Require e Querystring
Aula3
PHP GERAL
Desenvolvimento de web sites com php
Aula 01 - Programação Web - PHP
Oficina de Web Design Lecom - PHP e JavaScript
Desenvolvimento Web Avançado usando PHP
A Linguagem Php
Php Visao Geral Svs
Introdução a Linguagem de Programação PHP
Desenvolvimento de Software I - USBWEBSERVER - PHP
O que são linguagens de scripting m18

Slides

  • 1. Desenvolvimento WEB PHP - MVC Apresentação 01 MVC – Visão geral Camada de apresentação Smarty
  • 2. MVC MVC – Padrão de projeto de software
  • 3. MVC Arquitetura de desenvolvimento em 3 camadas Model - Modelo que implementa a camada de dados Controller – Controle das requisições e acesso a camada model View - Interface com usuário
  • 4. View – Camada de Apresentação Camada responsável pela interface com o usuário Envia as requisições do usuário para a camada de controle da aplicação Torna a interface independente do negócio
  • 5. Smarty Para representar nossa camada de apresentação (view) usaremos o Smarty. http://smarty.php.net/
  • 6. O que é o Smarty? Sistema de templates para PHP; Permite a separação da aplicação lógica e o conteúdo de sua apresentação; Permite trabalhar no template apenas as regras de layout
  • 7. Smarty – Características Sistema de compilação de templates; Só recompila os arquivos de template que foram mudados; Extensível, permite a criação de funções próprias e seus próprios modificadores de variáveis; Suporte de caching embutido; É possível embutir o código PHP diretamente em seus arquivos de template, apesar de não ser recomendado; Arquitetura de Plugins;
  • 8. Smarty - Instalação Requisitos Servidor web com PHP 4.0.6 ou superior Faça o download da ultima versão do Smarty Crie a seguinte estrutura: / - raiz, onde estarão os seus aplicativos em php /cache - caso queira aplicar cache na sua aplicação esta é a pasta onde ficará o arquivo de cache (chmod 755) /templates - pasta onde o WebDesigner vai trabalhar, mais propriamente dito como o diretório dos templates (HTML's) /templates_c - pasta onde o ficará a compilação do template + php, onde o proprio smarty irá gerar os arquivos ali listados. (chmod 755)
  • 9. Smarty - Configuração Exemplo: require('Smarty.class.php'); $smarty = new Smarty; $smarty->assign('nome','Thomas'); $smarty->display('index.tpl');
  • 10. Smarty – PHP Constantes SMARTY_DIR Caminho completo do path para a localização dos arquivos de classe da Smarty. Ex: define(&quot;SMARTY_DIR&quot;,&quot;/usr/local/lib/php/Smarty/&quot;); require_once(SMARTY_DIR.&quot;Smarty.class.php&quot;);
  • 11. $template_dir Este é o nome padrão do diretório de templates. Por padrão é &quot;./templates&quot;, significando que irá olhar para o diretório de templates no mesmo diretório que está executando o script PHP. Smarty – PHP Variáveis
  • 12. Smarty – PHP Variáveis $compile_dir Esse é o nome do diretório onde os template compilados estão localizados Por padrão é &quot;./templates_c&quot;, significando que irá olhar para o diretório templates_c no mesmo diretório que está executando o script PHP.
  • 13. Smarty – PHP Variáveis $plugins_dir Esse é o diretório onde Smarty irá procurar por plugins que são necessários. O Padrão é &quot;plugins&quot; sob o SMARTY_DIR. Se vocês especificar um path relativo, Smarty irá primeiro procurar sob o SMARTY_DIR, então relativo para o diretório atual.
  • 14. Smarty – PHP Variáveis $cache_dir Isso é o nome do diretório onde os caches do template são armazenados. Por padrão isso é &quot;./cache&quot;, significando que irá olhar para o diretório de cache no mesmo diretório que executar scripts PHP.
  • 15. Smarty – PHP Variáveis $cache_lifetime Isso é o tempo em segundos que um cache de template é válido. Uma vez que este tempo está expirado, o cache irá ser gerado novamente.
  • 16. Smarty – PHP Funções assign Isso é usado para fixar valores para o template. Você pode explicitamente passar pares de nomes/valores, ou um array associativo contendo o par de nome/valor $smarty->assign(&quot;Name&quot;,&quot;Fred&quot;); $smarty->assign(&quot;Address&quot;,$address); $smarty->assign(array(&quot;city&quot; => &quot;Lincoln“, &quot;state&quot; => &quot;Nebraska&quot;));
  • 17. Smarty – PHP Funções display Isso mostra o template executando todas as ações do mesmo, baseados nas variáveis passadas para o mesmo. $smarty->display(&quot;index.tpl&quot;);
  • 18. Smarty – PHP Funções fetch Essa função retorna a saída do template ao invés de mostrá-lo. $output = $smarty->fetch(&quot;index.tpl&quot;); echo $output;
  • 19. Smarty – Templates Sintaxe básica Delimitadores: { } Para o Smarty, todo o conteúdo fora dos delimitadores é mostrado como conteúdo estático, ou inalterável. Quando o Smarty encontra tags de template, ele tenta interpretá-las, e então mostra a saída apropriada em seu lugar. Comentários: {* *} Comentários do Smarty não são exibidos no resultado final do template.
  • 20. Smarty – Templates Funções Cada tag Smarty mostra uma variável ou utiliza algum tipo de função. Funções são processadas e exibidas colocando-se a função e seus atributos entre delimitadores, exemplo: {funcname attr1=&quot;val&quot; attr2=&quot;val&quot;} {include file=&quot;cabecalho.tpl&quot;}
  • 21. Smarty – Templates Matemática Matemática Matemática pode ser aplicada diretamente aos valores de variáveis. {* exemplo *} {if ($foo$baz*134232+10+$b+10) == 0} ... {/if}
  • 22. Smarty – Templates Variáveis Variáveis que são definidas do PHP ou dentro do template são referenciadas precedendo elas com o sinal $.
  • 23. Smarty – Templates Variáveis Exemplo 1: index.php: $smarty = new Smarty; $smarty->assign(‘Nome',”João”); $smarty->display('index.tpl'); index.tpl: Nome: {$nome}<br> MOSTRA: Nome: João
  • 24. Smarty – Templates Variáveis Exemplo 2: index.tpl: {assign var=&quot;nome&quot; value=&quot;Bob&quot;} Nome: {$nome} MOSTRA: Nome: Bob
  • 25. Smarty – Templates Variável reservada $smarty A variável reservada {$smarty} pode ser utilizada para acessar variáveis especiais do template.
  • 26. Smarty – Templates Variável reservada $smarty Mostra o valor de “page” da URL (GET) {$smarty.get.page} Mostra a variável &quot;page&quot; de um formulário (POST) {$smarty.post.page} Mostra o valor do cookie &quot;username“ {$smarty.cookies.username} Mostra a variável de session do php &quot;id“ {$smarty.session.id} Mostra a variável &quot;username&quot; da união do request {$smarty.request.username}
  • 27. Smarty – Templates Variável reservada $smarty {$smarty.const} Você pode acessar o valor de constantes PHP diretamente Ex: {$smarty.const._MY_CONST_VAL} {$smarty.section}, {$smarty.foreach} A variável {$smarty} pode ser usada para se referir a propriedades 'section' e 'foreach' de loop.
  • 28. Smarty – Templates Modificadores de variáveis Modificadores de variáveis podem ser aplicados a variáveis, funções personalizadas ou strings. Para aplicar um modificador, especifique o valor seguido por | e o nome do modificador. Um modificador aceita parâmetros adicionais que afetam o seu comportamento. Estes parâmetros vem após o nome do modificador e são separados por : (dois pontos).
  • 29. Smarty – Templates Modificadores de variáveis Exemplos: Faz o título ficar com letras maiúsculas {$titulo|upper} Faz com que $topico use somente 40 caracteres, e coloca ... no fim da frase Tópico: {$topico|truncate:40:&quot;...&quot;}
  • 30. Smarty – Templates Modificadores de variáveis Alguns modificadores: count_characters : conta o número de caracteres em uma variável. Ex: {$articleTitle|count_characters} default : define um valor padrão para uma variável caso esteja vazia. Ex: {$myTitle|default:&quot;no title&quot;}
  • 31. Smarty – Templates Modificadores de variáveis lower : Converte para minúsculas uma variável. Ex: {$articleTitle|lower} upper : Converte para maiúsculas uma variável Ex: {$articleTitle|upper} replace : Localiza e substitui strings em uma variável Ex: {$articleTitle|replace:“Titulo&quot;:“Title&quot;}
  • 32. Smarty – Templates Combinando modificadores de variáveis Você pode aplicar a quantidade de moficadores que quiser à uma variável. Eles serão aplicados na ordem em que foram combinados, da esquerda para direita. Eles devem ser separados com o caracter | . Ex: {$articleTitle|lower|truncate:30|spacify}
  • 33. Smarty – Templates Funções Internas O Smarty contém várias 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.
  • 34. Smarty – Templates Funções Internas include Tags include são usadas para incluir outros templates no template atual. Quaisquer variáveis disponíveis no template atual também estarão disponíveis junto com template incluído. A tag include deve ter o atributo &quot;file&quot;, o qual contém o caminho do arquivo a incluir. {include file=&quot;cabecalho.tpl&quot;}
  • 35. Smarty – Templates Funções Internas if,elseif,else Comandos {if} no Smarty tem muito da mesma flexibilidade do php, com algumas características à mais para o sistema de template. Todo if deve ter o seu /if. else e elseif também são permitidos. Todos os condicionais do PHP são reconhecidos, tais como ||, or, &&, and, etc.
  • 36. Smarty – Templates Funções Internas Exemplos: {if $name == &quot;Fred&quot; || $name == &quot;Wilma&quot;} ... {/if} {if $name == &quot;Fred&quot;} Bem vindo Sr. {elseif $name == &quot;Wilma&quot;} Bem vinda Sra. {else} Bem vindo, seja qual for seu nome. {/if}
  • 37. Smarty – Templates Funções Internas section,sectionelse Os 'sections' são usados para percorrer os dados de uma matriz. Todas as tags section devem ser finalizadas com /section . Os parâmetros obrigatórios são name e loop . O nome da 'section' pode ser o que você quiser, contendo letras, números e sublinhados. As 'sections' podem ser aninhadas, e os nomes das sections devem ser únicos.
  • 38. Smarty – Templates Funções Internas A variável 'loop' (normalmente uma matriz de valores) determina o número de vezes que a section será percorrida. Quando estiver exibindo uma variável dentro de uma section, o nome da section deve estar ao lado da variável dentro de conchetes []. sectionelse é executado quando não houver valores na variável 'loop'.
  • 39. Smarty – Templates Funções Internas Exemplo: {section name=consumidor loop=$custid} id: {$custid[consumidor]}<br> {sectionelse} não há valores em $custid. {/section} matrizes associativas {section name=consumidor loop=$contatos} nome: {$contatos[consumidor].nome}<br> telefone: {$contatos[consumidor].telefone}<br> celular: {$contatos[consumidor].celular}<br> e-mail: {$contatos[consumidor].email}<p> {/section}
  • 40. Smarty – Templates Funções Internas foreach,foreachelse foreach é uma alternativa para loops section. foreach é usado para pegar cada elemento de uma matriz associativa simples. A sintaxe para foreach é muito mais simples do que section, mas tem a desvantagem de poder ser usada apenas para uma única matriz. Tags foreach devem ter seu par /foreach. Os parâmetros requeridos são from e item. Loops foreach podem ser aninhados. A variável from (normalmente uma matriz de valores) determina o número de vezes do loop foreach. foreachelse é executado se não houverem mais valores na variável from.
  • 41. Smarty – Templates Funções Internas Exemplo: {*este exemplo irá mostrar todos os valores da matriz $custid*} {foreach from=$custid item=curr_id} id: {$curr_id}<br> {/foreach} MOSTRA: id: 1000<br> id: 1001<br> id: 1002<br>
  • 42. Smarty – Templates Funções Internas PHP Tags php permitem que códigos php sejam embutidos diretamente nos templates. {php} // incluindo um script php include(&quot;/caminho/para/condicoes_do_tempo.php&quot;); {/php}
  • 43. Smarty – Templates Funções Internas literal Tags literal permitem que um bloco de dados seja tratado literalmente, ou seja, não é interpretado pelo Smarty. Isto é tipicamente usado com blocos de código javascript ou folhas de estilo (stylesheet), que às vezes contém chaves que podem entrar em conflito com o delimitador de sintaxe. Qualquer coisa entre {literal}{/literal} não é interpretado, mas é mostrado. {literal} <script language=javascript> function alo() { alert(“alo”); } </script> {/literal}
  • 44. Smarty – Templates Funções Personalizadas O Smarty contém várias funções personalizadas que você pode usar em seus templates. O Smarty suporta que você crie suas próprias funções personalizadas e use em seus templates.
  • 45. Smarty – Templates Funções Personalizadas assign assign é usado para definir o valor de uma variável de template durante a execução do template. {assign var=&quot;nome&quot; value=&quot;Bob&quot;} O valor de $nome é {$nome}. MOSTRA: O valor de $nome é Bob.
  • 46. Smarty – Templates Funções Personalizadas html_options html_options é uma função personalizada que cria um grupo html option com os dados fornecidos. Ela está atenta de quais itens estão selecionados por padrão. Atributos obrigatórios são 'values' e 'output', a menos que você use options no lugar.
  • 47. Smarty – Templates Funções Personalizadas Exemplo: <select name=customer_id> {html_options values=$cust_ids selected=$customer_id output=$cust_names} </select> Matriz associativa <select name=customer_id> {html_options options=$cust_options selected=$customer_id} </select>
  • 48. Smarty – Templates Funções Personalizadas html_radios Mesma funcionalidade da função anterior mas monta um grupo de inputs do tipo radio button. html_checkboxes Mesma funcionalidade da função anterior mas monta um grupo de inputs do tipo checkbox.
  • 49. Smarty – Templates Funções Personalizadas Exemplos: {html_radios values=$cust_ids output=$cust_names OU options=$cust_options checked=$customer_id (array) separator=&quot;<br />“ }
  • 50. Smarty – Templates Funções Personalizadas Exemplos: {html_checkboxes values=$cust_ids output=$cust_names OU options=$cust_checkboxes checked=$customer_id separator=&quot;<br />“ }
  • 51. Referências Documentação do Smarty http://smarty.php.net/docs.php