问题标签 [dexterity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
260 浏览

full-text-search - 将 Dexterity NamedBlobFile 的内容添加到 SearchableText

我创建了一个灵巧的内容类型,其中有一个 NamedBlobFile 作为字段之一(用户将上传一个 .pdf)。我想对该 pdf 进行全文索引——比如 ATFile 类型——但不确定我必须做什么才能实现这一点。

我已经安装了collective.dexteritytextindexer,并通过执行以下操作将其他一些字段添加到可搜索文本中:

我不确定如何处理文件字段。建议?

0 投票
2 回答
214 浏览

plone - 轻量级基于敏捷的内容类型可以有多轻

我正在尝试编写一种类似于 Facebook 帖子的轻量级内容类型。

  • 整个内容架构只是一个文本字段。没有标题,没有描述。

  • 它必须是 Contentish 并由 CMFCore 管理:它必须具有 FTI、门户类型,以便我们可以通过标准方法创建/浏览内容;它是目录感知的。

  • 他们将在彼此之间有关系/参考。

  • 对象的数量会很大,比如 10-100M。

与此最相似的是评论对象(plone.app.discussion)。当我浏览了 plone.app.discussion 时,我发现内容实现非常复杂,有太多的低级基类。在大多数部分中,我要么根本不理解它,要么不能在评论用例之外重用它,并且对我来说几乎没有参考/示例价值。

所以我想问一下,如果我走高级框架路径与 plone.app.discussion 经历的低级框架路径相比,会有多少开销?

0 投票
1 回答
414 浏览

plone - 限制灵活性文档的内容类型

我正在做一个有很多不同文件的网站。他们需要它们,因为他们想做各种过滤器等等。

因为它是一家非常大的公司,结构很多,所以他们有一个非常固定的内容层次结构。

这样,只有在某些文件夹中,他们才需要某种内容类型。

我使它工作的唯一成功方法是创建每个内容类型的全局可添加文件夹内容类型,它只允许在其中创建所需的内容类型,而没有其他内容。

所以在他们的 FTI 定义中,我有(在全局可添加的文件夹内容类型上):

我曾经在“添加新...”下拉列表中看到“限制内容类型”,这对我来说非常有用,因为我喜欢 22 个容器和 22 种更多内容类型,而使用“限制内容类型”我只有 1 个容器和 22 种内容类型。

有没有办法在敏捷上做到这一点?

0 投票
1 回答
736 浏览

forms - 如何创建一个类似于 MultiContentTreeFieldWidget 但保留项目顺序的 Plone 表单小部件

我有一个灵巧的行为,允许我关联项目并将关系存储为 UUID

这很好用,除了如果您有一些关系,那么每次您编辑项目时,他们的订单都会更改。我们在页面的右侧列中显示相关项目(例如,请参阅这篇关于食物的文章)并希望控制顺序以便我们可以首先放置更多有趣的预告片。

调试它看起来很可能这种重新排序归结为z3c.formwidget.query.widget.QuerySourceRadioWidget.update在处理请求参数时使用了一个集合。大概这是为了防止重复但有两个讨厌的副作用:

  1. 字段的值在未更改时会更新
  2. 当它可能很重要时,订单丢失了

是否有替代方法以MultiContentTreeFieldWidget类似的方式工作但保留您添加项目的顺序?更好的是,是否有一个小部件可以做到这一点并且还允许您重新排序项目?

0 投票
3 回答
734 浏览

plone - 使用新界面标记敏捷性内容类型的推荐方法

在处理基于灵巧的项目时,我需要我的一种内容类型来支持collective.quickupload,方法是使用IQuickUploadCapable 接口对其进行标记。

我目前正在做的是在我的 configure.zcml 文件中添加一个“实现”:

因为我的内容类型是一个容器,所以我的第一个倾向是使用 grok 风格的方法,而不是在 ZCML 中声明它。告诉我的敏捷内容类型它实现了一个附加接口的 grok/敏捷方法是什么,还是我应该坚持当前的方法?

此外,我尝试将接口作为行为添加到我的profiles/default/types/my.dexterity.content.xml文件中,但这不起作用(我真的没想到它会因为行为服务于不同的目的)。

0 投票
2 回答
560 浏览

templates - 将新视图添加到敏捷类型会导致“找不到页面”查看项目

我正在阅读最近的 Professional Plone 4 Development 一书,安装 Plone 4.1.2。

我已经通过 Dexterity 成功定义了内容类型,现在正在尝试为其中一种类型创建自定义视图。架构和视图定义如下:

这是类型的 FTI 中的相关部分:查看 False

而模板本身,位于ctcc.contenttypes/trial_templates/view.pt中,应该只显示标题和描述:

在所有这些都到位的情况下访问该类型的任何实例会导致“找不到页面”错误。似乎并没有将新视图与预期路径捆绑在一起,但由于这是我使用 Plone 的第一周,我不知道从哪里开始追踪它。我也没有看到在前台模式下运行站点时出现错误。

任何帮助将不胜感激。

0 投票
2 回答
1599 浏览

plone - 有没有办法扩展 Plone Dexterity 的 INameFromTitle 行为?

我正在做的项目使用了 Plone 很棒的 Dexterity 插件。我的一些自定义内容类型具有必须计算的非常具体的名称。我之前最初完成此操作的方法是按照手册的说明在对象的通用设置条目中添加plone.app.content.interfaces.INameFromTitle作为行为:

然后我创建了一个可以提供 INameFromTitle 的适配器:

此方法与此博客文章中建议的方法非常相似:

http://davidjb.com/blog/2010/04/plone-and-dexterity-working-with-computed-fields

不幸的是,这种方法在 plone.app.dexterity beta 之后停止工作,现在我的内容项没有正确分配它们的名称。

有人会碰巧知道如何为非常具体的命名用例扩展 Dexterity 的 INameFromTitle 行为吗?

非常感谢您的帮助,谢谢!

0 投票
2 回答
620 浏览

plone - 自定义小部件的词汇相关错误

我有两种敏捷内容类型 - 参与者和标准 - 后者用于确定项目中的参与者包含。标准作为RelationList存储在 Participant 中,但是我想用基于复选框的选择器小部件替换默认选择器小部件。我创建了一个自定义小部件,我将其分配给条件字段,该字段将正确的条件显示为复选框,但在验证时出现以下错误:

我已经像这样定义了小部件:

然后在 Participant Dexterity 类型上,该字段为:

鉴于错误的性质,我将ObjPathSourceBinder源替换为自定义词汇表作为标准,希望它返回具有正确接口的对象,但使用该解决方案时我看到完全相同的错误。

更新:我已按照建议将术语列表包装在 SimpleVocabulary 中,但这只是将问题转移了。请注意,错误现在发生在kss_z3cform_inline_validation中。

0 投票
1 回答
1031 浏览

plone - 在 Plone 4 上具有 Dexterity 的自定义 AddForm 模板

我在让我的 Dexterity 内容类型显示自定义添加表单时遇到问题。我已经在以前的产品中做到了这一点,但令人惊讶的是,我无法使用 Plone 4.1 和 plone.app.dexterity 1.0.3 完成此操作

我的 CrmContact 内容类型位于 package.name.types.contact.py 中,其架构以这种方式定义:

我的模板位于 package/name/types/contact_templates 中。这是一个典型的模板。我知道它没有被渲染,因为它有一个虚拟节点,该节点将使用 tal:content 调用不存在的方法,以引发异常;所以我确定模板本身不是问题。

我的内容类型 FTI 在安装期间已正确注册,并且内容类型可用且可添加。

最后,在profiles/default/types.package.name.types.contact.xml中:

无关,但也许我必须在这里添加一些东西......

如您所见,我认为我遵循了正确的程序,但我仍然无法使其正常工作。

我知道类 Add 正在实例化,因为如果我提供 updateWidgets() 方法并插入断点,它就会被调用;当我反省对象时, self.template 为 None;虽然:

如何为我的自定义类型的添加表单提供自定义模板?

0 投票
1 回答
212 浏览

search - 在克隆中搜索自定义类型

我的任务是建立一个克隆社区。我有一些灵活创建的自定义内容类型。问题是我不知道如何搜索所有字段。在站点设置-> 搜索下,我选择了所有相关选项,但我似乎遗漏了一些东西(我希望它不是太明显)。

问题的简化示例:

我有一个自定义数据类型“recipe”,它具有默认字段“title”和“description”以及一个文本框“ingredients”。例如,我希望能够搜索所有包含培根的食谱。我不知道该怎么做。目前只有标题和描述是可搜索的。