Why is the context different for these two methods?
A DTML Method with <dtml-in "objectValues('Folder')"> returns the sub-folders of it's container folder. in the same context, A DTML Method with <dtml-in "objectIds('Folder')"> returns the sub-folders of it's container folder's parent folder. why should objectIds look to the grandparent folder? Because these are in a DTML Method, I would expect both to exaluate in the context of the containing folder. Is objectIds somehow calling it's container folders' aq_parent namespace? This would seem to violate the "containment before context" paradigm. Thanks for any enlightenment, Duke (Zope 2.6.1)
From: "Gary Duke Speer" <zope@cortech.org>
A DTML Method with <dtml-in "objectValues('Folder')"> returns the sub-folders of it's container folder.
in the same context, A DTML Method with <dtml-in "objectIds('Folder')"> returns the sub-folders of it's container folder's parent folder. why should objectIds look to the grandparent folder?
Because these are in a DTML Method, I would expect both to exaluate in the context of the containing folder. Is objectIds somehow calling it's container folders' aq_parent namespace? This would seem to violate the "containment before context" paradigm.
The following two dtml loops both print out the same folder list for me (ie. they both print out a list of folders contained within the current folder): <dtml-in "objectValues('Folder')"> <dtml-var id><br> </dtml-in> <dtml-in "objectIds('Folder')"> <dtml-var sequence-item><br> </dtml-in> zope 2.6.4 Jonathan
Gary - is there something special about the current folder ? If it is a custom class which does not implement objectIds, you would see that behaviour.
participants (3)
-
Gary Duke Speer -
Jonathan Hobbs -
Simon Michael