使用 Collective.dexteritytextindexer 扩展 SearchableText

2024-01-26

我正在尝试扩展我的内容类型的 SearchableText 索引。 我通过在模型文件中将多个字段标记为 indexer:searchable="true" 成功地包含了多个字段。 但是我无法从我的类型的 py 扩展 SearchableText,如下所示:

class IMyBehavior(form.Schema):

    dexteritytextindexer.searchable('description')
    description = schema.Text(title=u'Precis')

alsoProvides(IMyBehavior, IFormFieldProvider)


class MySearchableTextExtender(object):
    adapts(IMyBehavior)
    implements(dexteritytextindexer.IDynamicTextIndexExtender)

    def __init__(self, context):
        self.context = context

    def __call__(self):
        """Extend the searchable text with a custom string"""
        return 'some more searchable words'

我不得不承认,我真的不知道头等舱是如何运作的。我是否必须在此类中设置可搜索字段才能扩展第二个类中的 SearchableText ? 如果我从模型中删除所有索引器:searchable =“true”,则 SearchableText 只是空的。

第一个类是否同时尝试注册模式?如果是这样,如果它只是扩展 SearchableText,它应该是什么样子?


The collective.dexteritytextindexer提供了两个重要的功能:

  1. 正如您已经取得的成就,dexteritytextindexer让你有能力把values进入克隆人的SearchableText指数。通过增加dexteritytextindexer.searchable(FIELDNAME)对于您的表单,该字段的值将出现在SearchableText。在 Archetypes 中,您可以通过添加相同的功能searchable=True到字段定义。

  2. collective.dexteritytextindexer还让您能够extend通过注册手动搜索可搜索文本IDynamicTextIndexExtender适配器。它extends的值来自part 1使用适配器中的值。

我想您的情况的问题是您错过了注册适配器:https://github.com/collective/collective.dexteritytextindexer#extending-indexed-data https://github.com/collective/collective.dexteritytextindexer#extending-indexed-data

例子:

<adapter
    factory=".yourbehavior.MySearchableTextExtender"
    provides="collective.dexteritytextindexer.IDynamicTextIndexExtender"
    name="IMyBehavior"
    />

这是一个工作示例: 这段代码扩展了SearchableText具有其子级的 searchableText 的容器。

IDynamicTextIndexExtender 适配器:https://github.com/4teamwork/ftw.simplelayout/blob/a7d631de3984b8c1747506b9411045fdf83bc908/ftw/simplelayout/indexer.py https://github.com/4teamwork/ftw.simplelayout/blob/a7d631de3984b8c1747506b9411045fdf83bc908/ftw/simplelayout/indexer.py

使用 zcml 注册适配器:https://github.com/4teamwork/ftw.simplelayout/blob/a7d631de3984b8c1747506b9411045fdf83bc908/ftw/simplelayout/behaviors.zcml#L21 https://github.com/4teamwork/ftw.simplelayout/blob/a7d631de3984b8c1747506b9411045fdf83bc908/ftw/simplelayout/behaviors.zcml#L21

