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?

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 dedesenvolvimento 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 – Camadade 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 representarnossa 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ísticasSistema 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çãoRequisitos 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çãoExemplo: require('Smarty.class.php'); $smarty = new Smarty; $smarty->assign('nome','Thomas'); $smarty->display('index.tpl');
  • 10.
    Smarty – PHPConstantes 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 – PHPVariá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 – PHPVariá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 – PHPVariá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 – PHPVariá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 – PHPFunçõ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 – PHPFunçõ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 – PHPFunçõ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 – TemplatesFunçõ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 – TemplatesMatemá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 – TemplatesVariáveis Variáveis que são definidas do PHP ou dentro do template são referenciadas precedendo elas com o sinal $.
  • 23.
    Smarty – TemplatesVariá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 – TemplatesVariáveis Exemplo 2: index.tpl: {assign var=&quot;nome&quot; value=&quot;Bob&quot;} Nome: {$nome} MOSTRA: Nome: Bob
  • 25.
    Smarty – TemplatesVariável reservada $smarty A variável reservada {$smarty} pode ser utilizada para acessar variáveis especiais do template.
  • 26.
    Smarty – TemplatesVariá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 – TemplatesVariá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 – TemplatesModificadores 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 – TemplatesModificadores 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 – TemplatesModificadores 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 – TemplatesModificadores 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 – TemplatesCombinando 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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunçõ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 – TemplatesFunções Personalizadas Exemplos: {html_radios values=$cust_ids output=$cust_names OU options=$cust_options checked=$customer_id (array) separator=&quot;<br />“ }
  • 50.
    Smarty – TemplatesFunçõ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 doSmarty http://smarty.php.net/docs.php
  • 52.