我要在特定文件夹或集合中列出对象也已过期到匿名用户。 你知道,portal_catalog只返回未过期的大脑。这是一种有用的行为,但在这种情况下不是......
要强制目录返回过期内容,我们必须传递一个特定参数:show_inactive。
浏览folder_listing(& family)代码我注意到可以通过请求将选项参数(contentFilter)传递给query / getFolderContents。这是一个很好的功能,可以自定义查询,避免创建非常相似的列表模板。
我认为有必要创建一个标记界面来标记上下文(文件夹或集合),我想列出过期内容。对于前者IListExpired。
我想办法:
1)使订阅者拦截before_traverse,并在处理程序中进行测试以验证上下文是否实现了IListExpired。在积极的情况下,我做了一个
request.set('folderListing', {'show_inactive':True})
2)为IListExpired创建一个Viewlet ,在调用集中
request.set('folderListing', {'show_inactive':True})
最好的方法是什么?我想第一个可能是不必要的开销。
维托
答案 0 :(得分:0)
AFAIK,这是两个独立的事情:folderListing
使用a method available to all CMF-based Folderish content types; show_inactive
是Plone目录的一个选项,所以你不打算按照你的计划让它工作。
我认为您应该覆盖这些视图并使用目录调用重写列表。
您最好使用浏览器图层来执行此操作,或者在您计划时使用标记界面。