[Zope3-Users] Customisation of addform
Roger Ineichen
dev at projekt01.ch
Tue Nov 30 08:16:38 EST 2004
Florian Lindner wrote:
> Sent: Tuesday, November 30, 2004 1:32 PM
> To: dev at projekt01.ch
> Cc: zope3-users at zope.org
> Subject: Re: [Zope3-Users] Customisation of addform
>
> Roger Ineichen schrieb:
> > Hi Florian
> >
> >
> >>-----Original Message-----
> >>From: Florian Lindner [mailto:mailinglists at xgm.de]
> >>Sent: Tuesday, November 30, 2004 8:03 AM
> >>To: dev at projekt01.ch; zope3-users at zope.org
> >>Subject: Re: [Zope3-Users] Customisation of addform
> >>
> >>Roger Ineichen schrieb:
> >>
> >>>Hi Florian
> >>>
> >>>
> >>>
> >>>>-----Original Message-----
> >>>>From: Florian Lindner [mailto:mailinglists at xgm.de]
> >>>>Sent: Monday, November 29, 2004 10:05 AM
> >>>>To: dev at projekt01.ch
> >>>>Cc: zope3-users at zope.org
> >>>>Subject: Re: [Zope3-Users] Customisation of addform
> >>>>
> >>>>Roger Ineichen schrieb:
> >>>>
> >>>>
> >>>>
> >>>>>>Is there a piece of code to see how the addform is being
> >>>>>>generated? So I can see which macros and skin it uses.
> >>>>
> >>>>No, I think you missunderstood me.
> >>>>The addform directive is creating the addform by using
> >>
> >>several macros
> >>
> >>>>and fill the slots in the macros. How do I know which macros
> >>>>and slots
> >>>>it is attempting to use?
> >>>>
> >>>>
> >>>>
> >>>>>See zope.app.rotterdam.standardmacros.py
> >>>>
> >>>>macro_pages = ('skin_macros', 'view_macros', 'dialog_macros',
> >>>>navigation_macros')
> >>>>
> >>>>How does Zope knows which of these macro_pages to pick?
> >>>
> >>>
> >>>Lookup in every macro page. Then a macro is registred as
> >>>a view an theres no way to have to macros with the same name.
> >>>So the Macros class can try till it's finds the macro in the
> >>>mapping like:
> >>>
> >>>class Macros(object):
> >>> implements(IItemMapping)
> >>>
> >>> macro_pages = ()
> >>> aliases = {
> >>> 'view': 'page',
> >>> 'dialog': 'page',
> >>> 'addingdialog': 'page'
> >>> }
> >>>
> >>> def __getitem__(self, key):
> >>> key = self.aliases.get(key, key)
> >>> context = self.context
> >>> request = self.request
> >>> for name in self.macro_pages:
> >>> page = getView(context, name, request)
> >>> try:
> >>> v = page[key]
> >>> except KeyError:
> >>> pass
> >>> else:
> >>> return v
> >>> raise KeyError, key
> >>>
> >>>See in zope.app.basicskin.standardmacros.py
> >>
> >>Ok, that's clear now.
> >>
> >>Whats still really puzzling me is this question:
> >>
> >>The addform directive is creating the addform by using
> several macros
> >>and fill the slots in the macros. How do I know which macros
> >>and slots it is attempting to use?
> >>For example: I want to create a customize a containerView.
> >>How do I know
> >>which macros it uses and which slots it fills?
> >
> >
> > That's nearly impossible. Zope3 uses the contents.pt in
> containerViews
> > for the contents.html view from the
> zope.app.container.browser folder.
> >
> > Belive me, theres no way to register another template for
> this directive.
> > That's really hardcoded. Nobody fixed it till now. My ideea to let
> > us override metaconfigure registrations, wasn't accepted.
> This makes it
> > impossible to change templates which are declared as
> ViewPageTemplates
> > in classes if such a class is used as a metadirective and
> registers Zope3
> > stuff by the start process.
> >
> > What you can do is, copy another template.pt to the
> > zope.app.container.browers.
> >
> > Like a patch. ;-(
>
> Mmmhh.
> No plans to change that in the future?
Sorry my mail before wasn't correct, it's possible
to register a browser:page with the contents.py class
as the class attribute and your own contents.pt as the template
attribute for your own IContainer implementations.
> I think it would be better just to register a browser:page
> view with a
> supporting view class which lists the folder contents (tal:repeat).
It's possible,
see the mail from stefan richter and my comment on that.
Use zope.app.container.browser.contents.py
> > The addform template comes from zope/app/form/browser/add.pt.
>
> Thanks,
> Florian
>
More information about the Zope3-users
mailing list