criando temas com diazo

46
Criando Temas com Diazo @Tamosauskas

Upload: simples-consultoria

Post on 19-May-2015

1.259 views

Category:

Technology


1 download

DESCRIPTION

Curso de Diazo para Plone

TRANSCRIPT

Page 1: Criando Temas com Diazo

Criando Temas com Diazo@Tamosauskas

Page 2: Criando Temas com Diazo

Plone para DesignersLá e de Volta Outra Vez

Page 3: Criando Temas com Diazo

Paul Everitt, Laurence Rowe and Martin Aspeli

Antigo XDV

2010

Page 4: Criando Temas com Diazo

Que Diazo isso faz?

Com um simples XML você substitui elementos de seu template html por conteúdo gerado pelo Plone.

Page 5: Criando Temas com Diazo
Page 6: Criando Temas com Diazo

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.

Page 7: Criando Temas com Diazo

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

Page 8: Criando Temas com Diazo

Diazo X Deliverance

Muito Parecidos (regras)Deliverance saiu na frenteDeliverance usa PythonDiazo Plone 4, Deliverance is no more

Page 9: Criando Temas com Diazo

Requisitos

•Plone 4.1.x + plone.app.themingOu•Plone 4.2

Page 10: Criando Temas com Diazo

Estrutura Básica

Um pacote diazo é uma pasta compactada .zip contendo ao menos 2 arquivos:

• index.html• rules.xml

Page 11: Criando Temas com Diazo

Estrutura Básica

Normalmente o arquivo é bem mais complexo.Contém CSS, imagens, javascripts.

Mas podemos começar dessa maneira...

Page 12: Criando Temas com Diazo

Crie uma pasta

Crie a pasta com o nome do seu temaEsta pasta irá guardar os arquivos do seu tema:

rules.xmlindex.html

Page 13: Criando Temas com Diazo

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>

Page 14: Criando Temas com Diazo

<?xml version="1.0" encoding="UTF-8"?><rulesxmlns="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>

rules.xml

Page 15: Criando Temas com Diazo

Aplicando um pacoteZipe a pasta e suba no Plone

Site Setup -> Diazo theme

Ou

@@theming-controlpanel

Page 16: Criando Temas com Diazo
Page 17: Criando Temas com Diazo
Page 18: Criando Temas com Diazo

Instale e tente acessar o Plone e Zope

Page 19: Criando Temas com Diazo

Define namespaces<?xml version="1.0" encoding="UTF-8"?><rulesxmlns="http://namespaces.plone.org/diazo"xmlns:css="http://namespaces.plone.org/diazo/css"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

</rules>

Entendendo o rules.xml

Page 20: Criando Temas com Diazo

Define qual o template utilizado

<theme href=“index.html" />

Colocar uma condição:

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

Chamando o Template

Page 21: Criando Temas com Diazo

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

<notheme if-path="presentation_view" />

Condicionais

Page 22: Criando Temas com Diazo

Define qual o template utilizado

<theme href=“index.html" />

Colocar uma condição:

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

Chamando o Template

Page 23: Criando Temas com Diazo

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

Anatomia de uma Regra

Page 24: Criando Temas com Diazo

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

Exemplos de regras

Page 25: Criando Temas com Diazo

Desafio

Crie uma regra que coloque na tag #title o H1 do Plone.

Page 26: Criando Temas com Diazo

DesafioApó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?

Page 27: Criando Temas com Diazo

Adicionando estilosImportando CSS do Plone<replace css:content="head" css:theme="head" />

Essa chamada substitui todo o HEAD do seu HTML pelo HEAD do Plone

Page 28: Criando Temas com Diazo

<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).

Page 29: Criando Temas com Diazo

<before /> e <after /><after css:content="#portlet-patrocinadores" css:theme="#footer" />Este exemplo colocara o portlet de patrocinadores abaixo do rodape de um site.

Page 30: Criando Temas com Diazo

DesafioUsando a regra after, coloque a busca do plone #portal-searchbox logo abaixo do #conteudo

Page 31: Criando Temas com Diazo

Solução<after css:content="#portal-searchbox" css:theme="#conteudo" />Este exemplo colocara o busca do Plone no final da página.

Page 32: Criando Temas com Diazo

<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

Page 33: Criando Temas com Diazo

DesafioUsando a regra drop apague o “Apenas essa seção” da busca do site.

Page 34: Criando Temas com Diazo

Solução<drop css:content="#portal-searchbox .searchSection" />

O exemplo acima apagará o “apenas nesta seção” que vem junto da busca do Plone.

Page 35: Criando Temas com Diazo

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

Page 36: Criando Temas com Diazo

DesafioCrie uma regra que junte o atriubute class do body do tema com o

do conteúdo.

Page 37: Criando Temas com Diazo

Solução<merge attributes="class" css:theme="body"

css:content="body" />

.

Page 38: Criando Temas com Diazo

<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

Page 39: Criando Temas com Diazo

Pais e FilhosAs regras podem tratar diretamente das tags filhas:

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

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

Page 40: Criando Temas com Diazo

Desafio Usando a regra append inclua um script function.js no seu tema.

Page 41: Criando Temas com Diazo

Solução <append css:theme="head"> <script type="text/javascript" src="/++theme++pacotefunction.js” />

</append>

Page 42: Criando Temas com Diazo

Ordem de ExecuçãoO 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/>

Page 43: Criando Temas com Diazo

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

Page 44: Criando Temas com Diazo

Referências e Documentação

Você pode encontrar um exemplo de tema mais completo no seguinte endereço:

http://plone.org/products/beyondskins.responsive

Page 45: Criando Temas com Diazo

http://diazo.orghttp://pypi.python.org/pypi/diazohttp://www.simplesconsultoria.com.br/blog/como-criar-um-tema-para-plone-usando-o-diazo/estaaopresentacao

Referências e Documentação

Page 46: Criando Temas com Diazo

Criando Temas com Diazo

@Tamosauskas