So today I was talking to Martin Aspeli and he was giving me a little overview of what the new frameworks to use will be.
So first of all there are viewlets. This is a Zope3 concept and he and Alec try to bring this to Zope2 via Five. This means (as I heard) some changes to Five itself on which Alec is working right now (as there’s a deadline this weekend).
So what are Viewlets? Viewlets are basically snippets of HTML code. Think of the byline in the Plone template as such a viewlet. It is actually a class which implements update()
and render()
and that’s it basically. Moreover there are Viewlet Managers. You can register viewlets with these managers and the managers are actually bound to the location via some TAL statement. When called they will render all the viewlets registered with them. This gives you more flexibility in defining what information should go where on a page as you don’t have to change your main_template for that anymore but instead define or redefine the viewlets used for it. This can be either static via ZCML or dynamically on a local basis or content type.
One application which waits for viewlets to be available is the Ratings product by Alec which will be injected into the page via a viewlet.
Another thing Martin was working on is Menus. So he will enable the site admin to define which menus (the ones in the green bar, like Display, Add item etc.) are available and in which context. So finally you can also exchange these via the same mechanism as viewlets just by configuring it instead of changign templates or injecting JS via DOM.
Then here was Paul’s proposal. Paul is not here but it got presented by limi. The basic idea is to be able to use a non-Plone design and sort of put it above Plone. So it works the following way: You take the template and define IDs for elements like divs which basically say something like „Here’s the navtree“. When delivering the page all keeps the same (which means Plone does create it’s normal template) and just in the Apache or via WSGI the actual Plone page will be transformed into the new design by exchanging the stuff in the marked templates.
So no more handling with portlets and main_template and the like. A very natural way to do things, especially for designers.
And as it’s independent of Plone it would maybe even be possible to skin external modules like mailing list managers with it.
I hope I described it correctly and I should add a link to his proposal as soon as I found out where it is :-)
So all in all cool stuff to come up and I am very much looking forward to it and so should you! ;-)