Plone Total                                    Conhecendo o Zope                                      Lucas Aquinoquarta-f...
Tópicos   • Introdução ao Zope   • Zope Management Interface - ZMI   • Zope Page Templatequarta-feira, 23 de janeiro de 13
Introdução ao Python   Python é uma linguagem de programação de   alto nível, interpretada, imperativa, orientada   a obje...
Introdução ao Zope   Zope é um servidor de aplicações web de   código aberto escrito na linguagem Python.   Seu nome signi...
Zope Management Interface - ZMI    • Interface de gerência do servidor de aplicação Zope    • Ferramentas para manutenção ...
Zope Page Template     Zope Page Templates é linguagem de programação de template do Zope.   Vantagens:   • Reaproveitamen...
Zope Page Template     O Zope incentiva manter a apresentação visual separada da lógica(Python).   O ZPT utiliza o HTML pa...
Zope Page Template            Expressões TAL:           Principais expressões TALES:   Expressões METAL:   1.tal:define   ...
Zope Page Template     tal:content   A expressão tal:content substitui o conteúdo do elemento pelo resultado da   expressã...
Zope Page Template     tal:replace   Basicamente tem as mesmas características da expressão tal:content, mas com   uma dif...
Zope Page Template     tal:repeat   Expressão usada para criação de estruturas de repetição.   Exemplo:   <table>        <...
Zope Page Template     tal:define   Define variáveis dentro do contexto da tag HTML.   Exemplo:   <table tal:define=”arqui...
Zope Page Template     tal:attributes   Define variáveis utilizáveis como atributos de elemeto HTML.   Utilizando o mesmo ...
Zope Page Template     tal:condition   É usado para criar condicionais simples, no caso do uso do tal:condition e no caso ...
Zope Page Template            tal:omit-tag   Remove o elemento HTML, mas mantendo o que existir entre o abre e fecha do   ...
Zope Page Template     METAL   A declaração METAL trabalha com os templates, sua função é definir uma macro e   suas parte...
Zope Page Template            metal:define-macro   A declaração metal:define-macro define uma macro. A macro é nomeada pel...
Zope Page Template     metal:use-macro   A declaração metal:use-macro substitui o elemento declarado em uma macro. A   exp...
Zope Page Template     metal:define-slot   A declaração metal:define-slot define um ponto de customização de um macro ou  ...
Zope Page Template       metal:fill-slot                                  Os nomes de slot devem ser únicos               ...
OBRIGADO!                                            Lucas Aquino                                              @luxcas    ...
Upcoming SlideShare
Loading in …5
×

Plone total#3 Conhecendo o Zope

519 views

Published on

