SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Plone Total
                                    Conhecendo o Zope

                                      Lucas Aquino


quarta-feira, 23 de janeiro de 13
Tópicos
   • Introdução ao Zope
   • Zope Management Interface - ZMI
   • Zope Page Template




quarta-feira, 23 de janeiro de 13
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
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.



                                                     4

quarta-feira, 23 de janeiro de 13
Zope Management Interface - ZMI

    • Interface de gerência do servidor de aplicação Zope
    • Ferramentas para manutenção
    • .../manage




                                                            5

quarta-feira, 23 de janeiro de 13
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)




                                                                         6

quarta-feira, 23 de janeiro de 13
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.




                                                                                  7

quarta-feira, 23 de janeiro de 13
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




                                                                            8

quarta-feira, 23 de janeiro de 13
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>


                                                                        9

quarta-feira, 23 de janeiro de 13
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.




                                                                      10

quarta-feira, 23 de janeiro de 13
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.




                                                                         11

quarta-feira, 23 de janeiro de 13
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>




                                                                                                   12

quarta-feira, 23 de janeiro de 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>
                                                                              13

quarta-feira, 23 de janeiro de 13
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>




                                                                            14

quarta-feira, 23 de janeiro de 13
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>




                                                                     15

quarta-feira, 23 de janeiro de 13
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




                                                                         16

quarta-feira, 23 de janeiro de 13
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>



                                                                       17

quarta-feira, 23 de janeiro de 13
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>

                                                                        18

quarta-feira, 23 de janeiro de 13
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>


                                                                          19

quarta-feira, 23 de janeiro de 13
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>
                                                                                 20

quarta-feira, 23 de janeiro de 13
OBRIGADO!



                                            Lucas Aquino
                                              @luxcas
                                     contato@lucasaquino.com.br




quarta-feira, 23 de janeiro de 13

Weitere ähnliche Inhalte

Was ist angesagt?

Minicurso de HTML básico - Atualizado para HTML5
Minicurso de HTML básico - Atualizado para HTML5Minicurso de HTML básico - Atualizado para HTML5
Minicurso de HTML básico - Atualizado para HTML5Jose Augusto Cintra
 
Introdução ao HTML - Parte 1 - O que é?, Títulos, Texto Simples e Parágrafo
Introdução ao HTML - Parte 1 - O que é?, Títulos, Texto Simples e ParágrafoIntrodução ao HTML - Parte 1 - O que é?, Títulos, Texto Simples e Parágrafo
Introdução ao HTML - Parte 1 - O que é?, Títulos, Texto Simples e ParágrafoAlamo Saravali
 
Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...
Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...
Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...Uni Buscapé Company
 
Aula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estruturaAula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estruturaAndré Constantino da Silva
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01 Léo Dias
 
E-book sobre HTML 5 (Devmedia)
E-book sobre HTML 5 (Devmedia)E-book sobre HTML 5 (Devmedia)
E-book sobre HTML 5 (Devmedia)Devmedia
 
Javascript - Aplicações Interativas para a Web
Javascript - Aplicações Interativas para a WebJavascript - Aplicações Interativas para a Web
Javascript - Aplicações Interativas para a WebAdriano Lima
 
HTML HardCore Parte 1 - Conceitos
HTML HardCore Parte 1 - ConceitosHTML HardCore Parte 1 - Conceitos
HTML HardCore Parte 1 - ConceitosGeorge Mendonça
 
WebDesign AULA 2: Introdução a HTML
WebDesign AULA 2: Introdução a HTMLWebDesign AULA 2: Introdução a HTML
WebDesign AULA 2: Introdução a HTMLDra. Camila Hamdan
 

Was ist angesagt? (20)

Minicurso de HTML básico - Atualizado para HTML5
Minicurso de HTML básico - Atualizado para HTML5Minicurso de HTML básico - Atualizado para HTML5
Minicurso de HTML básico - Atualizado para HTML5
 
Curso HTML e CSS Part1
Curso HTML e CSS Part1Curso HTML e CSS Part1
Curso HTML e CSS Part1
 
Introdução ao HTML - Parte 1 - O que é?, Títulos, Texto Simples e Parágrafo
Introdução ao HTML - Parte 1 - O que é?, Títulos, Texto Simples e ParágrafoIntrodução ao HTML - Parte 1 - O que é?, Títulos, Texto Simples e Parágrafo
Introdução ao HTML - Parte 1 - O que é?, Títulos, Texto Simples e Parágrafo
 
Html5 Aula 6
Html5 Aula 6Html5 Aula 6
Html5 Aula 6
 
Apostila html
Apostila htmlApostila html
Apostila html
 
Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...
Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...
Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...
 
HTML Principios Básicos
HTML Principios BásicosHTML Principios Básicos
HTML Principios Básicos
 
