Your SlideShare is downloading. ×
0
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Plone total#3 Conhecendo o Zope
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Plone total#3 Conhecendo o Zope

207

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
207
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Plone Total Conhecendo o Zope Lucas Aquinoquarta-feira, 23 de janeiro de 13
  • 2. Tópicos • Introdução ao Zope • Zope Management Interface - ZMI • Zope Page Templatequarta-feira, 23 de janeiro de 13
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. OBRIGADO! Lucas Aquino @luxcas contato@lucasaquino.com.brquarta-feira, 23 de janeiro de 13

×