Desenvolvimento com templates: obtendo o máximo de aproveitamento dos recursos do Smarty. Adriano Gonçalves adriano.php4@gmail.com



Documentos relacionados
Programação para Internet I

Informática I. Aula 6. Aula 6-12/09/2007 1


Sumário. Capítulo 1 O que é o PHP? Capítulo 2 Instalação do PHP Capítulo 3 Noções básicas de programação... 25

Conceitos de extensões Joomla!

2 echo "PHP e outros.";

formação em WeB developer

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

PHP() é uma linguagem de integração de servidor que permite a criação de paginas dinâmicas. Como todas

Sumário. Capítulo 1 Revisão de PHP Capítulo 2 Melhorando o processamento de formulários... 46

Programação Web com Webdev 19 Julio Cesar Pedroso Conteúdo

Desenvolvendo Websites com PHP

Introdução ao PHP. Prof. Késsia Marchi

Manual do Painel Administrativo

Personalizações do mysuite

02 - Usando o SiteMaster - Informações importantes

Joomla! para iniciantes. Djonatan Buss Jerônimo Medina Madruga

Desenvolvendo Websites com PHP

Informática. Informática. Valdir

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

Construindo portais com Plone. Módulo 3 Templates

Parte I. Demoiselle Mail

PASSO A PASSO GOOGLE DOCS - FORMULÁRIOS GOOGLE DOCS

JavaScript (Funções, Eventos e Manipulação de Formulários)

O que é o JavaScript?

O Sistema foi inteiramente desenvolvido em PHP+Javascript com banco de dados em MySQL.

SISTEMA PARA PORTAL DE NOTÍCIAS: Jornais, Revistas, Televisão etc

Linguagem de Programação. Introdução ao PHP. Prof Mauricio Lederer Ciência da Computação - UNIANDRADE 1

2 Geração Dinâmica de Conteúdo e Templates de Composição

Internet e Programação Web

Mais sobre uso de formulários Site sem Ajax

Programação para web JavaScript

CONTEÚDOS PROGRAMÁTICOS DA ACADEMIA

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Oficina Joomla. Prof. M.Sc. Marcos Roberto de Moraes

Análise de Dados do Financeiro

UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I

Criando & Consumindo um WebService com ASP.NET 2.0 Publicado em: 25 de Agosto de 2007 Por Herman Ferdinando Arais

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

PROGRAMAÇÃO MANUAL DE INSTRUÇÕES SEJA BEM VINDO VERSÃO /01/2013 UDS SOLUÇÕES DIGITAIS

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

PHP: Funções. Programação de Servidores Marx Gomes Van der Linden

Roteiro 2: Conceitos de Tags HTML

Tecnologias para Web Design

Programando em PHP. Conceitos Básicos

JAVAWEB AULA 2 Prof. Daniela Pires Sumário

Voltado para novos usuários, este capítulo fornece uma instrução para edição de Leiaute do SILAS e suas funções.

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Módulo 1 Configuração de Cursos. Robson Santos da Silva Ms.

Menus Personalizados

Curso de Aprendizado Industrial Desenvolvedor WEB

LINGUAGEM DE PROGRAMAÇÃO WEB

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Tutorial: Joomla! Explicar o gerenciamento de conteúdos por meio do Joomla! 14 de novembro de 2014 Fernando Pablos Versão 1.0

Conteúdo Programático de PHP

Manual de Integração Via Gadget. Passo a passo para realizar a integração entre websites e a plataforma Virtual Target.

Prezado Senhor, Em prosseguimento aos nossos entendimentos, estamos formalizando a nossa proposta para desenvolvimento do site da Digivox.

PHP (Seções, Cookies e Banco de Dados)

PROGRAMAÇÃO WEB DO LADO DO CLIENTE

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Construindo sítios profissionais com Mambo

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Desenvolvimento orientado a objetos com PEAR: DB/MDB2, DB_DataObject, HTML_QuickForm e DB_DataObjectFormBuilder

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Manual WebAdmin News

Escrito por Sáb, 15 de Outubro de :19 - Última atualização Seg, 26 de Março de :32

