Viewlets (2) -- 利用grok.context 限制 viewlet 出現時機
利用grok來製作Viewlet,強大功能,這節我們來配合grok.context,指定viewlet出現時機,同時指定template
#-*- coding:utf-8 -*-
from five import grok
from plone.app.layout.viewlets.interfaces import IPortalHeader #把需要的viewlet manager import進來
from my.addon.interfaces import IEventInfo, IArticle
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
class TestViewlet(grok.Viewlet):
grok.viewletmanager(IPortalHeader)
grok.context(IEventInfo)
template = ViewPageTemplateFile('template/viewlet1.pt')
def render(self):
return self.template()
class TestViewlet2(grok.Viewlet):
grok.viewletmanager(IPortalHeader)
grok.context(IArticle)
template = ViewPageTemplateFile('template/viewlet1.pt')
def render(self):
return self.template()
上例,我們設計了2個viewlet,一個指定出現在IEventInfo, 一定指定出現在IArticle
同時都指定了同一個模版tmeplate, viewlet1.pt