0

我正在研究一个 Sitecore 实施,其中整个网站有许多表单(在你问之前,WFFM 是不可能的!)。

我的问题是,存储表单标签的最佳方式是什么?我目前的想法是使用字典结构并按键访问表单字段标签。这种方法的问题是当编辑者想要改变同一字段的标签时;例如,在表单 X 上,名字字段是“First Name”,然后在其他地方可能是“Forename”,或者它可能是一个地方的必填字段(带星号),另一个地方是可选的。我真的不想开始使用名为“FirstNameWithAsterisk”和“FirstNameWithoutAsterisk”等的字典项目。

我的另一个想法是将表单标签简单地存储在名称值列表字段中。然后可以使用名称/值来填充该字段,并且编辑者可以自由使用他们喜欢的任何表单标签,而不会无意中编辑在其他地方使用的字典条目。

在页面模板上有表单字段之前,我一直在走这条路,但恕我直言,这是一个非常糟糕的解决方案,所以我不会有兴趣再次走这条路。

编辑

为了确认,此站点的表格数量有限。

4

2 回答 2

1

我会采用字典方法。如果您的论点是它可能会有所不同,那么这就是在逻辑上将它们分开的原因。因此,听起来您有自定义表单和要构建的有限表单集(请确认)。也就是说,像这样构建你的字典,例如

  • 表格1
    • Form1-名字
  • 表格2
    • Form2-名字

或其他对您有意义的命名约定。

从逻辑上讲,它是每个唯一表单的“名字字段”,但从技术上讲,它们是两个独立的不相关的东西,因此您需要两个字典项。您可以通过您提到的命名约定来做到这一点,但不要根据内容命名它们(因为该值会更改!),而是根据它适用于/使用它的位置命名它,因为您的代码将静态参考钥匙。

所以我会说FirstNameWithAsteriskandFirstNameWithoutAsterisk是坏名字,因为它们与内容以及它是否有星号有关。取而代之的是,通过它适用的形式或内容的其他一般概念来命名它。

编辑:由于可以将相同的表单组件添加到多个页面,因此这是该演示组件的数据源的完美案例。只需为所有表单字段创建一个模板,然后创建任意数量的实例,并为绑定到页面的每个表单,将其数据源指向具有所需字段值的相应项目。

于 2012-11-14T18:49:40.403 回答
0

您知道 Sitecore 中有一个内置的字典,对吧?看一下系统/字典。然后通过调用 Sitecore.Globalization.Translate.Text() 从中获取值。

如果您确定不支持多种语言......那么您可以想象选择此功能并使字典项目的不同语言版本实际上成为您想要的字段标签的不同值。

于 2012-11-14T23:06:34.513 回答