SlideShare una empresa de Scribd logo
1 de 46
Criando Temas com Diazo
            @Tamosauskas
Plone para Designers
     Lá e de Volta Outra Vez
2010
Paul Everitt, Laurence Rowe and Martin Aspeli

Antigo XDV
Que Diazo isso faz?
Com um simples XML você substitui elementos
de seu template html por conteúdo gerado pelo
Plone.
Porque usar Diazo

  Designers e Programadores trabalham melhor.

  Torna a entrada ao mundo Plone mais amigavel

  As vezes o design já existe.

  Reduz o templo de implementação.

  Performance e Flexibilidade.

  O tema pode ser reaproveitado em outros CMS e vice versa.

  É possível redesenhar uma interface do usuário sem sequer tocar
 o código fonte da aplicação

  O tema original permanece intocado facilitando a reutilização
e manutenção.
Porque NÃO usar Diazo

  Risco de perda das validações de código

  Riscos de usabilidade

  Riscos de portabilidade

  Riscos de acessibilidade

  Riscos na otimização para buscas

  Possível incompatibilidade com alguns produtos
Diazo X Deliverance
Muito Parecidos (regras)
Deliverance saiu na frente
Deliverance usa Python
Diazo Plone 4, Deliverance is no more
Requisitos
•Plone 4.1.x + plone.app.theming
Ou
•Plone 4.2
Estrutura Básica
Um pacote diazo é uma pasta compactada .zip
 contendo ao menos 2 arquivos:

    • index.html
    • rules.xml
Estrutura Básica
Normalmente o arquivo é bem mais complexo.
Contém CSS, imagens, javascripts.

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:

rules.xml
index.html
index.html
    <html>

     <head>
       <title>Meu primeiro Diazo</title>
     </head>

     <body class=”diazo” >
       <h1 id="title">Meu Diazo</h1>
        <div id="menu">Menu do site</div>
        <div id="conteudo">Conteúdo</div>
     </body>

    </html>
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" />


</rules>
Aplicando um pacote
    Zipe a pasta e suba no Plone

    Site Setup -> Diazo theme

    Ou

    @@theming-controlpanel
Instale e tente acessar o Plone e Zope
Entendendo o rules.xml
Define namespaces
<?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">




</rules>
Chamando o Template
Define qual o template utilizado

<theme href=“index.html" />


Colocar uma condição:


  <theme href=“index.html"
        css:if-content="#visual-portal-wrapper" />
Condicionais

<notheme css:if-content="#edit-wrapper" />


<notheme if-path="presentation_view" />
Chamando o Template
Define qual o template utilizado

<theme href=“index.html" />


Colocar uma condição:


  <theme href=“index.html"
        css:if-content="#visual-portal-wrapper" />
Anatomia de uma Regra

<regra css:content="#elemento-no-Plone"
       css:theme="#elemento-no-Template" />
Exemplos de regras

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

Adiciona o Conteúdo do Plone
<replace css:content="#portal-columns"
         css:theme="#conteudo" />
Desafio

 Crie uma regra que coloque na tag #title o H1 do Plone.
Desafio
Após aplicar o tema, você verá seu HTML,
com o menu e o conteúdo e titulo do Plone.

Entretanto os estilos do Plone não são aplicados

Porque? Você consegue arrumar isso?
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="#portlet-patrocinadores"
css:theme="#footer" />
Este exemplo colocara o portlet de patrocinadores abaixo do rodape
de um site.
Desafio
Usando a regra after, coloque a busca do plone #portal-searchbox
logo abaixo do #conteudo
Solução
<after css:content="#portal-searchbox" css:theme="#conteudo" />
Este exemplo colocara o busca do Plone no final da página.
<drop />
<drop css:content=".portlet .portletHeader" />

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

O exemplo acima apagará o Header de todos os portlets
Desafio
Usando a regra drop apague o “Apenas essa seção” da busca do
site.
Solução
<drop css:content="#portal-searchbox .searchSection" />

O exemplo acima apagará o “apenas nesta seção”
que vem junto da busca do Plone.
<merge />
Usado para combinar os valores dos atributos, especialmente para
  combinar classes de CSS
<merge attributes="class" css:theme="#prato"
  css:content="#prato" />d

Tema: <div id=”prato” class="arroz">
  Conteúdo: <div id=”prato” class="feijao">

O resultado do exemplo será:
   <div class="arroz feijao">
Desafio
Crie uma regra que junte o atriubute class do body do tema com o
   do conteúdo.
Solução
<merge attributes="class" css:theme="body"
  css:content="body" />

  .
