there is a recursion problem with Pagelets and layout templates when you don't register a template for the pagelet.

A layout template could be registered as follows (from z3c.formdemo):


This registers an adapter providing ILayoutTemplate.

The BrowserPagelet's render method retrieves the template for the pagelet's contents (i.e. not the outer wrap) as follows:

           template = zope.component.getMultiAdapter(
               (self, self.request), IPageTemplate)

The problem is, that ILayoutTemplate is derived from IPageTemplate. This is why the pagelet tries to render its contents with the layout template.

I'm not sure what to do about this.

a) Explicitly check that the template is *not* an ILayoutTemplate in BrowserPagelet.render

b) make <z3c:template> use another interface which is also derived from IPageTemplate and use the new interface in BrowserPagelet.render.

c) ... ?

Comments, remarks?

Christian Zagrodnick

gocept gmbh & co. kg  ·  forsterstrasse 29 · 06112 halle/saale
www.gocept.com · fon. +49 345 12298894 · fax. +49 345 12298891

Zope3-dev mailing list
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to