带值查找的Sitecore模板

带值查找的Sitecore模板,sitecore,sitecore6,Sitecore,Sitecore6,我想创建一个模板,这样用户就可以通过输入包含描述的数据来创建“警报”。为了方便起见,将有7个模板可供选择描述。然后用户可以更改此描述文本 我已经为这些“警报描述”创建了另一个模板,并基于该模板创建了7个项目 现在,我在警报模板上使用什么字段类型?我有一个名为description的字段,其中包含一个下拉列表类型,该列表的源映射到警报描述,但这只是为下拉列表提供了一个值。我想要的是用户从下拉列表中选择一个警报描述,这将预先填充另一个字段,可以编辑该字段以生成最终文本。但是怎么做呢?您不能对任何现有

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

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


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

您不能对任何现有字段类型执行此操作,但您可以在Sitecore中创建自定义字段类型,从而实现您的目标。以下是一些关于这个主题的文章:


正如@Twentygotton所说,任何现有字段类型都不能这样做。自定义字段的替代项:

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

或者你也可以用

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


您可以通过在编辑器可访问的树位置中设置令牌值来解决在模板中设置标准值的问题。

正如Twentygotton所说,您无法完全实现开箱即用的要求。创建自定义字段绝对是一个不错的选择。然而,为了得到类似的最终结果,你还可以做一些其他的事情

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

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

  • 创建命令模板。您的命令模板可以向用户提供一个对话框,允许用户选择要开始的警报描述,并用它预先填充新创建的项。有关命令模板的更多信息,请参阅SDN上的数据定义手册。请注意,这可能会比自定义字段更费劲

  • 为什么不使用这个工具呢

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

    内部Sitecore
    您可以使用Sitecore的默认设置(至少在Sitecore 6.5中,它是一个开箱即用的
    操作
    设置内容编辑器警告
    ,如果某些
    条件
    为真(即,它属于特定模板,位于内容树的特定位置,等等)。要显示警告,您必须在
    /sitecore/system/Settings/Rules/Content Editor Warnings/Rules
    文件夹中创建
    规则

    给网站的访问者
    您可以在这里再次运行一些
    条件
    ——如果您想在每个页面上执行此操作,还有一种
    始终运行
    类型的条件——Sitecore在这里也有一些可用的操作:例如,您可以使用默认的
    将数据源设置为项
    (保存警告说明的项目)或“将参数设置为值”-有关使用Sitecore参数的详细信息

    您甚至可以创建自己的自定义
    操作
    条件
    ,例如,您可以将新的
    子布局
    渲染
    添加到将显示某些内容的占位符中

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

    内容编辑器将能够使用页面编辑器相当轻松地更改文本(特别是在使用诸如将datasource设置为item或具有自定义字段之类的功能时)