<append />
 <append css:content-children="head"
        css:theme="html head" />

 <append css:theme="head">
 <link rel="stylesheet" href="++theme++pacote/style.css"
type="text/css" charset="utf-8" />
 </append>

Este exemplo inclui uma tag link no head do tema
Pais e Filhos
As regras podem tratar diretamente das tags filhas:

<append css:content="#footer"
       css:theme="#footer"/>

<append css:content-children="#footer"
       css:theme="#footer"/>
Desafio
Usando a regra append inclua um script function.js no seu tema.
Solução
<append css:theme="head">
<script type="text/javascript" src="/++theme++pacotefunction.js” />

 </append>
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> e <append>
2º lugar: <drop />
3º lugar: <replace>
4º lugar: Regras que usam attributes.
5º lugar: Regras usando "theme-children"
6º e último lugar: <after/>
Desafio do Dragão
1. Escolha um template feito pelo seu sobrinho:

freetemplatesonline.com
templatesgratis.org

2. Crie um pacote diazo instalável e teste

3. Crie um arquivo com as regras necessárias para
substituir conteudo

4. Crie regras onde você use o estilo do template com os
itens do head do Plone
Referências e Documentação
Você pode encontrar um exemplo de tema mais completo no
seguinte endereço:

http://plone.org/products/beyondskins.responsive
Referências e Documentação

http://diazo.org
http://pypi.python.org/pypi/diazo
http://www.simplesconsultoria.com.br/blog/como-criar-um-tema-para-plone-usando-o-dia
estaaopresentacao
Criando Temas com Diazo
             @Tamosauskas

Más contenido relacionado

La actualidad más candente

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
 
Apostila html,xhtml e css
Apostila html,xhtml e cssApostila html,xhtml e css
Apostila html,xhtml e css
mario_venancio
 

La actualidad más candente (18)

HTML
HTMLHTML
HTML
 
Aula de HTML5 - DevCampos - www.devcampos.com.br
Aula de HTML5 - DevCampos - www.devcampos.com.brAula de HTML5 - DevCampos - www.devcampos.com.br
Aula de HTML5 - DevCampos - www.devcampos.com.br
 
Introducao cms-wordpress
Introducao cms-wordpressIntroducao cms-wordpress
Introducao cms-wordpress
 
A87c5f081429cf
A87c5f081429cfA87c5f081429cf
A87c5f081429cf
 
Html aula 1
Html aula 1Html aula 1
Html aula 1
 
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...
 
Apoio1020 apostila html
Apoio1020 apostila htmlApoio1020 apostila html
Apoio1020 apostila html
 
Programação Web com HTML e CSS
Programação Web com HTML e CSSProgramação Web com HTML e CSS
Programação Web com HTML e CSS
 
Curso HTML e CSS
Curso HTML e CSSCurso HTML e CSS
Curso HTML e CSS
 
HTML Formatando Textos
HTML Formatando TextosHTML Formatando Textos
HTML Formatando Textos
 
Resumo html 2012 exercícios 01 21
Resumo html 2012   exercícios 01 21Resumo html 2012   exercícios 01 21
Resumo html 2012 exercícios 01 21
 
Arquitetura CSS
Arquitetura CSSArquitetura CSS
Arquitetura CSS
 
Python 07
Python 07Python 07
Python 07
 
Apostila html,xhtml e css
Apostila html,xhtml e cssApostila html,xhtml e css
Apostila html,xhtml e css
 
Laboratório Web 2013-2014 - HTML5
Laboratório Web 2013-2014 - HTML5Laboratório Web 2013-2014 - HTML5
Laboratório Web 2013-2014 - HTML5
 
Apostila html,xhtml e css
Apostila html,xhtml e cssApostila html,xhtml e css
Apostila html,xhtml e css
 
Criação de sites
Criação de sitesCriação de sites
Criação de sites
 
Html5 em 15 minutos
Html5 em 15 minutosHtml5 em 15 minutos
Html5 em 15 minutos
 

Destacado

PloneGov.Br: Cadê o .br que estava aqui?
PloneGov.Br: Cadê o .br que estava aqui?PloneGov.Br: Cadê o .br que estava aqui?
PloneGov.Br: Cadê o .br que estava aqui?
Simples Consultoria
 

Destacado (20)

Diazo para todos
Diazo para todosDiazo para todos
Diazo para todos
 
Plone 5: Você ainda vai ter um!
Plone 5: Você ainda vai ter um!Plone 5: Você ainda vai ter um!
Plone 5: Você ainda vai ter um!
 
