2017-09-12 50 views
2

我想在編輯頁面上的內容(在所有屬性視圖中)時使編輯器體驗更好,更具視覺效果。可能是一個簡單的分隔線或標題..如何爲EPiServer ContentType直觀地分離屬性?

我已經使用標籤,只要它是有道理的。另外,我一直在嘗試使用塊作爲屬性。這在清晰的標題中增加了一個很好的分隔,但是當屬性真正屬於頁面類型時,它需要更多的代碼來維護,並且要老實說一點。

回答

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 inject our field-implementation [...]'下面。

〜/ ClientResources/Scripts/Shell/Field/Field.js只是我選擇放置Field.js的重寫版本的位置,只要你相應地更新module.config,並且使用新路徑,就可以將它放在任何位置。 它的工作原理是這樣的:First ,Episerver定義了窗口小部件A.然後你定義一個具有相同名稱的窗口小部件A.當任何東西試圖獲取A時,它將返回你的實現,而不是Episerver的。

+0

你的博客文章說覆蓋〜/ ClientResources/Scripts/Shell/Field/Field.js但是我的ClientResources文件夾中沒有這樣的文件。我正在使用合金技術演示進行測試。 我是否需要解壓縮modules/_protected/Shell中的Shell.zip文件夾,創建所需的文件夾和文件並重新壓縮文件夾以使其工作。 我不是很熟悉修改dojo和內置的功能。希望你會提供更詳細的步驟。另外,也許答案應該可以在這個帖子上供其他人看到.. – Frostrar

+0

Hello Frostrar,我添加了一個答覆作爲編輯我的答案,因爲它太長的評論。 –

+0

這工作完美!絕對是我將在未來的項目中使用的東西。感謝您對壓倒一切的澄清! – Frostrar