On Monday 17 December 2007, Jim Fulton wrote:
> > As a usecase take a forum application which should be installed more
> > than once in an instance but needs different layouts and also
> > different subset of functionality.
> I don't have this use case. I wonder how many people do.
I certainly do have this use case all the time. :-) We often have to write a
publically facing and an admin UI. The admin UI should not be available
publically. With skins this can be solved very elegantly.
In a bigger project, we have a true hosted services environment, where
customers want very customized UIs, both in look and feel. In those cases
skinning is very important to us, since we can choose which layer we have to
use as bases for the custom skin.
> We tend to think up complex use cases and then make the zope framework
> more complicated to deal with them. Sometimes these are legitimate
> use cases, but they are rarely common cases and their solutions should
> generally not be inflicted on the masses.
I think that using default browser layer is the way for people not to worry
about skins. However, I have found that this is a really bad long-term
The biggest problem is that I do not have any control over the default browser
layer. I install a package to use its API, but often get a lot of views for
the default browser layer as well. Without careful review, there is now way
for me to tell whether this opens a security hole. It is thus much safer, to
start a new skin from scratch, and carefully add registrations. We developed
some minimal base skins (see z3c.layer), which do the most basic setup and
which we reviewed somewhat for security.
And even if the the security is okay, I would not want to expose all the
views. I want control, but often, registering everything from scratch is very
tedious. Layers -- and thus skins -- act as collection s of view
registrations. I think that z3c.form* demonstrates this very nicely. If I
only use the IFormLayer, I only get the widgets, and only by inheriting from
IDivFormLayer or ITableFormLayer, I also get form layout components.
As Jim pointed out in another E-mail, base component registries (such as
z3c.baseregistry) can solve this problem, but only partially. Base registries
can only be applied on the site-level. So sure, I can customize the look and
feel (and much more) for every site. But for skinning I often want multiple
UIs for the *same* site. This problem cannot be solved with base registries
today without writing additional software. And this use case is extremely
important to us!
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -