防止某些类型出现在plone.app.theming的文件夹列表中
我有一个网站,它有一个通过plone.app.theming/Diazo主题显示的公共url,而url仅限于通过sunburst显示的内容编辑器防止某些类型出现在plone.app.theming的文件夹列表中,plone,theming,diazo,Plone,Theming,Diazo,我有一个网站,它有一个通过plone.app.theming/Diazo主题显示的公共url,而url仅限于通过sunburst显示的内容编辑器 我希望某些门户类型只出现在cms编辑器的列表中,而不出现在公共网站上。我注意到文件夹列表模板使用request/contentFilter(如果已定义)。有什么方法可以只为主题视图向请求添加内容过滤器吗?我最终使用Plone站点上的预遍历钩子解决了这个问题。这在我的案例中是有效的,因为我可以根据请求的某些属性可靠地确定请求是针对主题视图还是编辑视图 d
我希望某些门户类型只出现在cms编辑器的列表中,而不出现在公共网站上。我注意到文件夹列表模板使用
request/contentFilter
(如果已定义)。有什么方法可以只为主题视图向请求添加内容过滤器吗?我最终使用Plone站点上的预遍历钩子解决了这个问题。这在我的案例中是有效的,因为我可以根据请求的某些属性可靠地确定请求是针对主题视图还是编辑视图
def SetupThemeView(站点,在遍历之前):
“”“如果我们是为公众提供主题版服务,那么请补充请求
"""
请求=在请求之前
如果提供主题视图(请求):
set('contentFilter',{'portal\u type':可列出的\u类型})
其中,服务主题视图
确定我们是服务主题视图还是编辑器视图,列表类型
是我们希望在主题视图的列表中显示的类型的类型名称的元组
然后在configure.zcml中将其注册为subcriber
从理论上讲,这是可能的,可以在Web和移动附加组件中使用低级文件夹列表功能的猴子补丁来实现。但我不推荐。更明智的方法(意思是:不要在你脸上炸开)是只改变文件夹列表模板,用一些CSS类来装饰这些项目,你在主题中使用display:none。为什么不使用工作流和权限来保持这些项目的私密性呢?这样,访问者也就猜不到URL了。这些项目是图像和文件。它们不是私人的,我们只是要求它们不要出现在文件夹列表中。我已经将它们设置为不可搜索,直到Plone 4.1.5,这意味着它们也不会出现在文件夹列表中。我可以使用重氮规则排除它们,而不是使用css排除它们。使用内置的contentFilter