添加索引和元数据,允许搜索collective.lineage子站点的内容
项目描述
简介
lineage.index 是 collective.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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e40e9ac7294114203bf26c821f3cf0a892b68bfb1b09d08ab75b9540bccba58b |
|
MD5 | debf4eb1bea29a037eda232691771d46 |
|
BLAKE2b-256 | 3d5c5bf351681069ff20d6221d23d4828b5d4c9df58364ee5c88e74d8032e43f |