跳转到主要内容

一个显示自定义最近类型的Plone Portlet

项目描述

概述

这是一个Plone Portlet,它通过适配器查找来获取用于查询最近更改的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。因此,可以为内容的每个视图拥有不同的Portlet。这对于在网站根目录上注册的搜索页面非常有用

<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一样。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

inquant.portlet.contextualrecentitems-0.2.5.tar.gz (14.1 kB 查看散列)

上传于 源代码

构建版本

inquant.portlet.contextualrecentitems-0.2.5-py2.4.egg (24.4 kB 查看哈希值)

上传于 源代码