跳转到主要内容

从搜索中排除子树。

项目描述

简介

openc.excludesearch旨在使管理员能够轻松地将内容标记为隐藏以供搜索。

注意:需要dm的AdvancedQuery http://www.dieter.handshake.de/pyprojects/zope/#AdvancedQuery

首先,安装我自己

>>> self.addProduct("openc.excludesearch")

我们设置一个将在“foo”搜索中显示的对象

>>> self.folder.invokeFactory('Document', 'foo', 'Foo Page')
'foo'
>>> self.folder['foo']
<ATDocument at .../foo>
>>> self.folder['foo'].setText("I am a foo object from foosville.")

为了方便,我们将其命名为foo

>>> foo = self.folder['foo']

我们可以很好地看到它的文本

>>> foo.getText()
'<p>I am a foo object from foosville.</p>'
>>> foo.reindexObject()

如果我们搜索它,我们会找到它

>>> app.plone.restrictedTraverse("queryCatalog")({"SearchableText":"foo"})
[<Products.ZCatalog.Catalog.mybrains object at ...>]

一旦我们激活隐藏功能,我们就找不到它了

>>> foo.getField('hidesearch').get(foo)
False
>>> foo.getField('hidesearch').set(foo, value=True)
>>> foo.reindexObject()
>>> foo.getField('hidesearch').get(foo)
True
>>> app.plone.restrictedTraverse("queryCatalog")({"SearchableText":"foo"})
[]

这是因为它有一个新的标记接口

>>> from openc.excludesearch.interfaces import IExcludeFromSearch
>>> IExcludeFromSearch(foo)
<ATDocument at .../foo>

如果我们移除这个标记,我们又能找到它

>>> foo.getField('hidesearch').get(foo)
True
>>> foo.getField('hidesearch').set(foo, value=False)
>>> foo.reindexObject()
>>> foo.getField('hidesearch').get(foo)
False
>>> app.plone.restrictedTraverse("queryCatalog")({"SearchableText":"foo"})
[<Products.ZCatalog.Catalog.mybrains object at ...>]

因为我们不再提供该接口

>>> IExcludeFromSearch(foo)
Traceback (most recent call last):
...
TypeError: ('Could not adapt', <ATDocument at .../foo>, <InterfaceClass openc.excludesearch.interfaces.IExcludeFromSearch>)

待办事项

  1. 子类/monkeypatch集合,使它们知道忽略带有IExcludeFromSearch标记接口的东西

变更日志

0.1 - 未发布

  • Doctest [MatthewWilkes]

  • 为archetypes.schemaextended添加了一个适配器,以向任何AT内容类型的设置模式添加布尔字段,用于添加/删除标记接口。[MatthewWilkes]

  • 在皮肤层中自定义了queryCatalog脚本,以使用AdvancedQuery删除所有提供IExludeFromSearch的结果。[MatthewWilkes]

  • 添加了一个名为IExcludeFromSearch的标记接口。[MatthewWilkes]

项目详情


下载文件

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

源分布

openc.excludesearch-0.1.1.tar.gz (11.8 kB 查看哈希值)

上传时间 源代码

支持者