10

在许多不同的文档类型上,我必须添加相同的 3 种原生 Umbraco 数据类型

  1. 内容选择器
  2. 文本字符串
  3. 文本字符串

有人建议我看看是否有一种方法可以创建一个新的自定义数据类型,基本上将这 3 种数据类型包装成一个新的数据类型。

我查看了nibble.be 的网站,发现有几种不同的方法可以创建自定义数据类型(使用 usercontrol 包装器或 3 类方法)。但是,我不确定用于对现有数据类型进行分组的自定义数据类型是否正确。

一方面,我们在 Umbraco 旁边使用 MVC,并大量使用 Razor 视图。由于文档类型属性别名用于从内容页面从 Umbraco 获取值,因此我看不出这仍然是可能的,或者您将如何获取具有嵌入数据类型的自定义数据类型的属性值。

是否有一种工作方式或更好的方式来完成这个解决方案,因为必须在任何需要的文档类型上添加相同的字段?我虽然关于仅具有这 3 种数据类型(内容选择器和 2 个文本字符串)的文档类型父级的分层方法,但这意味着必须将页面所需的任何文档类型放在此父文档类型下,只是为了继承这一事实这组属性。

4

3 回答 3

16

如果您希望将多个属性嵌入到单个数据类型中:

有许多可用的嵌入式数据类型;DataType GridEmbedded ContentRepeatable Custom Content是我所知道的三个。这三个都将他们的信息存储为 xml,这允许通过 xslt 和 razor 轻松访问。

DataType Grid 是uComponents的一部分,因此正在积极开发中。它也是开源的,因此鼓励贡献。嵌入式内容和可重复的自定义内容虽然仍然有用,但似乎没有任何当前支持,因此没有改进计划。我认为它们是作为开源许可的,但据我所知,源不是公开的。

我认为您不能像在嵌入式内容(可能是功能请求)中那样对存储在 DataType 网格中的行/项目数设置限制。

在您计划推出自己的解决方案之前,请先查看其中的一些解决方案。但是,如果您仍然想编写自己的数据类型,我会推荐 Tim Geyssens 关于使用用户控件包装器创建自定义数据类型的文章,使用数据编辑器设置,并将数据序列化为 xml。他的“数据类型大师”视频也很有帮助,也涵盖了这些主题。

如果您希望将您的资产组织成组:

Tom Fulton最近发布了一种新的包/数据类型,称为Document Type Fieldsets,它可能适合您的需求。它允许您在字段集中将字段组合在一起。这是一个屏幕截图:

在此处输入图像描述

于 2012-08-21T19:31:03.750 回答
3

我意识到这是一个老问题,所以我只是为将来搜索此功能的任何人添加这个:这几乎正是我们在 Umbraco 6 中使用Widget Builder的目的。

Widget Builder 是 Umbraco 7 Archetype的前身,其核心团队正在推动它接近普遍使用。我相信它将成为核心的一部分。

在内部,WidgetBuilder 和 Archetype 将他们的数据存储为 JSON,并通过导入/导出功能将自定义数据类型从一个项目复制到另一个项目变得非常容易。

于 2014-08-01T15:31:55.463 回答
2

我曾经使用 Archetype 工作了一段时间,直到我发现嵌套内容做同样的事情但更容易使用,因为它嵌套Document Types而不是Data Types更容易使用,特别是对于内容编辑器。此外,生成的数据类型是普通的内置 Umbraco 类型,而不是在您的视图中添加新实体映射层的原型对象。

于 2015-12-13T17:29:17.443 回答