跳转到主要内容

在Plone中创建主题树

项目描述

ftw.topics

此软件包将主题树集成到Plone中。

功能

  • 基于Dexterity的内容类型“主题树”和“主题”,用于创建主题树(主题树)。

  • 主题视图列出了所有引用主题的内容。

使用方法

  • ftw.topics添加到您的buildout配置中

[instance]
eggs +=
    ftw.topics
  • 安装默认的通用导入配置文件。

ITopicSupport for Dexterity

如果您想在基于Dexterity的类型上使用主题字段,请使用ITopicSupportSchema行为

<?xml version="1.0"?>
<object name="example.conference.presenter" meta_type="Dexterity FTI"
   xmlns:i18n="http://xml.zope.org/namespaces/i18n"
   i18n:domain="example.conference">

     <!-- enabled behaviors -->
     <property name="behaviors">
         <element value="ftw.topics.behavior.ITopicSupportSchema" />
     </property>

</object>

plone.restapi支持

如果需要,安装[restapi]额外组件。

[instance]
eggs +=
    ftw.topics [restapi]

列出主题上的所有反向引用。

GET /plone/topictree/topic?expand=backreferences HTTP/1.1
Accept: application/json

响应 - 检查“反向引用”下的展开部分

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@components": {
        "actions": {
            "@id": "https://127.0.0.1:55001/plone/topictree/topic/@actions"
        },
        "backreferences": {
            "@id": "https://127.0.0.1:55001/plone/topictree/topic/@backreferences",
            "items": [
                {
                    "@id": "https://127.0.0.1:55001/plone/front-page",
                    "title": "Welcome to Plone"
                    ...
                }
            ],
            ...
        }
    }
}

自定义引用表示

ITopicReferencePresentation适配器负责在主题视图中渲染引用。适配器消费它们所知道的所有项目,并在视图的部分中渲染它们。

ftw.topics包括用于渲染内容页面的ITopicReferencePresentation和一个默认适配器,用于所有其他未由其他适配器消费的内容。

添加自定义表示适配器很简单

from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
from ftw.topics.browser.representation import DefaultRepresentation
from my.package.interfaces import IMyType
from my.package import _

class MyRepresentation(DefaultRepresentation):
    template = ViewPageTemplateFile('my_representation.pt')

    def consume(self, objects):
        for obj in objects:
            if IMyType.providedBy(obj):
                self.objects.append(obj)
            else:
                yield obj

    def title(self):
        return _(u'label_my_objects', default=u'My objects')

    def position(self):
        return 50
consume()

确保您在适配器中处理所有未处理的对象。它们将被传递到管道中,直到另一个适配器处理它们。最后一个适配器通常是默认表示适配器,它消费所有剩余的对象。

title()

返回您部分的标题。

position()

适配器按位置排序。默认适配器的位置为1000,ftw.contentpage适配器的位置为100。

使用ZCML注册您的适配器

<configure xmlns="http://namespaces.zope.org/zope">

    <adapter
        factory=".representation.MyRepresentation"
        name="my_representation"
        />

</configure>

确保您为适配器提供了一个名称,以免与其他适配器冲突。

变更日志

2.2.2 (2022-06-20)

  • 修复了 topics 视图,如果字段尚未初始化。[mathias.leimgruber]

2.2.1 (2022-06-20)

  • 添加了视图,列出内容中所有引用的主题。[mathias.leimgruber]

2.2.0 (2022-05-06)

  • 添加了 restapi 支持。[mathias.leimgruber]

2.1.1 (2020-09-07)

  • 如果存在非 DX 对象,使收集器更健壮。[mathias.leimgruber]

2.1.0 (2020-01-09)

  • 添加了卸载配置文件。[tinagerber]

  • 添加了 ftw.topics portal_types 的翻译到 plone 域。[tinagerber]

2.0.0 (2019-10-18)

1.3.1 (2019-06-13)

  • 从收集的回引用中排除过期的和未来的内容。[elioschmutz]

1.3.0 (2018-07-04)

  • 使用写权限保护 DX 主题字段。[mbaechtold]

1.2.1 (2016-09-29)

  • 使主题字段可选。[mbaechtold]

1.2.0 (2016-09-26)

  • 添加了 ftw.referencewidget 并用它代替 plone.formwidget.contenttree。[tschanzt]

  • 添加了 ftw.theming scss 并使用 font awsome 图标。[mathias.leimgruber]

  • 修复了 dexterity 行为和关系收集器。[jone]

  • 限制某些依赖项的版本,以避免引入 Plone 5。[mbaechtold]

  • 在 ftw.topic.Topics 上启用导航行为。[mathias.leimgruber]

1.1.3 (2015-06-15)

  • 修复了按字母顺序排序子主题。[mathias.leimgruber]

1.1.2 (2014-11-27)

  • 添加了在主题中隐藏回引用的选项。[lknoefpel]

1.1.1 (2014-02-28)

  • 尚未更改。

1.1.0 (2014-02-03)

  • 在主题树上启用 IExcludeFromNavigation 行为。[mathias.leimgruber]

1.0 (2013-05-24)

  • 初始实现。

项目详情


下载文件

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

源分布

ftw.topics-2.2.2.tar.gz (41.5 kB 查看哈希)

上传时间

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面