On Aug 13, 2008, at 2:31 PM, Malthe Borch wrote:

2008/8/13 David Glick <[EMAIL PROTECTED]>:

I'm writing seeking your opinion on some recent work I've done on making Collage views easier to customize. Malthe and Paul, you know that I tried
to do this once earlier, but didn't come up with a workable solution.
Gilles, this may be new to you, but it looks like you've been doing some good work on maintaining Collage lately, so I wanted to make sure you're
part of this conversation.


Yes, we definitely want to keep everybody in the loop; thanks for this, David.

In the interests of this I'm adding plone-developers to the cc here.

My changes are in the davisagli-layer-overrides branch in svn
(https://svn.plone.org/svn/collective/Collage/branches/davisagli-layer-overrides ). Basically what I did is make sure that Collage *adds* ICollageBrowserLayer to the request, instead of replacing any other marker interfaces. This makes it possible to register Collage views on other browser layers. But
how do we tell which views are meant for Collage then?  I added an
ICollageView interface which the custom view classes can implement. I've also written the view lookup so as to maintain backwards compatibility -- e.g. views registered to the ICollageBrowserLayer but not implementing
ICollageView will still be found.

I think I've written earlier, that we should try and look at what
Plone is contemplating on this matter; I seem to recall that there's a
general notion of an ``ITile`` interface which describes a view or
viewlet that renders a content item in a "tile".

Perhaps it would make sense to register collage tiles like so:

 <browser:viewlet
      name="default"
      for="ATDocument"
      template="document_tile.pt"
      permission="zope2.View"
      manager="ICollage" />

Of course, Collage would be a strange viewlet manager, but the concept
is a bit familiar; we would manually look up these viewlets.

This looks like a fairly decent suggestion. It takes care of the customization problem, and I like that it re-uses a concept (viewlets) that is already quite familiar to plone 3 themers.

The downside over my branch is that my branch adds some measure of customizability without breaking any backwards compatibility. I should probably have clarified that the goal of my branch was not to come up with the final, long-term solution for this problem, but to make it possible for us to use Collage with themed sites for clients in the short term. (We tend to run ~15 sites per zope instance, so registering things to a particular layer is essential.)

The only downside is that collage views registered on a layer other than ICollageBrowserLayer may be traversed to directly, not just within the Collage (because these layers are probably applied globally by plone.theme or plone.browserlayer). I don't think this is a huge problem though as long as you take care to pick a view name which doesn't conflict with something else. Paul, this was an issue for you with my last attempt, but I think the backwards compatibility discussed above will allow you to keep doing what
you're doing.

I think this is problematic. These views should require a special
request, not a browser layer request. Of course, if they're viewlets,
as sketched out above, then this problem goes away entirely.


Thoughts?  I'd be happy to merge this to trunk.

I think we should issue Collage 1.2 (I've tried a couple of times, but
was let down by plone.org) and then move to these more drastic changes
(e.g. 2.0).

I think my vote for 1) releasing Collage 1.2 as it stands, and 2) switching to viewlets on trunk, and pushing out an alpha or beta release of this fairly quickly.

Separate topic: Are there plans to turn Collage into an egg? This should be
pretty simple, and I'm willing to take care of it if there are no
objections. I would do it in the Products namespace as seems to be the
custom, so that it's still possible to release an old-style tarball.

+10.

I'll do this as soon as you tag the 1.2 release.



\malthe

peace,

David Glick
Project Associate
ONE/Northwest

New tools and strategies for engaging people in protecting the environment

http://www.onenw.org
[EMAIL PROTECTED]
(206) 286-1235 x32

Subscribe to ONEList, our email newsletter!
Practical advice for effective online engagement
http://www.onenw.org/full_signup




_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers

Reply via email to