--- /dev/null
+##parameters=rootObject, filtered_meta_types=[], userid=''
+
+req = context.REQUEST
+resp = req.RESPONSE
+collapse_all = False
+if req.form.get('collapse_all', '') == rootObject.id or req.get('just_login', False) :
+ collapse_all = True
+
+from Products.CMFCore.permissions import View
+
+def getSubObjects(object) :
+ if getattr(object, 'isPortalContent', False) :
+ return []
+ childs = list(object.listNearestFolderContents(contentFilter={'portal_type':filtered_meta_types}, userid=userid))
+ childs.sort(lambda x, y : cmp(x.title_or_id().lower(), y.title_or_id().lower()))
+ return childs
+
+
+
+from ZTUtils import SimpleTreeMaker
+stateName = rootObject.id + userid + '_tree'
+cookieName = stateName + '-state'
+stm = SimpleTreeMaker(stateName)
+stm.setChildAccess(function=getSubObjects)
+
+tree, rows = stm.cookieTree(rootObject)
+cookieValue = resp.cookies[cookieName]['value']
+resp.setCookie(cookieName, cookieValue, path = '/')
+
+return {'tree' : tree, 'rows' : rows}
\ No newline at end of file