最重要的部分 - 测试实施:https://github.com/4teamwork/ftw.simplelayout/blob/a7d631de3984b8c1747506b9411045fdf83bc908/ftw/simplelayout/tests/test_indexer.py#L31 https://github.com/4teamwork/ftw.simplelayout/blob/a7d631de3984b8c1747506b9411045fdf83bc908/ftw/simplelayout/tests/test_indexer.py#L31

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Collective.dexteritytextindexer 扩展 SearchableText 的相关文章

  • 打印/全屏/电子邮件图标

    在 Plone 2 中 对象视图中有打印 全屏和电子邮件图标 如何在 Plone 4 中启用这些功能 它们似乎不存在于 Plone 4 1 的默认安装中 但我一定缺少一些东西 我想知道什么 Thanks IIRC 可以在 Plone 4 的
  • 使 TinyMCE 图像选择对话框指向 Plone 上的默认文件夹

    克隆人 4 1 使 TinyMCE 图像选择器对话框指向站点默认文件夹 image bank 而不是当前文件夹的最简单方法是什么 这个 文件夹显示为相册将为 Plone 轻松提供基本的图像库支持 我希望能够实现这个功能 所有 Plone 开
  • 无法在 Centos 上使用 Diazo (plone.app.theming)

    我使用 plone4 1 和 Diazo 在我的 mac 上制作了一个门户网站 现在 我正在尝试将其部署在我的服务器 CentOs 上 其中还有另一个带有 plone4 0 5 Collectivexdv 的站点 当我使用我的重氮主题运行该
  • 构建可以创建内容作为 Plone 安装的一部分吗?

    我正在尝试为站点实现 Plone 的可重复部署 并使用构建 基本上遵循 Martin Aspeli 的书专业Plone 4开发 我可以使用我的源产品设置系统
  • Plone 中是否有一种简单的方法可以在新用户加入门户时收到电子邮件通知?

    我希望每当新用户加入门户时都会向门户电子邮件地址发送电子邮件通知 我的猜测是我应该编写一个新产品来做到这一点 这样的产品是否已经存在 针对 Plone 4 我检查了内容规则 但据我所知 只有当我让用户对膜 记住之类的东西感到满意时 它才能起
  • 如何将 plone 的内容块插入到重氮主题中

    我在 Plone 4 1 中使用重氮 当前为 plone app theming 1 0b1 r48205 我想完全使用 Plone 的 html 作为搜索小部件 除了我想替换
  • Plon 4.3 默认编辑器未显示

    我有一个 Plone 4 3 站点 它是从 Plone 2 5 站点迁移而来的 它一直工作得很好 但由于某种原因 编辑任何页面或内容项时显示的默认编辑器是直接的 HTML 视图 我已经在 Firefox Chrome 和 Safari 中对
  • Plone:升级 jQuery

    在 Plone 4 1 中使用 jQuery SlickGrid 插件并尝试调整网格列的大小会出错这个 jQuery 1 4 4 错误 http bugs jquery com ticket 7500 该问题已在较新的版本中得到修复 是否可
  • Plone 4.3 升级后 TinyMCE 工具栏丢失

    我将 Plone 站点从 4 2 升级到 4 3 升级步骤基本上是 运行 install sh 以拥有 4 3 环境 将 Data fs 复制到 var filestorage 并将自定义敏捷包复制到 src 在ZMI中运行升级 一切看起来
  • 对于 genericsetup 导入步骤的名称,是否有一个很好的参考列表

    是否有通用设置导入步骤名称的综合参考列表 通用设置导入步骤的名称并不总是与其相应 xml 文件的名称匹配 例如 types xml 有一个名为 typeinfo 的导入步骤 如果没有列表 我会对一种简单的方法来查找导入步骤的名称感到满意 例
  • 如何在 TinyMCE for Plone 中将 替换为

    我想在 TinyMCE 中用强标签替换粗体标签 如何在 Plone 中使用 Products TinyMCE 做到这一点 我读了TinyMCE文档 http www tinymce com wiki php Configuration va
  • Plone/Zope 的外部方法

    我有两个 Plone 实例在服务器上运行 它们的位置是 usr local Plone Inst1 和 usr local Plone Inst2 我正在尝试设置外部方法 但很难确定我的 扩展 文件夹应该放置在哪里 似乎无论我把它放在哪里
  • Plone-如何为注册表中字典类型的记录创建控制面板?

    我正在尝试在我的 Plone 站点上创建一个控制面板插件 用于编辑字典类型的注册表记录 我的目的是将 供应商类型 作为字典存储在注册表中 我的registry xml位于profiles default中
  • Plone - 在页面中何处存储图像和文件附件的最佳实践?

    我们正在使用 Plone 4 1 3 构建一个 Intranet 网站 并想知道是否有 Plone 最佳实践来存储附加到页面的文件和图像 我们的内联网更像是一个协作站点 用户可以在其中发布新闻项目和其他文章 因此 用户将插入图像 使用 Ti
  • Plone 工作流程的圣杯

    我们正在实施 Plone CMS 作为 ISO9001 文档的存储库 ISO 要求一定量的日志记录 任何熟悉该标准的人都可能知道 为了灵活性 我们希望合并 不按特定顺序 新的内容类型 需要合并企业中可能出现的不同文档 版本控制 表明我们的文
  • Plon 和 Asp.Net 集成

    How to 制作一个 Asp Net 应用程序来识别经过身份验证的克隆用户 他 她的 ID 角色和任何其他可用数据 反之亦然 在我的 asp net 应用程序中显示 plone 内容或在 plone 中显示一些特定于应用程序的数据 从 A
  • 阻止用户将BMP、TIFF等图像上传到Plone中的ImageField

    用户这样做是因为他们可以 但是 图像自动调整大小等功能会出现故障 这让我成为一个悲伤的男孩 如何限制全站图像上传为 GIF PNG 和 JPEG 对于原型 为了灵巧 使用原型 您可以覆盖图像内容类或使用以下架构创建您自己的自定义图像内容类
  • 使用 plone.memoize.ram 使 memoize 无效/阻止

    我和 Zope 实用程序提供了一种执行网络进程的方法 由于结果在一段时间内有效 我正在使用plone memoize ram缓存结果 MyClass object cache cache key def do auth self adapt
  • IE7 和 TinyMCE 与 Plone

    在 Windows 服务器上开箱即用的 Plone 4 1 4 4113 中 IE7 上会出现一些客户端问题 我知道 访问主站点 没问题 登录 IE 引发运行时错误 第 505 行 扩展标识符 字符串或数字 添加内容 IE 引发运行时错误
  • 使用 plone.api 创建文件的 Python 脚本在设置文件时出现错误 WrongType

    Dears 我正在创建一个脚本python来在Plone站点中批量上传文件 安装是UnifiedInstaller Plone 4 3 10 该脚本读取了一个txt 并且该txt以分号分隔 在新创建的项目中设置文件时出现错误 下面是脚本 f

随机推荐

Powered by Hwhale