【问题标题】:Is there a way to add a Umbraco Custom Data Type that basically was a grouping of existing data types?有没有办法添加基本上是现有数据类型的分组的 Umbraco 自定义数据类型?
【发布时间】:2012-08-21 18:43:17
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: umbraco


    【解决方案1】:

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

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

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

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

    在您计划推出自己的解决方案之前,请先查看其中的一些解决方案。但是,如果您仍然想编写自己的数据类型,我推荐 Tim Geyssens 关于使用user control wrapperdata editor settingsserializing the data as xml 创建自定义数据类型的文章。他的"Master of Datatypes" video 也很有帮助,也涵盖了这些主题。

    如果您希望将您的资产分组:

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

    【讨论】:

    • 不幸的是,这不会为一种数据类型创建多个字段。它只是为您的内容页面属性提供了额外的组织(基于它们的数据类型)。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2016-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-13
        • 1970-01-01
        相关资源
        最近更新 更多