Curso html basico_aula-001
Curso html basico_aula-001Curso html basico_aula-001
Curso html basico_aula-001
 
Html5 & CSS3
Html5 & CSS3Html5 & CSS3
Html5 & CSS3
 
Aula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estruturaAula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estrutura
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
E-book sobre HTML 5 (Devmedia)
E-book sobre HTML 5 (Devmedia)E-book sobre HTML 5 (Devmedia)
E-book sobre HTML 5 (Devmedia)
 
Javascript - Aplicações Interativas para a Web
Javascript - Aplicações Interativas para a WebJavascript - Aplicações Interativas para a Web
Javascript - Aplicações Interativas para a Web
 
Introdução ao HTML e CSS
Introdução ao HTML e CSSIntrodução ao HTML e CSS
Introdução ao HTML e CSS
 
HTML HardCore Parte 1 - Conceitos
HTML HardCore Parte 1 - ConceitosHTML HardCore Parte 1 - Conceitos
HTML HardCore Parte 1 - Conceitos
 
Curso HTML e CSS
Curso HTML e CSSCurso HTML e CSS
Curso HTML e CSS
 
Html5 primeiros passos
Html5 primeiros passosHtml5 primeiros passos
Html5 primeiros passos
 
WebDesign AULA 2: Introdução a HTML
WebDesign AULA 2: Introdução a HTMLWebDesign AULA 2: Introdução a HTML
WebDesign AULA 2: Introdução a HTML
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
Apostila curso xhtml css
Apostila curso xhtml cssApostila curso xhtml css
Apostila curso xhtml css
 

Ähnlich wie Plone total#3 Conhecendo o Zope

Ähnlich wie Plone total#3 Conhecendo o Zope (20)

xDocLet - Geração de código com xdoclet
xDocLet - Geração de código com xdocletxDocLet - Geração de código com xdoclet
xDocLet - Geração de código com xdoclet
 
Apoio1020 apostila html
Apoio1020 apostila htmlApoio1020 apostila html
Apoio1020 apostila html
 
Curso de Desenvolvimento de Sistemas Web - (X)HTML
Curso de Desenvolvimento de Sistemas Web - (X)HTMLCurso de Desenvolvimento de Sistemas Web - (X)HTML
Curso de Desenvolvimento de Sistemas Web - (X)HTML
 
Introdução ao Desenvolvimento front-end (2019)
Introdução ao Desenvolvimento front-end (2019)Introdução ao Desenvolvimento front-end (2019)
Introdução ao Desenvolvimento front-end (2019)
 
Java e XML
Java e XMLJava e XML
Java e XML
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Curso html
Curso htmlCurso html
Curso html
 
Curso de XHTML
Curso de XHTMLCurso de XHTML
Curso de XHTML
 
W3C Web Standards HTML
W3C Web Standards HTMLW3C Web Standards HTML
W3C Web Standards HTML
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
 
Xhtml
XhtmlXhtml
Xhtml
 
Estruturas blade-repeticao
Estruturas blade-repeticaoEstruturas blade-repeticao
Estruturas blade-repeticao
 
Aula 04
Aula 04Aula 04
Aula 04
 
Apresentando o HTML
Apresentando o HTMLApresentando o HTML
Apresentando o HTML
 
Html completo
Html completoHtml completo
Html completo
 
Aula2
Aula2Aula2
Aula2
 
Javascript Orientado a Objeto
Javascript Orientado a ObjetoJavascript Orientado a Objeto
Javascript Orientado a Objeto
 
Javascript OO
Javascript OOJavascript OO
Javascript OO
 
eXtensible Markup Language (XML)
eXtensible Markup Language (XML)eXtensible Markup Language (XML)
eXtensible Markup Language (XML)
 
Aula 04 e 05 cabeçalhos e parágrafos parte01 e 02
Aula 04 e 05 cabeçalhos e parágrafos parte01 e 02Aula 04 e 05 cabeçalhos e parágrafos parte01 e 02
Aula 04 e 05 cabeçalhos e parágrafos parte01 e 02
 

Plone total#3 Conhecendo o Zope

  • 1. Plone Total Conhecendo o Zope Lucas Aquino quarta-feira, 23 de janeiro de 13
  • 2. Tópicos • Introdução ao Zope • Zope Management Interface - ZMI • Zope Page Template quarta-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. 4 quarta-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 5 quarta-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) 6 quarta-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. 7 quarta-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 8 quarta-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> 9 quarta-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. 10 quarta-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. 11 quarta-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> 12 quarta-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> 13 quarta-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> 14 quarta-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> 15 quarta-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 16 quarta-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> 17 quarta-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> 18 quarta-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> 19 quarta-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> 20 quarta-feira, 23 de janeiro de 13
  • 21. OBRIGADO! Lucas Aquino @luxcas contato@lucasaquino.com.br quarta-feira, 23 de janeiro de 13