HTML / JAVASCRIPT. A versão atual é o HTML5 (seus predecessores imediatos são HTML 4.01, XHTML 1.1, etc.).

CONSTRUÇÃO DE BLOG COM O BLOGGER

Lista de operadores de comparação - > Maior que - < Menor que - <= Menor ou igual a - >= Maior ou igual a - === Igual a -!

Sistemas Operacionais

Guia de Consulta Rápida. PHP com XML. Juliano Niederauer. Terceira Edição. Novatec

Manual UNICURITIBA VIRTUAL para Professores

AULA 12 RELATÓRIOS PDF O QUE É UM FORMATO PDF

RELEASE F-STORE v

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Treinamento em PHP. Aula 1. Ari Stopassola Junior

* Técnicas Avançadas. Desenvolvimento de SOFTWARES. Sistemas de Gerenciamento de Conteúdo com Joomla e Magento

Instalando o Internet Information Services no Windows XP

WEBSITE. Como utilizar um site Assistente de Criação para criar seu próprio site

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5.

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Desenvolva rapidamente utilizando o frame work CakePHP. Elton Luí s Minetto

INTRODUÇÃO AO DESENVOLVIMENTO WEB

1. Introdução. 2. A área de trabalho

SMS Corporativo Manual do Usuário

SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO

Java II. Sérgio Luiz Ruivace Cerqueira

Construção Páginas de Internet

Documentação Usando o Javadoc

Web Design. Prof. Felippe

FACULDADE SENAC-RS PELOTAS RODRIGO ALMEIDA PEREIRA. Sistemas de Informação

Copyright 2008, 2013 da Novatec Editora Ltda.

Consultoria sobre Joomla!

5 O Joomla: Web Apache Banco de Dados MySQL

Transcrição:

Desenvolvimento com templates: obtendo o máximo de aproveitamento dos recursos do Smarty Adriano Gonçalves adriano.php4@gmail.com

Agenda Introdução O Smarty e suas vantagens Alguns recursos muito úteis Estruturando um site com Smarty Escrevendo plugins Smarty e AJAX Smarty e Xoops Editores que suportam Smarty

Introdução Onde estamos... Páginas estáticas HTML Geradores off-line de páginas HTML estáticas <HTML> Ms Front Page <HTML> CGI, <% ASP %>, <?PHP?>... Sistemas web / Web 2.0 Disseminação dos websites dinâmicos (webmails, e- commerce, portais, etc.)

Exemplo de página dinâmica em PHP Introdução

Código da página Introdução

E se fosse assim?... Introdução

... e assim? Introdução

Introdução Desenvolvimento com templates - vantagens Separar interface da lógica da aplicação Melhor divisão de trabalhos Melhor legibilidade, manutenibilidade e reutilização de códigos Flexibilidade para criar layouts diferentes para uma mesma aplicação Flexibilidade para mudar o layout da aplicação em menos tempo Flexibilidade para utilizar as mesmas páginas para mídias diferentes (browser desktop, Palm, celular...)

Agenda Introdução O Smarty e suas vantagens Alguns recursos muito úteis Estruturando um site com Smarty Escrevendo plugins Smarty e AJAX Smarty e Xoops Editores que suportam Smarty

O Smarty e suas vantagens O que é o Smarty? É um sistema de templates para PHP: ele fornece uma maneira fácil de controlar a separação da aplicação lógica e a sua apresentação (interface). Atualmente está na versão 2.6.14

O Smarty e suas vantagens Algumas vantagens do Smarty Ótimo desempenho de execução (compila uma vez e deixa o PHP executar) Sintaxe dos delimitadores configurável Uso de funções de desvio condicional, como ifelseif-else, e foreach, podendo usar expressões simples ou complexas Modo de cache embutido Flexibilidade de ser extendido com plugins Excelente documentação (inclusive em Português)

Manual do Smarty em CHM O Smarty e suas vantagens

Agenda Introdução O Smarty e suas vantagens Alguns recursos muito úteis Estruturando um site com Smarty Escrevendo plugins Smarty e AJAX Smarty e Xoops Editores que suportam Smarty