Lenguaje, framework, comunidad y cuenta bancaria: De teoría hasta la práctica
Lenguaje, framework,  comunidad y cuenta bancaria: De teoría hasta la prácticaLenguaje, framework,  comunidad y cuenta bancaria: De teoría hasta la práctica
Lenguaje, framework, comunidad y cuenta bancaria: De teoría hasta la práctica
 
O Futuro do Plone
O Futuro do PloneO Futuro do Plone
O Futuro do Plone
 
O Futuro do Plone (RuPy-Br)
O Futuro do Plone (RuPy-Br)O Futuro do Plone (RuPy-Br)
O Futuro do Plone (RuPy-Br)
 
V de Vinagre: A história por trás da história do momento que mudou o Brasil
V de Vinagre: A história por trás da história do momento que mudou o BrasilV de Vinagre: A história por trás da história do momento que mudou o Brasil
V de Vinagre: A história por trás da história do momento que mudou o Brasil
 
O Futuro do Plone
O Futuro do PloneO Futuro do Plone
O Futuro do Plone
 
PloneGov.Br: Cadê o .br que estava aqui?
PloneGov.Br: Cadê o .br que estava aqui?PloneGov.Br: Cadê o .br que estava aqui?
PloneGov.Br: Cadê o .br que estava aqui?
 
O Futuro do Plone (PythonBrasil[8])
O Futuro do Plone (PythonBrasil[8])O Futuro do Plone (PythonBrasil[8])
O Futuro do Plone (PythonBrasil[8])
 
Plone: Funcionalidades que todo gestor de conteúdo Plone deveria saber
Plone: Funcionalidades que todo gestor de conteúdo Plone deveria saberPlone: Funcionalidades que todo gestor de conteúdo Plone deveria saber
Plone: Funcionalidades que todo gestor de conteúdo Plone deveria saber
 
O Estado do Plone - FISL 14
O Estado do Plone - FISL 14O Estado do Plone - FISL 14
O Estado do Plone - FISL 14
 
Minicurso Ruby
Minicurso RubyMinicurso Ruby
Minicurso Ruby
 
Criando temas para Joomla, Wordpress, Drupal e tudo mais sem tocar em templa...
Criando temas para Joomla, Wordpress, Drupal e tudo mais  sem tocar em templa...Criando temas para Joomla, Wordpress, Drupal e tudo mais  sem tocar em templa...
Criando temas para Joomla, Wordpress, Drupal e tudo mais sem tocar em templa...
 
Gestión de Contenido con Plone
Gestión de Contenido con PloneGestión de Contenido con Plone
Gestión de Contenido con Plone
 
Cómo Brasil está construyendo una nación digital con código abierto y Python
Cómo Brasil está construyendo una nación digital con código abierto y PythonCómo Brasil está construyendo una nación digital con código abierto y Python
Cómo Brasil está construyendo una nación digital con código abierto y Python
 
Integrando Python e JavaScript
Integrando Python e JavaScriptIntegrando Python e JavaScript
Integrando Python e JavaScript
 
Python como primeira linguagem de programação
Python como primeira linguagem de programaçãoPython como primeira linguagem de programação
Python como primeira linguagem de programação
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
 
Collective Cover
Collective CoverCollective Cover
Collective Cover
 
Introdução JQuery
Introdução JQueryIntrodução JQuery
Introdução JQuery
 

Similar a Criando Temas com Diazo

Sistemas Corporativos Web - WordPress Aula03
Sistemas Corporativos Web - WordPress Aula03Sistemas Corporativos Web - WordPress Aula03
Sistemas Corporativos Web - WordPress Aula03
Tersis Zonato
 
HTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfHTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdf
Cesar Braz
 
Wordpress além do blog
Wordpress além do blogWordpress além do blog
Wordpress além do blog
Mateus Neves
 

Similar a Criando Temas com Diazo (20)

Construindo temas para Plone com Diazo
Construindo temas para Plone com DiazoConstruindo temas para Plone com Diazo
Construindo temas para Plone com Diazo
 
Html5 workshop
Html5 workshopHtml5 workshop
Html5 workshop
 
Css Curso completo
Css Curso completoCss Curso completo
Css Curso completo
 
Apostila Css ( Apostilando.com )
Apostila Css ( Apostilando.com )Apostila Css ( Apostilando.com )
Apostila Css ( Apostilando.com )
 
Sistemas Corporativos Web - WordPress Aula03
Sistemas Corporativos Web - WordPress Aula03Sistemas Corporativos Web - WordPress Aula03
Sistemas Corporativos Web - WordPress Aula03
 
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
 
HTML5 & CSS3
HTML5 & CSS3HTML5 & CSS3
HTML5 & CSS3
 
