At 19:23 17.09.2001 +0200, you wrote:
Take a look at your zope online help, you find it in the ZMI, under Zope Help/Api Reference/ObjectManagerItem:
restrictedTraverse(path, default=None): Return the object obtained by traversing the given path from the object on which the method was called, performing security checks along the way.
If an object is not found then the default argument will be returned.
So the first call should set working_folder to 'galleries/'+gallery_id '/' instead of '.' - it's literally the path!
Be aware that restrictedTraverse is a method of an ObjectManagerItem, so that admin.restrictedTraverse('galleries/gallerie1') == admin.galleries.restrictedTraverse('gallerie1') i.e. you call it on another object.
restrictedTraverse also does acquisition wrapping, ie admin.restrictedTraverse('galleries/gallery1/gallery2').aq_parent.title_or_id() == 'gallerie1' while admin.restrictedTraverse('galleries/gallery2').aq_parent.title_or_id() == 'galleries'
You can also traverse down from the root folder, in order to rule out surprises: restrictedTraverse('/admin/galleries/gallery1')
cheers, oliver
Thanks a lot, I got it working now! Just in case someone runs into the same problems sometime I want to post the code I use now. ---------- <dtml-call expr="REQUEST.set ('working_folder', gallery_id)"> <dtml-with expr="galleries.restrictedTraverse([working_folder])"> <dtml-in expr="objectValues('Image')" sort=bobobase_modification_time reverse> <dtml-var title><BR> </dtml-in> </dtml-with> ------------ Maybe this will provide help to someone else in the future Now, one last question (Well, maybe not THE LAST ;-) ): Where the heck can one find stuff like that? I mean where can I learn that? Is that Python already and I should finally open up my Python book? Again, many thanks, Jan Jan@Mountainbikehq.de http://www.MountainbikeHQ.de - Your home for DH, DS and CC Mountainbiking