Criando Temas com Diazo
        World Plone Day 2012
                      Brasilia
O que é o Diazo
Nova maneira de criar temas para o Plone
Permite aplicar qualquer HTML no Plone
Como funciona
Com um simples XML você substitui elementos
de seu ‘template’ html por conteúdo gerado
pelo Plone.
Requisitos
•Plone 4.1.x + plone.app.theming
Ou
•Plone 4.2
Estrutura Básica
Um tema é um simples arquivo .zip contendo
pelo menos 2 arquivos:
    • index.html
    • rules.xml
Estrutura Básica
Normalmente o arquivo é bem mais complexo.
Contém CSS e imagens.

Mas podemos começar dessa maneira...
Crie uma pasta
Crie a pasta com o nome do seu tema
Esta pasta irá guardar os arquivos do seu tema
Criando o arquivo index.html
     <html>
      <head>
        <title>Meu primeiro Diazo</title>
      </head>
      <body>
        <h1 id="title">Meu primeiro Diazo</h1>
          <div id="menu">menu do site</div>
        <div id="conteudo">Lorem ipsum... </div>
      </body>
     </html>
Criando o arquivo rules.xml
<?xml version="1.0" encoding="UTF-8"?>
<rules
xmlns="http://namespaces.plone.org/diazo"
xmlns:css="http://namespaces.plone.org/diazo/css"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<theme href=“index.html" css:if-content="#visual-portal-wrapper" />
<replace css:content="#portal-globalnav" css:theme="#menu" />
<replace css:content="#portal-columns" css:theme="#conteudo" />
</rules>
Criando o arquivo rules.xml
Define qual o template utilizado
<theme href=“index.html" css:if-content="#visual-portal-wrapper" />


Adiciona a navegação do Plone
<replace css:content="#portal-globalnav" css:theme="#menu" />


Adiciona o Conteúdo
<replace css:content="#portal-columns" css:theme="#conteudo" />
Colocando em prática
• Crie um arquivo ZIP com a sua pasta
• Adicione ao Portal
     • Configuração do Portal / Diazo Theme
     • Clique na Aba Import Theme e adicione seu arquivo

          Importante, a página de configuração do DIazo
                 não é modificada por segurança.
Colocando em prática
Após aplicar o tema, você deferá ver o seu HTML,
com o menu e o conteúdo do Plone.

Entretanto os estilos do Plone não são aplicados
Adicionando estilos
Importando CSS do Plone
<replace css:content="head" css:theme="head" />

Essa chamada substitui todo o HEAD do seu HTML
pelo HEAD do Plone
<replace />
<replace css:theme="title" css:content="title"/>
O resultado aqui é que o elemento <title /> no tema
será substituido pelo elemento <title /> do conteúdo (dinamico).
<before /> e <after />
<after css:content="#portal-searchbox" css:theme="#conteudo" />
Este exemplo colocara o busca do Plone no final da página.
<drop />
<drop css:content="#portal-searchbox .searchSection" />

É usado para apagar elementos do tema ou do conteúdo
que não serão usados.

O exemplo acima apagará o “apenas nesta seção”
que vem junto da busca do Plone.
<merge />
<merge attributes="class" css:theme="body" css:content="body" /
  >
Usado para combinar os valores dos atributos, especialmente
usado para combinar classes de CSS.
• Se o tema possui uma tag body assim:
  <body class="alpha beta">
• e o conteúdo possui uma tag body assim:
  <body class="delta gamma">
• o resultado do exemplo acima seria:
  <body class="alpha beta delta gamma">
Ordem de Execução
O Diazo executará as regras segundo uma ordem própria e não
necessariamente segundo a ordem escrita. Não é preciso
decorar, mas é bom ter anotado:
1º lugar: <before>
2º lugar: <drop />
3º lugar: <replace>
4º lugar: Regras que usam attributes.
5º lugar: Regras usando "theme-children"
6º e último lugar: <after/>
Tema mais completo
Você pode encontrar um exemplo de tema mais completo no
seguinte endereço:

http://plone.org/products/beyondskins.responsive
Criando Temas com Diazo
        World Plone Day 2012
                      Brasilia