Estendendo a configuração Alguns recursos muito úteis

Instanciando o Smarty Alguns recursos muito úteis

Alguns recursos muito úteis O arquivo de configuração titulopagina = "Menu Principal" corfundopagina = #000000 corfundotabela = #000000 corlinhatabela = #00ff00 [Consumidor] titulopagina = "Informações do Consumidor" [Login] titulopagina = "Login" focus = "nomeusuario" Intro = """Este é um valor que ultrapassa uma linha. Você deve colocá-lo dentre três aspas.""" (Extraído do Manual do Smarty)

Alguns recursos muito úteis Variáveis Definindo variáveis no PHP...: $template->assign( nome, Adriano ); $template->assign( sexo, M );...e mostrando no template: Olá, {$nome}! <br>{if $sexo == M }Seja bem-vindo!{else}seja bem-vinda!{/if}

Alguns recursos muito úteis Variáveis...que, ao executar a página, irá mostrar: Olá, Adriano! <br>seja bem-vindo!

Alguns recursos muito úteis A variável $smarty Permite acessar variáveis de sistema ($_GET, $_POST, $_SERVER, $_SESSION...) Permite acessar constantes do PHP Permite acessar algumas das entidades do Smarty (foreach, section, etc.) Outros recursos: now, ldelim, rdelim...

Alguns recursos muito úteis A variável $smarty - exemplos Olá, {$nome_usuario}! Hoje é {$smarty.now date_format:"%a, %d de %B de %Y"}. Mostra: Olá, Adriano! Hoje é Sexta, 1 de dezembro de 2006.

Alguns recursos muito úteis A variável $smarty - exemplos Nome do servidor: {$smarty.server.server_name} Mostra: Nome do servidor: localhost

Alguns recursos muito úteis Modificadores de variáveis Podem ser aplicados a variáveis, funções personalizadas ou strings. Ex.: <h1>{$titulo upper}</h1> <img src= imagemdim.php?imagem={$url_imagem escape:'url'}max_width=500 > Nome: {$nome_pessoa escape:'htmlall'} Bem-vindo (a) {$nome_usuario default:'visitante'}!

Alguns recursos muito úteis Modificadores de variáveis Fazendo uma listagem de notícias com resumo: PHP:... $query = mysql_query("select * FROM noticias LIMIT 5"); while($linha = mysql_fetch_array($query)) { $noticia_atual["titulo"] = $linha["not_titulo"]; $noticia_atual["texto"] = $linha["not_texto"]; $noticia_atual["link"] = "noticia.php?id=".$linha["not_id"]; $template->append("noticias",$noticia_atual); } $template->display("listagem_noticias.tpl");

Alguns recursos muito úteis Modificadores de variáveis Template: <ul id="lista_noticias"> {foreach from=$noticias item=not_atual} <li> <a href="{$not_atual.link}"> <strong>{$not_atual.titulo}</strong></a> - {$not_atual.texto strip_tags truncate:200} </li> {/foreach} </ul>

Alguns recursos muito úteis Modificadores de variáveis Resultado:

Alguns recursos muito úteis Modificadores de variáveis Removendo links HTML de um conteúdo: Template: {$conteudo regex_replace:'/<a[^>]*> <\/a>/':''}

Alguns recursos muito úteis Funções O Smarty possui uma série de funções internas e personalizadas, e é possível criar novas. Alguns exemplos: Foreach-foreachelse loop que varre um array {foreach from=$noticias item=not_atual} <div class= noticia > <strong>{$not_atual.titulo}</strong> </div> {foreachelse} Ainda não há nenhuma notícia cadastrada. {/foreach}

Alguns recursos muito úteis Funções - Exemplos cycle faz um ciclo, alternando entre valores <ul id="lista_noticias"> {foreach from=$noticias item=not_atual} <li class="noticia_{cycle values='par,impar' name='noticias'}"> <a href="{$not_atual.link}"> <strong>{$not_atual.titulo}</strong></a> - {$not_atual.texto strip_tags truncate:200} </li> {/foreach} </ul>

