I recently read Stephan Richter's blog post:
and "intendent scope of viewlets" thread:
I like the idea behind viewtemplate very much (separation of template and view
code), but I've some problems with putting all of this together. Let me
1. Views and Viewlets belong to the layer
2. Templates belong to the skin
3. ViewletManagers belong to.. ?
4. Lovely's packaging practices says that:
- views should be placed and registered in
- templates should be placed and registered in project.browser.skin
- viewletmanagers... ?
Where you place and register your code and templates is up to you.
Right now we do this :
Layer : view, viewlet and viewletManager code
simple template which are not skin dependent
Skin : templates registered for the views and viewlets
I also use the macro feature from the <template> tag heavily.
If you don't plan to reuse your code in different skins registering
everything on the layer or skin will work too.
It is also possible to first register everything on the layer. Then you
will have a running application. If you need to provide another skin you
just register the parts to replace on the new skin.
ViewletManagers may have a class and a template, VMs are called from
templates, viewlets are registered for VMs. Shouldn't it be resolved by
<template> tag which registers a template with ViewletManager as it is done
for Viewlets and Views?
Of course you can use all the features for ViewletManagers especially
the RegisteredPageTemplate is perfect for ViewletManagers too.
A ViewletManager is just a special case of a ContentProvider (have a
look at the interfaces).
One more thing is a layer declaration such as (from Stephan's post):
while template is registered for skin:
I'm pretty new to the skinnig concept. What is the purpose of IProjectLayer?
Is it that views and viewlets are registered to IProjectLayer which
is "project marker" interface, while templates are registered for skins. As a
result we have stable project's code base and skins which are just templates.
Any discussion on the above topics will be appreciated :)
Zope3-users mailing list