Published in: Self Improvement
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
519
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Plone total#3 Conhecendo o Zope

  1. 1. Plone Total Conhecendo o Zope Lucas Aquinoquarta-feira, 23 de janeiro de 13
  2. 2. Tópicos • Introdução ao Zope • Zope Management Interface - ZMI • Zope Page Templatequarta-feira, 23 de janeiro de 13
  3. 3. Introdução ao Python Python é uma linguagem de programação de alto nível, interpretada, imperativa, orientada a objetos, de tipagem dinâmica e forte. Foi lançada por Guido van Rossum em 1991. Atualmente possui um modelo de desenvolvimento comunitário, aberto e gerenciado pela organização sem fins lucrativos Python Software Foundation.quarta-feira, 23 de janeiro de 13
  4. 4. Introdução ao Zope Zope é um servidor de aplicações web de código aberto escrito na linguagem Python. Seu nome significa "Z Object Publishing Environment" (em português, "Ambiente de Publicação de Objetos Z"). Muitas tarefas de administração de um servidor Zope podem ser realizadas através de uma interface web. Os objetos que o Zope publica na Web são escritos em linguagem Python, e tipicamente armazenados num banco de dados orientado a objetos, o ZODB, que é integrado ao sistema. Objetos básicos tais como documentos, imagens e modelos de páginas podem ser criados ou modificados via web. Objetos especializados, tais como wikis, blogs, e galerias de fotos estão disponíveis como componentes adicionais (chamados products), e existe uma comunidade pujante de pequenas empresas criando aplicações web como produtos. 4quarta-feira, 23 de janeiro de 13
  5. 5. Zope Management Interface - ZMI • Interface de gerência do servidor de aplicação Zope • Ferramentas para manutenção • .../manage 5quarta-feira, 23 de janeiro de 13
  6. 6. Zope Page Template   Zope Page Templates é linguagem de programação de template do Zope. Vantagens: • Reaproveitamento de código(tags <>) HTML • Real separação entre conteúdo, lógica e apresentação • Facilidade/agilidade no uso de templates. Desvantagens: • Poderá gerar mais código HTML que o necessário • Poderá existir lógica no template(não recomendado) 6quarta-feira, 23 de janeiro de 13
  7. 7. Zope Page Template   O Zope incentiva manter a apresentação visual separada da lógica(Python). O ZPT utiliza o HTML para gerar as páginas no navegador - HTML. O ZPT tem característica de uma linguagem cliente-servidor, tal como PHP, isto significa que as expressões ZPT são executadas pelo servidor Zope e interpretadas no navegador. Importante lembrar que arquivos de CSS ou Javascript continuam a serem executados diretamente pelo navegador. O ZPT utiliza como padrão: o TAL - Template Attribute Language, TALES - Expressões TALES e METAL - Macro Expansion TAL para desenvolver os templates. 7quarta-feira, 23 de janeiro de 13
  8. 8. Zope Page Template   Expressões TAL: Principais expressões TALES: Expressões METAL: 1.tal:define • string • metal:define-macro 2.tal:condition • python • metal:define-slot 3.tal:repeat • path • metal:use-macro 4.tal:content • exists • metal:fill-slot 5.tal:replace • nocall 6.tal:attributes • not 7.tal:omit-tag * ordem de execução 8quarta-feira, 23 de janeiro de 13
  9. 9. Zope Page Template   tal:content A expressão tal:content substitui o conteúdo do elemento pelo resultado da expressão contida nele, sem alterar o elemento HTML. Exemplo: <h1 tal:content=” context/Title”>Título</h1> Nesse exemplo o tal:content substitui o texto “Título” que está envolto no elemento <h1>, o context/title significa: retorne do contexto da aquisição a propriedade title do template. A expressão context/title está descrita de acordo com uma sintaxe definida no TALES. Na prática, expressões path do TALES podem ser facilmente reconhecidas pela simples presença do caractere barra (/). Expressões Python, por exemplo, sempre são escritas usando o caractere ponto (.). Assim, a expressão acima poderia ser descrita de uma outra forma, usando a sintaxe do Python, como no exemplo abaixo: <h1 tal:content=”python: context.Title”>Título</h1> 9quarta-feira, 23 de janeiro de 13
  10. 10. Zope Page Template   tal:replace Basicamente tem as mesmas características da expressão tal:content, mas com uma diferença significativa, o tal:replace substitui o elemento HTML pelo resultado da expressão. Exemplos: <h1 tal:replace=” context/Title”>Título</h1> Resultado será o “Título” sem formatação HTML. 10quarta-feira, 23 de janeiro de 13
  11. 11. Zope Page Template   tal:repeat Expressão usada para criação de estruturas de repetição. Exemplo: <table> <tr tal:repeat=”arquivo python:context.objectValues(‘File’)”> <td tal:content=”arquivo/title_or_id”>Arquivo</td> </tr> </table> Com o HTML criamos uma tabela com ‘n’ linhas e uma colunas e assim, populamos os dados no template. 11quarta-feira, 23 de janeiro de 13
  12. 12. Zope Page Template   tal:define Define variáveis dentro do contexto da tag HTML. Exemplo: <table tal:define=”arquivos python:context.objectValues(‘File’)” > <tr tal:repeat=”arquivo arquivos”> <td> <a tal:content=”arquivo/title_or_id” tal:attributes=”href arquivo/absolute_url”> Objeto </a> </td> </tr> </table> 12quarta-feira, 23 de janeiro de 13
  13. 13. Zope Page Template   tal:attributes Define variáveis utilizáveis como atributos de elemeto HTML. Utilizando o mesmo exemplo: <table tal:define=”arquivos python:context.objectValues(‘File’)” > <tr tal:repeat=”arquivo arquivos”> <td> <a tal:content=”arquivo/title_or_id” tal:attributes=”href arquivo/absolute_url”> Objeto </a> </td> </tr> </table> 13quarta-feira, 23 de janeiro de 13
  14. 14. Zope Page Template   tal:condition É usado para criar condicionais simples, no caso do uso do tal:condition e no caso da condicional não ser atendida a tag simplesmente não é renderizada. Lembrando também que não existe um else no tal:condition, neste caso teríamos que duplicar a tag e fazer a condicional afirmativa e negativa, como no exemplo abaixo: <p tal:condition=”python: request.nome == ‘Luxcas’”> Você é o Luxcas! </p> <p tal:condition=”python: request.nome != ‘Luxcas’”> Você não é o Luxcas! </p> 14quarta-feira, 23 de janeiro de 13
  15. 15. Zope Page Template   tal:omit-tag Remove o elemento HTML, mas mantendo o que existir entre o abre e fecha do elemento HTML, do elemento. Exemplo: <div tal:omit-tag=”” comment=”Este elemento será removido”> <i>... mas este texto permanecerá</i> </div> 15quarta-feira, 23 de janeiro de 13
  16. 16. Zope Page Template   METAL A declaração METAL trabalha com os templates, sua função é definir uma macro e suas partes editáveis. Expressões METAL: • metal:define-macro • metal:define-slot • metal:use-macro • metal:fill-slot 16quarta-feira, 23 de janeiro de 13
  17. 17. Zope Page Template   metal:define-macro A declaração metal:define-macro define uma macro. A macro é nomeada pela expressão declarada, e é definida como um elemento e sua sub-árvore. No Zope, uma definição de macro está disponível como sub-objeto de uma macro em um template. Por exemplo, para acessar um cabeçalho html chamando a macro no template denominado “master.html”, você poderá usar a expressão: master.html/macros/header Exemplo: Definindo uma simples macro <p metal:define-macro="copyright"> Copyright 2013, <em>Foobar</em> Inc. </p> 17quarta-feira, 23 de janeiro de 13
  18. 18. Zope Page Template   metal:use-macro A declaração metal:use-macro substitui o elemento declarado em uma macro. A expressão declaração descreve a definição da macro. No Zope a expressão será geralmente uma expressão de caminho, path, referindo-se a uma macro definida em outro template. Quando uma macro é expandida, aquele atributo metal:define-macro é substituído pelos elementos atribuídos no metal:use-macro. Isto faz com que o conteúdo da raiz da macro seja expandida em um elemento com declaração de use-macro válida Exemplo: Utilizando uma macro <p metal:use-macro="context/other.html/macros/header"> Macro “header” definida no template other.html </p> 18quarta-feira, 23 de janeiro de 13
  19. 19. Zope Page Template   metal:define-slot A declaração metal:define-slot define um ponto de customização de um macro ou slot. Quando uma macro é usada, estes slots são substituídos a fim de personalizar a macro. Você terá a configuração padrão do slot quando ele não for utilizado por outro template. A expressão metal:define-slot só será válida dentro de uma declaração de metal:define-macro. Os nomes de slot devem ser únicos dentro de uma macro. Exemplo: Utilizando uma simples macro com slot <p metal:define-macro="hello"> Olá <b metal:define-slot="name">mundo</b> </p> 19quarta-feira, 23 de janeiro de 13
  20. 20. Zope Page Template   metal:fill-slot Os nomes de slot devem ser únicos dentro de uma macro. A declaração metal:fill-slot personaliza uma macro, substituindo um slot na Se o slot nomeado não existir dentro macro com o elemento declarado, da macro, o conteúdo deste slot será além de seu conteúdo. Esta declaração descartado. deve ser utilizada dentro de um metal:use-macro. Exemplo: Dada uma macro, master.html <p metal:define-macro="hello"> Olá <b metal:define-slot="name">mundo</b> </p> Você poderá preencher o slot name, assim: <p metal:use-macro="context/master.html/macros/hello"> Olá <b metal:fill-slot="name">Lucas Aquino</b> </p> 20quarta-feira, 23 de janeiro de 13
  21. 21. OBRIGADO! Lucas Aquino @luxcas contato@lucasaquino.com.brquarta-feira, 23 de janeiro de 13

×