Alguns recursos muito úteis Funções - Exemplos Resultado:

Alguns recursos muito úteis Funções - Exemplos html_table - cria uma tabela html com os dados fornecidos PHP: $pessoas = array( Nome, Endereço ); while($linha = mysql_fetch_array($query)) { $pessoas[] = $linha[ pessoa_nome ]; $pessoas[] = $linha[ pessoa_end ]; } $template->assign( pessoas,$pessoas); $template->display( listagem_pessoas.tpl );

Alguns recursos muito úteis Funções - Exemplos html_table Template: {html_table loop=$pessoas cols=2}...ou, melhorando um pouco...: {html_table loop=$pessoas cols=2 table_attr="cellspacing='0' border='1'"}

Alguns recursos muito úteis Funções - Exemplos html_table - Resultado:

Alguns recursos muito úteis Funções - Exemplos Outra aplicação prática do html_table... (Foto ilustrativa, só pra exemplificar)

Alguns recursos muito úteis Funções - Exemplos html_options faz uma lista de <option> para adicionar em listboxes Fazendo uma listbox de estados: PHP: while($linha = mysql_fetch_array($query)) { $estados[$linha[ uf_sigla ]] = $linha[ uf_nome ]; } $template->assign( estados,$estados); $template->display( pagina_estados.tpl );

Alguns recursos muito úteis Funções - Exemplos html_options fazendo uma listbox de estados Template: Estado: <select name="estado"> {html_options options=$estados} </select>

Alguns recursos muito úteis Funções - Exemplos html_options fazendo uma listbox de estados Resultado:

<script language= Javascript > {literal} function confirma_envio(form) { if(form.nome == ){ return false; } else return true; } {/literal} </script> Alguns recursos muito úteis Funções - Exemplos literal - Serve para ignorar a interpretação do conteúdo interno de um bloco

Alguns recursos muito úteis Funções - Exemplos strip elimina espaços e quebras de linha extras {strip} <div id= menu > <img src= opc_1.jpg > <img src= opc_2.jpg > <img src= opc_3.jpg > </div> {/strip} Mostrará: <div id= menu ><img src= opc_1.jpg ><img src= opc_2.jpg ><img src= opc_3.jpg ></div>

Alguns recursos muito úteis Funções - Exemplos include permite incluir outro template. Ex. {include file= cabecalho.tpl } Olá, mundo! {include file= rodape.tpl }

Modelo RSS

Agenda Introdução O Smarty e suas vantagens Alguns recursos muito úteis Estruturando um site com Smarty Escrevendo plugins Smarty e AJAX Smarty e Xoops Editores que suportam Smarty

Estruturando um site com Smarty Estrutura básica Duas opções básicas Template de página principal Template incluído Template cabeçalho Template corpo da página atual Subtemplates Notícia 1 Notícia 2 Notícia 3 Powered by Nonono nono Usando um template principal com a estrutura do site Subtemplates Notícia 1 Notícia 2 Notícia 3 Template rodapé Powered by Nonono nono Separando cabeçalho e rodapé em templates diferentes

Estruturando um site com Smarty Estrutura básica Usando template principal Dá ao designer uma visão do todo da página para manipular Tira a preocupação de ficar acrescentando dois includes em todo template Separando cabeçalho e rodapé Permite trabalhar melhor situações específicas para sites variam mais o layout de seção para seção

Estruturando um site com Smarty Usando um template principal Template principal (paginas_padrao.tpl):... <body> <div id= cabecalho > Cabeçalho da página </div> <div id= conteudo_pagina > {include file=$templateinclude} </div> <div id= rodape >Powered by Nononono</div> </body> </html>

Estruturando um site com Smarty Usando um template principal Template da página inicial (inicial.tpl): Olá, {$nome}, seja bem vindo(a) ao nosso web site! {include file= listagem_noticias.tpl }

