[Zope-CMF] Re: PortalObject, PortalFolder,
SkinnedFolder and __call__
yuppie
y.2005- at wcm-solutions.de
Tue Jun 21 10:21:54 EDT 2005
Hi Christian!
Christian Heimes wrote:
> While I was working on the CMF 1.5 integration into AT and
> ATContentTypes for Plone 2.1 I had some issues with the view on folders.
> After some digging I found these interesting results:
>
> CMFCore.PortalObject defines __call__ to use method aliases and
> _getViewFor() as fallback, view = __call__ and index_html = None.
>
> CMFDefault.SkinnedFolder defines __call__ to use _getViewFor(), view =
> __call__ and index_html = None
>
> CMFCore.PortalFolder doesn't hook into index_html/__call__ publishing at
> all.
>
>
> What's the reason PortalFolder doesn't define __call__ at all? Shouldn't
> it use __call__ to get the view from method aliases or _getViewFor() as
> fallback?
1.) PortalFolder did never have a __call__ method and apparently nobody
missed it so far.
2.) I know only one situation where we need to call an object directly:
If a content object is used as a view method. That is e.g. the case for
'index_html' documents, but doesn't make much sense with folders.
> Why does SkinnedFolder still uses the old and deprecated way as default
> way to get the view and why does it ignore method aliases completly? IMO
> SkinnedFolder.__call__ is buggy and wasn't fixed when method aliases
> were introduced.
Like other folders a skinned folder should never be used as method, so
__call__ should never be invoked. That code exists just for backwards
compatibility and is completely removed on HEAD.
Cheers,
Yuppie
More information about the Zope-CMF
mailing list