跳转到主要内容

添加索引和元数据,允许搜索collective.lineage子站点的内容

项目描述

简介

lineage.indexcollective.lineage 的一个插件,允许您在特定子站点内搜索内容。

它是如何工作的?

lineage.index 在所有实现 Products.CMFCore.interfaces.IContentish 接口的项目上注册了一个 childsite 索引(这些将基于 Dexterity 的内容类型)。

子站点的 UID 可以用来搜索此子站点中的内容。

在列出主门户上的项目时,您可以使用元数据列 childsite 来指示内容已聚合的子站点。

我该如何使用它?

安装后,新内容将根据其最近子站点的 UID 进行索引。现有内容需要更新目录(请参阅安装)。

您可以使用索引在子站点内搜索内容

brains = portal_catalog(childsite='9df827df17a94ad0aeda278e9570dc88')

每个脑(brain)都有一个元数据列,表明其所在的子站点

>>> brains[0].childsite
'9df827df17a94ad0aeda278e9570dc88'

如果项目来自主门户(即不在子站点内),

  • 在 Plone 5 中,将索引 None

  • 在 Plone 6 中,将索引门户的 UID。

这允许您仅找到来自主门户且不属于任何子站点的内容

>>> brains = portal_catalog(childsite=None)  # Plone 5.x

>>> from plone.api import portal
>>> brains = portal_catalog(childsite=portal.get().UID())  # Plone 6+

还有一个词汇 lineage.childsites 列出了所有可用子站点及其标题。

要显示脑的子站点标题,可以使用实用视图

<ul tal:define="util context/@@childsite">
    <li tal:repeat="item folderContents">
        <span tal:replace="item/Title">Item 1</span> in
        <span tal:replace="python: util.titleForKey(item.childsite)>Subportal One</span>
    </li>
</ul>

安装

使用 buildout 或 pip 安装 lineage.index。请确保包含 ZCML。

在 Plone 中,在“站点设置”下的“扩展”中安装 Lineage Index

如果您已经拥有要索引的子站点和内容,请转到 ZMI,portal_catalog高级。然后单击“更新目录”按钮以填充索引和目录元数据(这可能需要一段时间)。

注意事项

词汇缓存所有子站点标题,直到 Zope 重启。如果您添加了子站点,您需要重启 Zope 才能使其显示在词汇中。

变更日志

1.0.1 (2022-03-11)

  • 修复 README [jensens]

1.0 (2022-03-11)

  • 在 Plone 6 中将门户添加到词汇中。[jensens]

  • 修复递归错误,如果上下文没有获取父级。[zworkb]

  • 最小化现代化:black,isort,pyupgrade,更多元数据,README 编辑。[jensens]

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

0.5 (2015-06-25)

  • 依赖 plone.api 并使用它来获取门户对象。[thet]

  • 添加 chilsiteForContext 方法,它返回给定上下文的子站点 UUID。[thet]

  • 升级到基于 UUID 的索引而不是使用 id。ID 不是唯一的,当注册具有相同 ID 的多个 lineage 子站点时会导致问题。此外,可以使用 uuid 来检索 lineage 子站点对象,而无需遍历内容树。包括升级步骤。[thet]

0.4 (2012-01-10)

  • PEP8 修复 [claytron]

  • 使用 IContentish 而不是 IATContentType 以确保所有 CMF、AT 和 Dexterity 基于的内容都得到正确索引。[claytron]

0.3 (2012-01-08)

  • 将非子站点内容索引为 None,以便通过此索引找到“主站点”内容。[claytron]

  • 与 Plone 4.1 兼容 [jensens]

  • 添加 catalog.xml 并删除 setuphandlers 逻辑。[jensens]

  • collective.lineage 添加到 metadata.xml 依赖项中。[jensens]

  • PEP8 修复 [jensens]

  • 将 reStructuredText 文件的扩展名更改,以便正确预览。[jensens]

  • 将代码移至 GitHub [jensens]

0.2 (2011-04-28)

  • 由于 Lineage 的 ChildSite 已不再实现 IPloneSiteRoot,已将索引引用更改为实现 INavigationRoot [tbesluau]

  • 对于 ATContentType 的其他版本,我们需要尝试导入带有和不带有 's' 的接口 [tbesluau]

0.1b1 (2010-03-16)

  • 初始发布

项目详情


下载文件

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

源代码分发

lineage.index-1.0.1.tar.gz (16.5 kB 查看哈希值)

上传时间 源代码

由...