Jeroen Vloothuis (KNMP) en Jan Murre (Pareto): Plone skinning met XDV

published Nov 02, 2010

Een case studie van KNMP waarbij met Plone 4 en XDV de huisstijl is geïmplementeerd.

Jeroen Vloothuis en Jan Murre presenteren tijdens de Nederlandse Plone Gebruikersdag 2010 in de Euromast, Rotterdam.

Jeroen Vloothuis: ik heb ooit bij Pareto gewerkt, maar zit nu bij KNMP als klant van Pareto, dus dat is wel een bijzondere situatie. De KNMP behartigt de belangen van de apothekers in Nederland. We hebben twee websites: http://knmp.nl en http://pw.nl (Pharmaceutisch Weekblad). Daartussen moest ook nog wat gesynchroniseerd worden. Het ontwerp is gemaakt door TamTam.

Jan Murre: we hebben Plone 4 gebruikt. Vanaf de eerste betas was dit eigenlijk al een heel stabiel product. Verder onder andere PloneFormGen, Ploneboard, Collage, Feedfeeder (haal pagina's via RSS of atom binnen in je eigen site), Schemaextender, XDV.

Met Collage kan je in de content een layout maken met rijen en kolommen. De user interface is wat 'clunky'. Op termijn komt Deco in zicht als vervanging. De maker heeft aangegeven misschien een migratiepad van Collage naar Deco te maken, maar dat is dus onder voorbehoud.

Met SchemaExtender (bedankt, Jarn!) kan je bestaande content types uitbreiden. Dat is handig als een bestaand type bijna heeft wat je nodig hebt maar net even een veldje mist. In ons geval hebben we de schema extender gebruikt om het agenda item nog een plaatje mee te geven.

XDV: startte als Deliverance, door Paul Everitt. Doel is om de afstand tussen front- en backend developers te verkleinen. Zope Page Templates (ZPT) waren hier ook voor bedoeld. Het idee van ZPT was dat een pure html developer zonder Zope kennis ook een page template zou kunnen editen; in de praktijk staat er toch vaak teveel logica in.

Het skinnen van een Plone site bestaat uit het aanpakken van CSS ('decorating the tree'), viewlets, portlets, main template. Maar: Plone is 'zwaar': heel veel html, er moet veel gerekend worden. XDV gebruikt XSLT om die Plone boom te kortwieken. Met regels kan je zeggen: verplaats een deel van de html, of kopieer het, voeg wat toe aan de voor- of achterkant, haal wat weg.

Het scheelt aan de Plone kant niet aan rekenkracht, want Plone moet nog steeds de hele pagina laden. Voor de browser wordt het natuurlijk wel iets eenvoudiger, als je tenminste XDV gebruikt om van alles en nog wat weg te halen. Je zou aan de Plone kant wel een licht theme kunnen maken dat al veel minder html laadt.

Hoe doe je deployment? Gebruik collective.xdv voor Plone. Gebruik plugins voor de Nginx of Apache web server. Je kan ook dv.xdvserver als WSGI pipeline gebruiken. (Noot van Maurits: collective.xdv is ondertussen bezig met een naamsverandering naar Diazo.)

Lennert Regebro: "XDV is a potential game changer!" Als je het eenmaal in je vingers hebt, kan je heel snel Plone sites skinnen. Met Banjo kan je via drag-and-drop een XDV ruleset maken; nog niet ideaal, maar een goed begin.

Vraag uit de zaal: waarom is dit nou een voordeel? Antwoord: je hoeft veel minder aan de Plone kant aan te passen. Als je na een jaar weer een nieuwe vormgeving wilt, hoef je alleen maar de rules aan te passen, zonder dat je weer een hoop in Plone hoeft te veranderen. Een upgrade naar een nieuwere Plone versie zal ook gemakkelijker gaan.

Er is wat onenigheid in de zaal of het echt sneller is dan zelf een nieuw theme maken; het scheelt of je al een design in html en css aangeleverd hebt gekregen door een designbureau of dat je een Photoshop bestand hebt waar je nog helemaal me aan de slag moet.

Zie de slides.

Keywords
plone