一个plone portlet,它显示自定义的最新类型
inquant.portlet.contextualrecentitems的Python项目详细描述
概述
进行适配器查找以获取 在最近更改的查询中使用的portal类型。 portlet。
基本原理
这是在挠客户的痒,他们想 仅在新闻页上显示最近的“新闻”等。 我们不必硬编码门户类型,而是执行适配器查找。
用法
然后,用户可以注册如下适配器:
<adapter for=".interfaces.INewsArea zope.publisher.interfaces.browser.IBrowserRequest zope.publisher.interfaces.browser.IBrowserView " provides="inquant.portlet.contextualrecentitems.interfaces.ITypeNameProvider" factory=".adapters.FeedItemTypeProvider" /> <five:implements class="Products.feedfeeder.content.folder.FeedfeederFolder" interface=".interfaces.INewsArea" />
并使实际适配器看起来像:
class FeedItemTypeProvider(object): def __init__(self, context, request, view): pass type = "FeedFeederItem"
portlet呈现程序在上下文上执行一个querymultiadapter请求 还有风景。因此,可以为 你的内容。这对于在网站根目录中注册的搜索页面非常有用:
<adapter for="zope.interface.Interface zope.publisher.interfaces.browser.IBrowserRequest Products.BabpnProducts.browser.search.BabpnBOSearchView" provides="inquant.portlet.contextualrecentitems.interfaces.ITypeNameProvider" factory=".adapters.BizOpTypeProvider" /> class BizOpTypeProvider(object): def __init__(self, context, request, view): pass type = "BusinessOpportunity"
这样,最近的更改portlet只显示与搜索页面匹配的项。
当然,如果找不到适配器,则portlet将返回其正常行为,如 标准plone最近更改了portlet。