2

我想创建模板,以便用户可以通过输入包括描述的数据来创建“警报”。为方便起见,将有 7 个模板可供选择描述。然后,用户可以更改此描述文本...

我为这些“警报描述”创建了另一个模板,并基于此模板创建了 7 个项目。

现在,我在警报模板上使用哪些字段类型?我有一个名为 description 的字段,其类型为下拉列表,源映射到警报描述,但这只是为我提供了下拉列表的值。我想要的是用户从下拉列表中选择一个警报描述,这将预填充另一个可以编辑以制作最终文本的字段。但是怎么做?

4

4 回答 4

1

正如@TwentyGotoTen 所说,您不能对任何现有的字段类型执行此操作。自定义字段的替代方案:

在 7 个不同模板的 __Standard Values 中设置默认文本,并让内容编辑器从插入菜单创建项目。这些都可以从相同的警报基本模板继承。因此,当创建不同类型的项目时,它们会获得该类型警报的默认文本。如果需要,用户将能够更改模板类型并将消息字段的值重置为默认值。

或者您可以在富文本字段中使用 Snippets

这两者的缺点是在模板中为模板设置文本,在核心数据库中为片段设置文本,如果他们需要更改默认文本,你真的不想让编辑器访问这些。这将取决于您认为此文本可能更改的频率与自定义字段所需的工作量。

您可以通过添加您自己的自定义标记并将标记值设置在编辑器可访问的树位置中来解决在模板中设置标准值的问题。

于 2013-11-05T23:10:56.893 回答
0

正如 TwentyGotoTen 所说,开箱即用您无法完全实现您所要求的。创建自定义字段绝对是一个不错的选择。但是,您还可以采取其他一些措施来获得类似的最终结果。

  1. 使用物品克隆。您可以使警报描述和实际警报使用相同的模板。然后,不要让您的用户插入新项目,而是让他们克隆您的示例警报之一。然后他们可以编辑描述。

  2. 使用Field Fallback Module并创建自定义 FieldFallbackProcessor。该处理器可以查看您的 droplink 字段以确定从哪个项目中提取后备值。

  3. 创建命令模板。您的命令模板可以向用户显示一个对话框,允许他们选择他们想要开始的警报描述并用它预填充新创建的项目。有关命令模板的更多信息,请参阅 SDN 上的 Data Definition Cookbook。请注意,这最终可能比自定义字段更费力。

于 2013-11-05T23:27:01.850 回答
0

为什么不使用规则引擎

我不完全清楚警报需要在哪里显示 - 在 Sitecore 内部或网站访问者,但在任何一种情况下都可以这样做:

Sitecore 内部如果某些情况属实(即它属于特定模板、位于内容树的特定位置等),
您可以使用 Sitecore 的默认值(至少在 Sitecore 6.5 中它是开箱即用的Action) 。要显示警告,您必须在文件夹中创建一个Set Content Editor WarningConditionsRule/sitecore/system/Settings/Rules/Content Editor Warnings/Rules

对于网站的访问者,
您可以在这里再次运行一些Conditions- 如果您想在每个页面上执行此操作,还有一种always run条件 - Sitecore 也有一些可用的操作:例如,您可以使用默认Set datasource to item(该项目是您保存警告描述的位置)或“将参数设置为值” - 更多关于在此处使用 Sitecore 参数

您甚至可以创建自己的自定义ActionCondition例如,您可以添加一个新的SublayoutRendering将显示某些内容的占位符。

当然,将数据源设置为一个项目时,它将始终采用该项目中的文本 - 如果您编辑原始描述,它将覆盖旧描述,可能会影响使用该描述的所有其他项目。使用参数不会有这个问题,但是您将无法重复使用这样的文本,因此如果您在多个位置使用它,则不可能在任何地方应用一个更改。

内容编辑器将能够使用页面编辑器相当轻松地更改文本(尤其是在使用诸如将数据源设置为项目或具有自定义字段之类的东西时)

于 2013-11-06T09:43:29.897 回答