[Zope-CMF] Accessing PageMacros

Charlie Clark charlie at begeistert.org
Thu Mar 11 15:27:20 EST 2010


Am 11.03.2010, 17:15 Uhr, schrieb Charlie Clark <charlie at begeistert.org>:

> I understand that and I've even had some success registering macros "the
> Zope 3 way" - although I'm not sure that I see any advantage this way to
> what you propose. However, zope.formlib.form.PageForm comes with it's own
> template which has macros and slots which I like to be able to use and  
> the
> default __call__ will use this template or a replacement one defined in a
> View class template attribute. And it's creating a template that uses
> zope.formlib.form.default_page_template where I'm stuck.

hm, seems that Maurits has already solved this problem:

http://maurits.vanrees.org/weblog/archive/2007/11/search-forms-with-zope-formlib-and-batching

Solution: assign the standard template to another class variable which can  
then be accessed from the new template in the view. I think this is  
probably one of the examples of Zope 3's tendency to indirection getting  
out of hand: NamedTemplates exist, in theory, to separate BrowserViews  
 from their templates. :-/

Personally I think this is overkill especially as the original adapter has  
to be registered again although I have no idea why this has to happen.

The pattern

class MyView(BrowserView)

	template = ViewPageTemplateFile(...)

in the rare cases where templates are defined in the view class, a  
perfectly reasonable approach. But thanks very much to Maurits for showing  
the way. It may be worth noting that the example uses NamedTemplate with  
impunity in a Zope 2 context. Maybe five.formlib.formbase.FiveFormlibMixin  
can do without the hardcoded zope.formlib.__file__ template definitions  
and just worry about character encoding?

Charlie
-- 
Charlie Clark
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-938-5360
GSM: +49-178-782-6226


More information about the Zope-CMF mailing list