为内容类型设置默认选项卡“编辑”

时间:2013-12-01 10:20:53

标签: plone

当用户登录时,有没有办法为特定(已开发)内容类型“编辑”制作默认选定标签?

1 个答案:

答案 0 :(得分:0)

您可以使用类似于链接内容类型中使用的方法。

假设您使用的是Grok,请创建如下浏览器视图:

from five import grok
from plone import api
from my.contenttype.interfaces import IMyContentType

grok.templatedir('templates')

class MyContentTypeRedirectView(grok.View):
    grok.context(IMyContentType)
    grok.name('my_redirect_view')
    grok.require('zope2.View')

    def render(self):
        """Redirect to the target URL if the user is logged in."""
        context = self.context
        mtool = api.portal.get_tool('portal_membership')
        is_anonymous = mtool.isAnonymousUser()

        if is_anonymous:
            return context.restrictedTraverse('@@view')()
        else:
            return context.restrictedTraverse('@@edit')()

在您的内容类型FTI XML文件中设置以下内容:

<property name="default_view">my_redirect_view</property>
<property name="default_view_fallback">False</property>
<property name="view_methods">
  <element value="my_redirect_view" />
</property>

这样,当用户匿名时,它将被重定向到标准视图,当它登录时,它将被重定向到编辑视图。

您可以在sc.banner自定义内容类型中看到与此类似的代码。