Hi Roger,

I finally got it sorted. The class providing the error handling needed
to implement our view marker interface, so the solution was:

class VortexNotFoundPagelet (NotFoundPagelet):
    
    zope.interface.implements (IVortexBrowserView)

and:

        <z3c:pagelet
            name="index.html"
            for="zope.publisher.interfaces.INotFound"
            class=".VortexNotFoundPagelet"
            layer="vortex.layer.IVortexBrowserLayer"
            permission="zope.Public"
            />

        <z3c:template
            template="notfound.pt"
            for=".VortexNotFoundPagelet"
            layer="vortex.layer.IVortexBrowserLayer"
            />

I'm not sure if this will apply to anyone else, but I post it simply to
close the loop. And I should add that pagelets are very cool :-)

Cheers, Andrew.

On Wed, 2009-01-21 at 11:50 +1300, MyWebDNA Support wrote:
> Hi Roger,
> 
> On Tue, 2009-01-20 at 23:03 +0100, Roger Ineichen wrote:
> > >   <z3c:pagelet
> > >       name="index.html"
> > >       for="zope.publisher.interfaces.INotFound"
> > >       class="z3c.layer.pagelet.browser.NotFoundPagelet"
> > >       layer="vortex.layer.IVortexBrowserLayer"
> > >       permission="zope.Public"
> > >       />
> > > 
> > >   <z3c:template
> > >       template="notfound.pt"
> > >       for="zope.publisher.interfaces.INotFound"
> > >       layer="vortex.layer.IVortexBrowserLayer"
> > >       />
> > 
> > Try to register the template for the class:
> > z3c.layer.pagelet.browser.NotFoundPagelet
> > 
> > instead of for the:
> > zope.publisher.interfaces.INotFound
> > 
> > The INotFound interface doesn't need a template, but the
> > pagelet class needs one.
> 
> Thanks for this, Roger. I checked the default error pages in 
> z3c.layer.pagelet.browser and that's how they are set up too. However, I
> tried this change and got exactly the same result. Even if I comment out
> all the error page stuff in my vortex.layer component it's like
> something else is affecting the default z3c.layer.pagelet.browser error
> handling. From what I can see from the tests, the default pagelet-based
> error pages should just work out of the box, correct ?
> 
> > > But z3c.pagelet.zcml.NotFoundPagelet doesn't exist as far as 
> > > I can see.
> > > Any ideas what's happening here ? Much appreciated.
> > 
> > The z3c:pagelet register via zcml a new class based on your
> > class attribute NotFoundPagelet given from
> > z3c.layer.pagelet.browser.
> > 
> > This is the same as the <browser:page> directive does.
> > 
> > Don't worry about this. That's correct.
> 
> Cool, thanks for explaining that.
> 
> Cheers, Andrew.

_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users

Reply via email to