从搜索中排除子树。
项目描述
简介
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>)
待办事项
子类/monkeypatch集合,使它们知道忽略带有IExcludeFromSearch标记接口的东西
变更日志
0.1 - 未发布
Doctest [MatthewWilkes]
为archetypes.schemaextended添加了一个适配器,以向任何AT内容类型的设置模式添加布尔字段,用于添加/删除标记接口。[MatthewWilkes]
在皮肤层中自定义了queryCatalog脚本,以使用AdvancedQuery删除所有提供IExludeFromSearch的结果。[MatthewWilkes]
添加了一个名为IExcludeFromSearch的标记接口。[MatthewWilkes]
项目详情
关闭
openc.excludesearch-0.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 866e0216266d335f1ede7b0137d6ec38d7e8434a96ad46870de4d880569c7f54 |
|
MD5 | 6c8cfe5d704cc329c3241eecad6e9e4d |
|
BLAKE2b-256 | 4bc055ef4fc44e8ef1f1510fc125b28e0c77547851e0bc1e274e698179ef5fe2 |