首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止某些类型出现在plone.app.theming的文件夹列表中

阻止某些类型出现在plone.app.theming的文件夹列表中
EN

Stack Overflow用户
提问于 2012-05-03 15:49:40
回答 1查看 164关注 0票数 3

我有一个网站,其中有一个公共网址显示通过plone.app.theming /重氮主题和网址限制为内容编辑器通过sunburst显示。

我希望某些门户类型只出现在cms编辑的列表中,而不是出现在公共网站上。我注意到folder_listing模板使用request/contentFilter (如果已定义)。有什么方法可以将内容过滤器添加到仅用于主题视图的请求中吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-22 16:00:11

我最终在Plone网站上使用了一个遍历前的钩子来解决这个问题。这在我的例子中是有效的,因为我可以根据请求的一些属性可靠地判断请求是针对主题视图还是针对编辑视图。

代码语言:javascript
复制
def SetupThemeView(site, before_traverse):
    """ If we're serving the public, themed, version then supplement the request
    """
    request = before_traverse.request
    if serving_theme_view(request):
        request.set('contentFilter', {'portal_type' : listable_types})

其中serving_theme_view决定我们提供的是主题视图还是编辑器视图,而listable_types是我们希望出现在主题视图的清单中的类型的类型名称的元组。

然后,我将其注册为我的configure.zcml中的订阅者

代码语言:javascript
复制
<subscriber
    for="Products.CMFCore.interfaces.ISiteRoot
         zope.traversing.interfaces.IBeforeTraverseEvent"
    handler=".events.SetupThemeView"
    />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10427220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档