我在哪里可以存储自定义字段属性在Sitecore的一个领域?(Where could I store

2019-10-22 02:13发布

我希望能够找到存储自定义在Sitecore的一个字段属性的地方。 例如,让我们说,我有一个名为ProductData数据模板。 它有三个字段:

  • 标题(单行文本)
  • StrengthInPPM(数字)
  • AbsoluteStrength(数字)

这两个数字字段也与他们相关联的计量单位。 第一个是ppm的,第二个是毫克。 最终,这个数据将需要一个页面上显示。 当显示页面上的数据,我想它显示是这样的:

My Product Title
Strength In ppm: 27 ppm
Absolute Strength: 1350 mg

不过,我想找到该字段标签和措施为外地单位可以以某种方式保存在Sitecore的字段定义本身的方式。 我认为,标签可以存储在该字段的标题属性 - 对吗? 有没有办法,我可以存储测量文本的单位为字段定义的任何地方吗? 我找不到任何排序字段,我可以使用与一个字段定义随之而来的自定义数据。

那我问这个的原因是,在现实中的项目,我的数据模板工作将可能有更多的像100场。 这是所有化学数据。 我希望能够写一个程序,可以很遍历所有的字段,获取标签,值和度量单位,并显示它所有的页面上。

当然,另一种方式,我可以做到这一点是放的测量信息的标签和单位无论是在外部数据库表或配置文件什么的。 但我宁愿只拥有这一切在Sitecore的。

任何想法如何,我可以做到这一点?

Answer 1:

我建议你分割你的产品数据到一个主模板(包含产品名称)和(含属性名,的PropertyValue,PropertyUnits等)称为ProductProperty二级模板。 然后组织内容项目如下:

* Product X (uses ProductData template)
  * Property 1 (uses ProductProperty template)
  * Property 2
  * ...

这可能会显得累赘,但好处是,你的内容更容易管理和然后你可以通过遍历子(ProductProperty项目)更容易呈现此数据。 您可以使用标准做了这一切<sc:FieldRenderer />@Html.Sitecore().Field()方法,这将确保页面编辑器的兼容性。

如果你经常有相同的属性,为您的产品,您可以创建定义这组ProductProperty项目意味着你就不必去,并在每次添加一个新产品的时候创造的100个项目的一个分支模板。



Answer 2:

不知道你将如何最终使用的数据,或者如果它需要参与的搜索,但简化您的模板,你可以考虑一些小聪明Name Value List字段类型。 这将允许你添加属性的数量不受限制,而不必定义他们为每个模板前面。

这里唯一需要注意的是,该字段的名称部分只能包含字母和数字,所以没有空格。 你既可以取代像下划线与空间上呈现,或者自己创建一个自定义的控制。

如果你想创建一个自定义控制,然后又看看的Name Lookup Value List -您可以延长这些中的一个,以满足您的需求,或者从他们的灵感。 您可以创建具有三个字段控制:可选择的名称查找,手动值项,可选择强度的单位。

在任何情况下,它应该比你的模板创建100个字段,尤其如果所有字段并不适用于所有的产品更整洁了很多。



Answer 3:

一种做法是创建一个自定义字段类型来表示“号和单元”的数据? (我有一个快速谷歌,我不认为这样的事情已经存在 - 但我可能是错的)的自定义字段可以让你对你的项目单场表示这些数据对。

励磁控制可以呈现文本输入控制以捕捉数量,其次是单元的表示。 根据什么是更适合您的解决方案,它可以:

  • 显示选择的单位选项下拉,与设定的从源值取为模板的定义字段选择。
  • 不能提供一个选择,但是从现场的源配置需要特定的单位,然后将号码后只是显示它。

我建议定义单位作为数据模板类型本身,营造“百万分之一”项目(等)与任何额外的数据,你的系统需求。

现场控制可以存储单元和底层数据的值二者。 这将允许你迭代的字段和你所说的处理每一个设置。 你选择这个格式是你的,但通常使用XML或其他一些方式来结构化文本。 也许是这样的:

<data value="0.83" units="{d44109f3-659b-43d7-b761-a793c4e2f733}"/>

值属性存储输入的数字,并且单元属性包含定义适当的单位数据中的商品的商品ID。

以同样的方式在Sitecore的内核呢,你就可以有辅助方法或当它在您的代码处理这解开这个数据类,以帮助使其在发布网站的UI。

有很多资源的互联网如何去自定义字段创建代码上。 这谷歌搜索中列出其中的一些让你开始。



Answer 4:

这是我认为的数值,单位和标签的所有内容。 如果他们是内容,就应该定期内容创作者很容易authorable,所以不要隐藏这些标签和单位在系统中。 IMO,我只想让整条生产线是该领域的一部分,我不知道为什么你不肯,如

  • 标题(SLT)
  • 强度(SLT)
  • AbsoluteStrength(SLT)

你甚至可以设置像这样的后两个领域的标准值:

  • 强度以ppm:VALUE ppm的
  • 绝对实力:值MG

如果这是不能接受的,因为内容创作者可以在不同于其他项目的单个实例更改标签,那么你可能要考虑的标签和单位移动到字典条目 。



文章来源: Where could I store custom field attributes for a field in Sitecore?
标签: sitecore