Estruturando um site com Smarty Usando um template principal Código PHP (index.php):... $template = new Smarty_MeuSistema(); $template->assign( nome, Adriano ); $template->assign( pagina_atual, inicial ); $template->assign( templateinclude, inicial.tpl ); $template->display( paginas_padrao.tpl );

Estruturando um site com Smarty Outras considerações Procure modularizar os templates que você faz, criando templates reaproveitáveis Procure separar as partes que se repetem muito Procure não quebrar demais o site em muitos templates desnecessariamente Procure manter um padrão de templates na sua empresa

Agenda Introdução O Smarty e suas vantagens Alguns recursos muito úteis Estruturando um site com Smarty Escrevendo plugins Smarty e AJAX Smarty e Xoops Editores que suportam Smarty

Escrevendo plugins Tipos de plugins Funções Modificadores Funções de bloco Funções de compilador Prefiltros Posfiltros Filtros de saída Recursos (resources) Insert

Escrevendo plugins Exemplo de plugin modificador Fazendo uma str_pad <?php function smarty_modifier_str_pad($valor,$tamanho, $string, $tipo) { return str_pad($valor,$tamanho,$string,constant($tipo)); }?>

Escrevendo plugins Exemplo de plugin modificador Adicionando ao diretório de plugins

Escrevendo plugins Exemplo de plugin modificador Chamando...: {foreach from=$produtos item=p_atual} <br> {$cod_produto str_pad:5: 0, STR_PAD_LEFT } - {$nome_produto} {/foreach} Irá mostrar: 00001 Mouse sem fio 00020 Teclado sem fio

Agenda Introdução O Smarty e suas vantagens Alguns recursos muito úteis Estruturando um site com Smarty Escrevendo plugins Smarty e AJAX Smarty e Xoops Editores que suportam Smarty

Exemplo prático Smarty e AJAX

Agenda Introdução O Smarty e suas vantagens Alguns recursos muito úteis Estruturando um site com Smarty Escrevendo plugins Smarty e AJAX Smarty e Xoops Editores que suportam Smarty

Smarty e Xoops Smarty e Xoops (extensible Object Oriented Portal System) Xoops é um Sistema de Gerenciamento de Conteúdos para portais desenvolvido em PHP e MySQL Trabalha com templates desenvolvidos em Smarty Portal da Comunidade XoopsTotal www.xoopstotal.com.br

Smarty e Xoops Algumas dicas... Demonstração prática Fazendo um bloco que só aparece na página inicial Fazendo um bloco que aparece somente em um módulo Debug: A melhor forma de descobrir as possibilidades Mais informações: www.xoops.org www.xoopstotal.com.br

Agenda Introdução O Smarty e suas vantagens Alguns recursos muito úteis Estruturando um site com Smarty Escrevendo plugins Smarty e AJAX Smarty e Xoops Editores que suportam Smarty

Editores que suportam Smarty Algumas opções de editores Crimson editor (http://www.crimsoneditor.com/)

Editores que suportam Smarty Algumas opções de editores VisualPHP IDE Visual Studio.Net (http://www.jcxsoftware.com/jcx/vsphp)

Algumas opções de editores Editores que suportam Smarty Macromedia Dreamweaver http://www.adobe.com/products/dreamweaver/ Como configurar syntax highlighting: http://smarty.incutio.com/?page=configuringdreamwe aver Extensões para vários outros editores: http://smarty.php.net/contribs/syntax_highlighting/

Concluindo... Desenvolvimento com templates é uma ferramenta que promove melhor divisão de trabalho, manutenibilidade e reutilização de códigos Smarty é um sistema de templates em PHP que provê uma série de recursos para facilitar essa divisão de trabalho programador/designer Smarty é extensível: você pode criar mais recursos através da criação de plugins Xoops é um sistema de portais que que se utiliza da flexibilidade do Smarty para fazer os temas

Perguntas?

Referências Smarty - a ferramenta para compilar templates para PHP (Manual do Smarty) http://smarty.php.net/ http://cirofeitosa.com.br/ http://www.xoopstotal.com.br/ Google

Contato Meu e-mail: adriano.php4@gmail.com Meu website: http://adriano.ison.com.br/