Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal dos Vales Universidade Federal dos Vales Jequitinhonha e MucuriJequitinhonha e Mucuri Sistemas de InformaçãoSistemas de Informação Apresentação à Apresentação à Disciplina de E.W.Disciplina de E.W. Tema:Tema: SmartySmarty Lorena C. De SouzaLorena C. De Souza Índice SmartyÍndice Smarty 1 – Apresentação1 – Apresentação 1.1 Templete1.1 Templete 1.2 Classe Templete1.2 Classe Templete 1.3 Classe Templete Smarty1.3 Classe Templete Smarty 1.4 Objetivos1.4 Objetivos 1.5 Visões1.5 Visões 2 – Instalação2 – Instalação 3 – Sintaxe Básica3 – Sintaxe Básica 4 – Exemplos Práticos4 – Exemplos Práticos SmartySmarty ● ● ● ● Qual a definição de Qual a definição de TempleteTemplete?? ● SmartySmarty ● Qual a definição de Qual a definição de TempleteTemplete?? Um documento sem conteúdo, com apenas a apresentação visual Um documento sem conteúdo, com apenas a apresentação visual (apenas cabeçalhos por exemplo) e instruções sobre onde e qual (apenas cabeçalhos por exemplo) e instruções sobre onde e qual tipo de conteúdo deve entrar a cada parcela da apresentação — tipo de conteúdo deve entrar a cada parcela da apresentação — por exemplo conteúdos que podem aparecer no início e conteúdos por exemplo conteúdos que podem aparecer no início e conteúdos que só podem aparecer no final.que só podem aparecer no final. ● THU SmartySmarty ● ● SmartySmarty Agora qual a definição de Classe Templete?Agora qual a definição de Classe Templete? ● SmartySmarty Agora qual a definição de Classe Templete?Agora qual a definição de Classe Templete? A Classe Templete tem o principal A Classe Templete tem o principal propósitopropósito manter o manter o código HTML em arquivos externos que ficam código HTML em arquivos externos que ficam completamente livres de código PHP. E dessa forma, completamente livres de código PHP. E dessa forma, manter a lógica de programação (PHP) separada da manter a lógica de programação (PHP) separada da estrutura visual (HTML ou XML, CSS, etc).estrutura visual (HTML ou XML, CSS, etc). ● SmartySmarty Com isso, gera duas “extremidades” de Com isso, gera duas “extremidades” de desenvolvimento:desenvolvimento: ● A parte da A parte da VisãoVisão ● A parte dos A parte dos ControlesControles HtmlHtml CSSCSS PHPPHPPHPPHP HtmlHtml CSSCSS SmartySmarty Sem a Classe Template, o que tem é uma mistura de php, com Sem a Classe Template, o que tem é uma mistura de php, com html, css e etc.html, css e etc. <?php echo "<div> <p> Olá Mundo!</p> </div>"; ?> SmartySmarty Com a Classe Template, o que tem é uma organização/separação Com a Classe Template, o que tem é uma organização/separação entre os componentes de desenvolvimento da aplicação web.entre os componentes de desenvolvimento da aplicação web. <html> <body> <p>Olá Mundo!</p> </body> </html> <?php require("Template.class.php"); $tpl = new Template("hello.html"); $tpl->show(); ?> SmartySmarty Características específicas da Classe templete Características específicas da Classe templete Smarty:Smarty: ● Engine oficializada pela php.netEngine oficializada pela php.net ● ● Ele é extremamente rápido.Ele é extremamente rápido. ● ● Sem elevadas interpretações de template, compila Sem elevadas interpretações de template, compila uma vez.uma vez. ● ● Só recompilará os arquivos de template que foram Só recompilará os arquivos de template que foram alterados.alterados. ● ● Suporte de caching embutidoSuporte de caching embutido ● ● Arquitetura de PluginArquitetura de Plugin SmartySmarty Vantagens:Vantagens: Facilidade pra criação uma vez aprendido;Facilidade pra criação uma vez aprendido; Organização;Organização; Manutenção de código;Manutenção de código; Otimização do desenvolvimento do projeto – dois Otimização do desenvolvimento do projeto – dois ambientes.ambientes. Smarty - InstalaçãoSmarty - Instalação Requisitos:Requisitos: Servidor Servidor ApacheApache PHPPHP Biblioteca do Biblioteca do SmartySmarty Smarty - InstalaçãoSmarty - Instalação Passos:Passos: Faça o download do Faça o download do SmartySmarty Descomprima todas as pastas.Descomprima todas as pastas. Verifique uma pasta "demo"Verifique uma pasta "demo" Prepare de maneira a deixar visível ao wwwdataPrepare de maneira a deixar visível ao wwwdata ● ● Dê permissão ao diretório "templates_c".Dê permissão ao diretório "templates_c". Smarty - InstalaçãoSmarty - Instalação ●Árvore padrão de diretório do Smarty está organizada da seguinte Árvore padrão de diretório do Smarty está organizada da seguinte maneira:maneira: ● / Na raiz estarão os arquivos de lógica (.PHP). ● /configs Arquivos de configuração. É possível setar por exemplo, um título padrão para todo seu sistema, e utilizálo nos arquivos de templete. ● /libs Bibliotecas do Smarty, onde também fica localizada a classe principal. ● /templetes Diretório padrão para localização dos templetes. São arquivos de interface com o usuário. ● /templetes_c Diretório para cache. (Deve estar com permissão de escrita.) Smarty – SintaxeSmarty – Sintaxe ●Todas as tags de template do Smarty contém delimitadores. Por padrão, Todas as tags de template do Smarty contém delimitadores. Por padrão, estes delimitadores são { e }, mas eles podem ser alterados.estes delimitadores são { e }, mas eles podem ser alterados. ● ● Para o Smarty, todo o conteúdo fora dos delimitadores é mostrado como 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 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 template, ele tenta interpretálas, e então mostra a saída apropriada em seu lugar.seu lugar. Smarty – SintaxeSmarty – Sintaxe ● ComentárioComentário ● {* {* Isto é um comentário Isto é um comentário *}*} ● Função, Variáveis e AtributosFunção, Variáveis e Atributos ● Funções Inernas: Funções Inernas: {include file=$arquivoInclude}{include file=$arquivoInclude} ● Funções Inernas:Funções Inernas: {config_load file="cores.conf"}{config_load file="cores.conf"} ● Funções Inernas:Funções Inernas: {if $enfase_nome}{if $enfase_nome} ● Funções Personalizadas:Funções Personalizadas: {html_options}{html_options} ● Funções Personalizadas:Funções Personalizadas: {html_select_date display_days=yes}{html_select_date display_days=yes} ● ● Escapando de Interpretação do SmartyEscapando de Interpretação do Smarty ● {ldelim}$Name | upper{rdelim}{ldelim}$Name | upper{rdelim} Smarty – SintaxeSmarty – Sintaxe ● VariáveisVariáveis ● ● Variável definida do php: ● {$Nome}{$Nome} ● Variável composta definida do php: ● {$Contatos[row].Telefone} ● ● Variável de configuração: <body bgcolor="{#cordefundo}"> ● ● Variável reservada: ● $smarty Smarty – SintaxeSmarty – Sintaxe ●Variável Reservada $smartyVariável Reservada $smarty ● Essa variável reservada é utilizada para acessar variáveis especiais do template. Como por exemplo: as variáveis request get, post, cookies, server, enviroment e session. Exemplo: ● ● Se tem a seguinte URL http://www.domain.com/index.php?page=foo ● ● Smarty – SintaxeSmarty – Sintaxe ●Variável Reservada $smartyVariável Reservada $smarty ● Essa variável reservada é utilizada para acessar variáveis especiais do template. Como por exemplo: as variáveis request get, post, cookies, server, enviroment e session. Exemplo: ● ● Se tem a seguinte URL http://www.domain.com/index.php?page=foo● ● Com {$smarty.get.page} mostra o valor de page da URL; ● ● Para {$smarty.post.page} mostra a variável ”page” de um formulário. (POST) ● ● Para {$smarty.cookies.username} mostra o valor do cookie "username. Smarty – SintaxeSmarty – Sintaxe ● Variável Reservada $smartyVariável Reservada $smarty ● ● Para {$smarty.server.SERVER_NAME} mostra a variável do servidor "SERVER_NAME". ● ● Para {$smarty.env.PATH} mostra a variável de ambiente do sistema "PATH". ● ● Para {$smarty.session.id} mostra a variável ”id” de session do php. Smarty – SintaxeSmarty – Sintaxe ●Outras sintaxe reservadas do Smarty: ● ● {$smarty.now} – retorna o timestamp atual. ● ● {$smarty.capture} – captura a saída. ● ● {$smarty.template}{$smarty.template} contém o nome do template atual. ● ● {$smarty.section}, {$smarty.foreach} ● ● {$smarty.ldelim} e {$smarty.rdelim}: delimitador esquerdo e direito. Smarty – SintaxeSmarty – Sintaxe ●Modificadores de Variáveis ● Para aplicálo deve usar a seguinte sintaxe: ● Valor | modificador ● Por exemplo: ● ● {$topico | truncate:40:"..."} {$articleTitle | capitalize} ● ● {$articleTitle | count_characters} {$articleTitle | cat:" yesterday."} ● ● Smarty – SintaxeSmarty – Sintaxe ●Modificadores de Variáveis ● Para aplicálo deve usar a seguinte sintaxe: ● Valor | modificador ● Por exemplo: ● ● {$topico | truncate:40:"..."} {$articleTitle | capitalize} ● ● {$articleTitle | count_characters} {$articleTitle | cat:" yesterday."} ● ● {$smarty.now | date_format:"%H:%M:%S"} ● ● {$articleTitle | replace:"Garden":"Vineyard"} ● ● {$articleTitle|count_paragraphs} Smarty – SintaxeSmarty – Sintaxe ●Caching ● Usado para aumentar a velocidade de chamada para display() ou fetch() salvando isso num arquivo de saída. ● Pode fazer coisas tremendamente rápidas, especialmente templetes com longo tempo computacional. ● Desde que templetes sejam dinâmicos, é importante ter cuidado com o que você está fazendo cache e por quanto tempo. ● Por exemplo, se você está mostrando a página principal do seu website na qual as alterações de conteúdo são muito frequentes (hora), isso funciona bem para cache dessa forma. Já um outro modo, se você está mostrando uma página com um mapa do tempo contendo novas informações por minuto, não faz sentido fazer cache nesta página. ● Caching precisa ser configurado. Smarty – SintaxeSmarty – Sintaxe ●Exemplo de caching require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = true; $smarty->display('index.tpl'); Multiple Chaches per Page Smarty – SintaxeSmarty – Sintaxe ●Plugins ● Plugins são determinadas funcionalidades com características próprias à implementar junto ao Smarty. ● ● Estes sempre só são lidos quando requisitados. ● ● E cada plugin é lido apenas uma vez, mesmo se você tem várias instâncias diferentes do Smarty rodando na mesma requisição. ● ● O diretório de plugins pode ser uma string contendo um caminho ou um array contendo multiplos caminhos. Para instalar um plugin, só coloque em um dos diretórios e a Smarty irá usálo automaticamente. Smarty – SintaxeSmarty – Sintaxe Convenções de Plugins ● Arquivos: tipo.nome.php ● Onde tipo: ● function ● modifier ● block ● compiler ● Prefilter / postfilter / outputfilter ● resource ● Insert ● function.html_select_date.php, resource.db.php, modifier.spacify.php. Comentários? Dúvidas? Obrigada!! Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30
Compartilhar