如何为EPiServer ContentType直观地分隔属性?

时间:2017-09-12 07:58:25

标签: user-interface user-experience usability episerver

我希望在填充页面上的内容时使编辑器体验更好,更具视觉效果(在所有属性视图中)。可以是一个简单的分隔符或标题..

我已经在使用制表符,只要它有意义。此外,我一直在尝试使用块作为属性。这在清晰的标题上增加了一个很好的分离,但是当属性真正属于页面类型时,要保持这么多代码并且有点乱。

1 个答案:

答案 0 :(得分:3)

开箱即用,除非您使用块属性,否则无法使用标题装饰属性。

但是,我认为你的问题非常有趣,我发现扩展Episerver以适应这种行为非常简单。我已经编写了一个示例解决方案,您可以随意使用它:https://arlc.dk/grouping-properties-with-headlines-without-property-blocks

如果您不喜欢该解决方案,另一种方法是引入您自己的Property-type(标题),并创建1)自定义dojo-widget以简单显示标题,以及2)EditorDescriptor来设置ClientEditingClass 。 Linus在这里写了一篇很棒的博客文章:https://world.episerver.com/blogs/Linus-Ekstrom/Dates/2012/7/Creating-a-custom-editor-for-a-property/

编辑: 我明白了,我已经超越了最重要的部分。

您不必通过替换它们来覆盖任何文件,并且您不必提取Shell.zip(除非您很好奇Episerver如何实现其小部件)。覆盖特定组件的部分是define(“epi / shell / form / Field”。只要你的shell的定义是在shell之后加载的,dojo将使用你的实现,只要有东西需要“epi / shell / form /字段“。确保你的实现被加载的东西,在module.config中,在'This injects our field-implementation [...]'下。

路径〜/ ClientResources / Scripts / Shell / Field / Field.js只是我选择放置Field.js的覆盖版本的位置。只要您使用新路径更新module.config,就可以将它放在任何您喜欢的位置。 它的工作原理如下:首先,Episerver定义小部件A.然后你定义一个具有相同名称的小部件A.当有任何东西试图获取A时,它返回你的实现,而不是Episerver的。