Construindo temas para Plone com Diazo

  • 1.
    Criando Temas comDiazo World Plone Day 2012 Brasilia
  • 2.
    O que éo Diazo Nova maneira de criar temas para o Plone Permite aplicar qualquer HTML no Plone
  • 3.
    Como funciona Com umsimples XML você substitui elementos de seu ‘template’ html por conteúdo gerado pelo Plone.
  • 5.
    Requisitos •Plone 4.1.x +plone.app.theming Ou •Plone 4.2
  • 6.
    Estrutura Básica Um temaé um simples arquivo .zip contendo pelo menos 2 arquivos: • index.html • rules.xml
  • 7.
    Estrutura Básica Normalmente oarquivo é bem mais complexo. Contém CSS e imagens. Mas podemos começar dessa maneira...
  • 8.
    Crie uma pasta Criea pasta com o nome do seu tema Esta pasta irá guardar os arquivos do seu tema
  • 9.
    Criando o arquivoindex.html <html> <head> <title>Meu primeiro Diazo</title> </head> <body> <h1 id="title">Meu primeiro Diazo</h1> <div id="menu">menu do site</div> <div id="conteudo">Lorem ipsum... </div> </body> </html>
  • 10.
    Criando o arquivorules.xml <?xml version="1.0" encoding="UTF-8"?> <rules xmlns="http://namespaces.plone.org/diazo" xmlns:css="http://namespaces.plone.org/diazo/css" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <theme href=“index.html" css:if-content="#visual-portal-wrapper" /> <replace css:content="#portal-globalnav" css:theme="#menu" /> <replace css:content="#portal-columns" css:theme="#conteudo" /> </rules>
  • 11.
    Criando o arquivorules.xml Define qual o template utilizado <theme href=“index.html" css:if-content="#visual-portal-wrapper" /> Adiciona a navegação do Plone <replace css:content="#portal-globalnav" css:theme="#menu" /> Adiciona o Conteúdo <replace css:content="#portal-columns" css:theme="#conteudo" />
  • 12.
    Colocando em prática •Crie um arquivo ZIP com a sua pasta • Adicione ao Portal • Configuração do Portal / Diazo Theme • Clique na Aba Import Theme e adicione seu arquivo Importante, a página de configuração do DIazo não é modificada por segurança.
  • 13.
    Colocando em prática Apósaplicar o tema, você deferá ver o seu HTML, com o menu e o conteúdo do Plone. Entretanto os estilos do Plone não são aplicados
  • 14.
    Adicionando estilos Importando CSSdo Plone <replace css:content="head" css:theme="head" /> Essa chamada substitui todo o HEAD do seu HTML pelo HEAD do Plone
  • 15.
    <replace /> <replace css:theme="title"css:content="title"/> O resultado aqui é que o elemento <title /> no tema será substituido pelo elemento <title /> do conteúdo (dinamico).
  • 16.
    <before /> e<after /> <after css:content="#portal-searchbox" css:theme="#conteudo" /> Este exemplo colocara o busca do Plone no final da página.
  • 17.
    <drop /> <drop css:content="#portal-searchbox.searchSection" /> É usado para apagar elementos do tema ou do conteúdo que não serão usados. O exemplo acima apagará o “apenas nesta seção” que vem junto da busca do Plone.
  • 18.
    <merge /> <merge attributes="class"css:theme="body" css:content="body" / > Usado para combinar os valores dos atributos, especialmente usado para combinar classes de CSS. • Se o tema possui uma tag body assim: <body class="alpha beta"> • e o conteúdo possui uma tag body assim: <body class="delta gamma"> • o resultado do exemplo acima seria: <body class="alpha beta delta gamma">
  • 19.
    Ordem de Execução ODiazo executará as regras segundo uma ordem própria e não necessariamente segundo a ordem escrita. Não é preciso decorar, mas é bom ter anotado: 1º lugar: <before> 2º lugar: <drop /> 3º lugar: <replace> 4º lugar: Regras que usam attributes. 5º lugar: Regras usando "theme-children" 6º e último lugar: <after/>
  • 20.
    Tema mais completo Vocêpode encontrar um exemplo de tema mais completo no seguinte endereço: http://plone.org/products/beyondskins.responsive
  • 21.
    Criando Temas comDiazo World Plone Day 2012 Brasilia