Mini Curso - jQuery - FMU
Mini Curso - jQuery - FMUMini Curso - jQuery - FMU
Mini Curso - jQuery - FMU
 
HTML + CSS
HTML + CSSHTML + CSS
HTML + CSS
 
HTML - HyperText Markup Language - 2
HTML - HyperText Markup Language - 2HTML - HyperText Markup Language - 2
HTML - HyperText Markup Language - 2
 
Devmedia - Conhecendo o framework front-end Foundation
Devmedia - Conhecendo o framework front-end FoundationDevmedia - Conhecendo o framework front-end Foundation
Devmedia - Conhecendo o framework front-end Foundation
 
Django Módulo Básico Parte II
Django Módulo Básico Parte IIDjango Módulo Básico Parte II
Django Módulo Básico Parte II
 
Otimização Front-end para WordPress
Otimização Front-end para WordPressOtimização Front-end para WordPress
Otimização Front-end para WordPress
 
XHTML Básico
XHTML BásicoXHTML Básico
XHTML Básico
 
Wordpress e suas funções
Wordpress e suas funçõesWordpress e suas funções
Wordpress e suas funções
 
HTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfHTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdf
 
Iniciação em HTML
Iniciação em HTMLIniciação em HTML
Iniciação em HTML
 
PW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdfPW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdf
 
Construindo layout de sites com CSS
Construindo layout de sites com CSSConstruindo layout de sites com CSS
Construindo layout de sites com CSS
 
Wordpress além do blog
Wordpress além do blogWordpress além do blog
Wordpress além do blog
 

Más de Simples Consultoria

A hard time giving back: Plone and Brazil
A hard time giving back: Plone and BrazilA hard time giving back: Plone and Brazil
A hard time giving back: Plone and Brazil
Simples Consultoria
 

Más de Simples Consultoria (13)

Collective.cover: one year later
Collective.cover: one year laterCollective.cover: one year later
Collective.cover: one year later
 
Primeiros passos com Plone, o CMS Pythonico
Primeiros passos com Plone, o CMS PythonicoPrimeiros passos com Plone, o CMS Pythonico
Primeiros passos com Plone, o CMS Pythonico
 
Plone.gov.br: Or how to leverage Plone in the Brazilian Government
Plone.gov.br: Or how to leverage Plone in the Brazilian GovernmentPlone.gov.br: Or how to leverage Plone in the Brazilian Government
Plone.gov.br: Or how to leverage Plone in the Brazilian Government
 
How Brazil is building a digital nation with open source and Python
How Brazil is building a digital nation with open source and PythonHow Brazil is building a digital nation with open source and Python
How Brazil is building a digital nation with open source and Python
 
Linguagem, framework, comunidade e conta-bancária: Da teoria a prática
Linguagem, framework, comunidade e  conta-bancária: Da teoria a práticaLinguagem, framework, comunidade e  conta-bancária: Da teoria a prática
Linguagem, framework, comunidade e conta-bancária: Da teoria a prática
 
Simplificando o Plone
Simplificando o PloneSimplificando o Plone
Simplificando o Plone
 
O Estado do Plone
O Estado do PloneO Estado do Plone
O Estado do Plone
 
MythBusting: Zero linhas de código e uma intranet em menos de sete minutos
MythBusting: Zero linhas de código e uma intranet em menos de sete minutosMythBusting: Zero linhas de código e uma intranet em menos de sete minutos
MythBusting: Zero linhas de código e uma intranet em menos de sete minutos
 
O Estado do Plone
O Estado do PloneO Estado do Plone
O Estado do Plone
 
Linguagem, framework, comunidade e conta-bancária: Da teoria a prática
Linguagem, framework, comunidade e conta-bancária: Da teoria a práticaLinguagem, framework, comunidade e conta-bancária: Da teoria a prática
Linguagem, framework, comunidade e conta-bancária: Da teoria a prática
 
A hard time giving back: Plone and Brazil
A hard time giving back: Plone and BrazilA hard time giving back: Plone and Brazil
A hard time giving back: Plone and Brazil
 
Aumentando seu Karma: Como a cultura open source nos torna pessoas melhores!
Aumentando seu Karma: Como a cultura open source nos torna pessoas melhores!Aumentando seu Karma: Como a cultura open source nos torna pessoas melhores!
Aumentando seu Karma: Como a cultura open source nos torna pessoas melhores!
 
SQLAlchemy e Plone: no more zsql methods
SQLAlchemy e Plone: no more zsql methodsSQLAlchemy e Plone: no more zsql methods
SQLAlchemy e Plone: no more zsql methods
 

Último

Último (8)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Criando Temas com Diazo