在许多不同的文档类型上,我必须添加相同的3个本机Umbraco数据类型
有人建议我看看是否有办法创建一个新的自定义数据类型,基本上将这3种数据类型包装成新的数据类型。
我查看了nibble.be's site,看到有几种不同的方法可以创建自定义数据类型(使用usercontrol包装或3类方法)。但是,我不确定用于对现有数据类型进行分组的自定义数据类型是否是正确的路由。
首先,我们在Umbraco旁边使用MVC,大量使用Razor视图。由于文档类型属性别名用于从内容页面获取Umbraco的值,因此我不知道这是如何实现的,或者如何获取具有嵌入数据类型的自定义数据类型的属性值。
是否有工作方式或更好方式来完成此解决方案,因为必须在所需的任何文档类型上添加相同的字段?我虽然关于分层方法,文档类型父类只有这3种数据类型(内容选择器和2条文本字符串),但这意味着必须在这种父文档类型下放置页面需要的任何文档类型,只是为了继承事实这些属性组。
答案 0 :(得分:16)
如果您希望将多个属性嵌入到单个数据类型中:
有许多嵌入式数据类型可用;我知道的是DataType Grid,Embedded Content和Repeatable Custom Content。所有这三个都将它们的信息存储为xml,这样可以通过xslt和razor轻松访问。
DataType网格是uComponents的一部分,因此积极开发。它也是开源的,因此鼓励捐款。嵌入式内容和可重复自定义内容虽然仍然有用,但似乎没有任何当前支持,因此没有改进计划。我认为它们是作为开源许可的,但据我所知,源代码尚未公开。
我认为您不能像在嵌入式内容中那样(可能是功能请求)对DataType网格中存储的行/项数量设置限制。
在计划推出自己的解决方案之前先看一下这些解决方案。但是,如果你仍然想要编写自己的数据类型的代码,我建议Tim Geyssens使用user control wrapper,data editor settings和serializing the data as xml创建自定义数据类型的文章。他的"Master of Datatypes" video也很有用,也涵盖了这些主题。
如果您希望将您的媒体资源分组:
Tom Fulton发布了最近名为Document Type Fieldsets的新包/数据类型,可能符合您的需求。它允许您在字段集中将字段组合在一起。这是一个屏幕截图:
答案 1 :(得分:3)
我意识到这是一个老问题,所以我只是为将来搜索此功能的人添加此内容:这几乎就是我们在Umbraco 6中使用Widget Builder的内容。
Widget Builder是Umbraco 7的Archetype的前身,由核心团队推动,以便近乎普遍使用。我相信它会成为核心的一部分。
在内部,WidgetBuilder和Archetype将其数据存储为JSON,并且可以非常轻松地将自定义数据类型从一个项目复制到另一个项目,并具有导入/导出功能。
答案 2 :(得分:2)
我曾经使用Archetype一段时间,直到我发现Nested Content做同样的事情但更容易使用,因为它嵌套Document Types
而不是Data Types
这更容易与...合作,尤其是内容编辑。此外,生成的数据类型是普通的内置Umbraco数据类型,而不是Archetype对象,它们在您的视图中添加了一层新的实体映射。