Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen –...

56
Diazo XSLT basiertes Website Theming Maik Derstappen derico softwareentwicklung & consulting [email protected]

Transcript of Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen –...

Page 1: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

DiazoXSLT basiertes Website Theming

Maik Derstappen – derico softwareentwicklung & consulting – [email protected]

Page 2: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

Was wir haben

Page 3: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de
Page 4: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

Wie der Kunde will

Page 5: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de
Page 6: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de
Page 7: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de
Page 8: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de
Page 9: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

Diazo

Page 10: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de
Page 11: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<replace css:content='#portal-globalnav li' css:theme-children='#global-navigation' />

Die Hauptnavigationspunkte übernehmen

Page 12: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<replace css:content="#content" css:theme="#content" />

Den Seiteninhalt übernehmen

Page 13: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<after css:content='.portlet.portletNews'css:theme-children='#portal-column-two' />

Das Nachrichten-Portlet übernehmen

Page 14: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<after css:content-children='#portal-column-two'css:theme-children='#portal-column-two' />

Alle Portlets der rechten Spalte übernehmen

Page 15: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<after css:content='#portal-column-two .portlet:not(.portletNavigationTree)'css:theme-children='#portal-column-two' />

Alle Portlets bis auf Navigation übernehmen

Page 16: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

#portal-column-two .portlet:not(.portletNavigationTree)

Alle Portlets bis auf Navigation übernehmen

Page 17: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

Diazo rules.xmlGrundgerüst

Page 18: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

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

Page 19: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

Diazo rules.xmlDefinition

Page 20: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<rules css:if-content="#visual-portal-wrapper"><after

content="/html/head/script" theme-children="/html/head" />

<replace css:content='#portal-globalnav li'

css:theme-children='#portal-globalnav' />

<replace css:content-children="#content"

css:theme-children="#content" />

<after css:content='.portlet.portletNews'

css:theme-children='#portal-column-two' /></rules>

Page 21: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

statische Template-Datei definieren

Page 22: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<rules css:if-content="#visual-portal-wrapper">

<theme href="index.html" css:if-content="body.section-front-page" />

<theme href="index.html" css:if-content="body.portaltype-plone-site" />

<theme href="article.html" /> <notheme

css:if-content="body.rawpage" />

</rules>

Page 23: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

Diazo – Regeln (Rules)

Page 24: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

XPath oder CSS3?

Diazo unterstützt sowohl XPath- als auch CSS3-Selektoren in Regeln.

Page 25: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

XPath

<aftercontent="//div[@id='portal-column-one']

//*[contains(@class, 'portlet')]"theme=“//div[@id='portal-column-one']“

/>

Page 26: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

CSS3

<aftercss:content="#portal-column-one .portlet"css:theme=“#portal-column-one“

/>

Page 27: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

XPath- und CSS3-Selektoren führen zu identischen Ergebnissen, da die

CSS3-Selektoren in XPath umgewandelt werden

Page 28: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

theme-children / content-children

Wird die children-Variante verwendet, so betrifft die Anweisung, die im gefundenen Element enthaltenen Kind-Elemente, nicht

das Element selbst

Page 29: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

- theme- notheme- replace- before / after- drop- strip- merge- copy

Page 30: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<theme />

Page 31: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

theme gibt die Template-Datei für das Theme an

<theme href="index.html" css:if-content="body.section-front-page" />

<theme href="article.html" />

Page 32: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<notheme />

Page 33: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

notheme deaktiviert das Theming, dies kann zusammen mit Bedingungen eingesetzt werden

<notheme css:if-content="body.rawpage" />

Page 34: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<replace />

Page 35: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

replace ersetzt ein Element im Theme mit einem Element aus dem content

<replace css:content="#edit-bar"css:theme="#edit-bar" />

<replace css:content-children="#content"

css:theme-children="#content" />

Page 36: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<after />

&

<before />

Page 37: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

after & before fügen ein Element aus dem Content vor / nach einem Element im Theme ein

<before css:content='.portlet.portletNavigationTree'

css:theme-children='#portal-column-two' />

<after content-children="#portal-column-two" theme-children="#portal-column-two" />

Page 38: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<copy />

Page 39: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

copy kopiert Attribute aus dem Content ins Theme

<copy attributes="id dir" css:content="body"

css:theme="body" />

Page 40: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<merge />

Page 41: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

merge vereint Attribute aus dem Contentmit vorhandenen Attributen im Theme

<merge attributes="class" css:content="body" css:theme="body" />

Page 42: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<drop />

Page 43: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

drop entfernt Elemente / Attribute aus dem Theme oder Content

<drop css:theme=".portletNavigationTree"attributes="class id" />

<drop css:content="#portal-searchbox .searchSection" />

Page 44: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<strip />

Page 45: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

strip entfernt ein Element aus dem Theme oder Content, erhält aber den Inhalt des Elementes

<strip css:content=".portletWrapper" />

Page 46: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

Feste Ausführreihenfolge

von Diazo Regeln!

Page 47: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

1. before - Regeln für (theme) 2. drop - Regeln3. replace - Regeln (theme)4. strip - Regeln5. Regeln die Attribute verändern6. before, replace, after - Regeln (theme-children)7. after – Regeln (theme)

Ausführreihenfolge von Diazo-Regeln

Page 48: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

Es ist möglich Inhalte weiterer

Quellen einzubinden

Page 49: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<after css:theme-content="#content"css:content="#content"href="@@custom_view" />

Einbinden weiterer Quellen

Page 50: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

Dies funktioniert auch für externe

Websites und Web-Anwendungen!

Page 51: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<replace css:content-children="#content-core .panes" css:theme-children=".col-1 .section"

href="http://konferenz.plone.de/programm" />

Einbinden externer Systeme

Page 52: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

Dies eröffnet umfangreiche Möglichkeiten, verschiedene Systeme nahtlos und barrierefrei in Plone zu integrieren.

Einbinden externer Systeme

Page 53: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de
Page 54: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

<replace css:content-children="#spTeaserColumn" css:theme-children="#press_table .left" href="http://www.spiegel.de"if-path="presse/"/>

<replace css:content=".teaserlist" css:theme-children="#press_table .right" href="http://www.zeit.de/"if-path="presse/"/>

Einbinden von nicht exteren Systemen

Page 55: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de
Page 56: Diazo - derico.de@download/file/plone...Diazo XSLT basiertes Website Theming Maik Derstappen – derico softwareentwicklung & consulting – md@derico.de

Vielen Dank

Fragen ?

Diazo: http://diazo.org

Development & Consulting: http://derico.de