具有值查找的Sitecore模板

时间:2013-11-05 22:25:56

标签: sitecore sitecore6

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

我为这些“提醒说明”创建了另一个模板,并根据此模板创建了7个项目。

现在,我在警报模板上使用哪些字段类型?我有一个名为description的字段,其中包含一个下拉列表类型,其中源映射到警报描述,但这只是给我一个下拉值。我想要的是用户从下拉列表中选择一个警报描述,这将预先填充另一个可以编辑的字段以生成最终文本。但是如何?

4 个答案:

答案 0 :(得分:1)

对于任何现有的字段类型,您都无法做到这一点,正如@TwentyGotoTen所说。自定义字段的替代方法:

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

或者您可以使用Snippets in the rich text field

这两个方面的缺点是文本是在模板模板中设置的,而核心数据库中是为片段设置的,如果需要对默认文本进行更改,您实际上不希望编辑者访问这些文本。这将取决于您认为此文本可能更改的频率与自定义字段所需的工作量。

您可以解决在adding your own custom token模板中设置标准值并在编辑器可访问的树位置设置标记值的问题。

答案 1 :(得分:0)

答案 2 :(得分:0)

正如TwentyGotoTen所说,你不可能完全满足你的要求。创建自定义字段绝对是一个不错的选择。但是,您可以采取其他一些措施来获得类似的最终结果。

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

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

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

答案 3 :(得分:0)

为什么不使用Rules Engine

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

内部Sitecore
你可以使用Sitecore的默认值(至少在Sitecore 6.5中它是一个开箱即用的ActionSet Content Editor Warning如果某些Conditions为真(即它是特定模板,在内容树的具体位置等)。要显示警告,您必须在Rule文件夹中创建/sitecore/system/Settings/Rules/Content Editor Warnings/Rules

致网站访问者
你在这里可以做的是再次运行一些Conditions - 如果你想在每个页面上执行此操作,还有always run类型的条件 - 并且Sitecore也有一些可用的操作:例如,你可以使用默认的Set datasource to item(项目是您保存警告说明的位置)或“将参数设置为值” - 有关使用Sitecore参数的更多信息here

您甚至可以创建自己的自定义ActionCondition,以便您可以向占位符添加新的SublayoutRendering,以显示内容。

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

内容编辑器将能够使用页面编辑器轻松更改文本(特别是在使用将数据源设置为项目或具有自定义字段时)