本檔案說明如何在現代、觸控式UI中自訂主控台,且不套用至傳統UI。
AEM提供多種機制,讓您能夠自訂主控台(以及 頁面製作功能)。
Clientlibs Clientlibs可讓您擴充預設實作以實現新功能,同時重複使用標準函式、物件和方法。 自訂時,您可以在下建立自己的clientlib /apps.
例如,它可以儲存自訂元件所需的程式碼。
覆蓋以節點定義為基礎,可讓您覆蓋標準功能(在 /libs
)搭配您自己的自訂功能(在 /apps
)。 建立覆蓋時不需要原始的1:1副本,因為Sling資源合併器允許繼承。
您可以透過多種方式使用這些來擴充AEM主控台。 以下會涵蓋小範圍選區(高階)。
如需進一步詳細資訊,請參閱:
您 必須 不會變更中的任何專案 /libs
路徑。
這是因為 /libs
下次升級執行個體時會被覆寫(當您套用hotfix或feature pack時,很可能會被覆寫)。
設定和其他變更的建議方法是:
重新建立所需專案(即存在於中的專案) /libs
)下 /apps
進行任何變更 /apps
例如,下列位置位於 /libs
結構可以重疊:
主控台(任何以Granite UI頁面為基礎的控制檯);例如:
/libs/wcm/core/content
請參閱知識庫文章, 疑難排解AEM TouchUI問題,以取得進一步的提示和工具。
您可以自訂主控台的預設檢視 (欄、卡片、清單):
您可以從下列位置覆蓋所需專案,以重新排序檢視:
/libs/wcm/core/content/sites/jcr:content/views
第一個專案是預設值。
可用的節點和可用的檢視選項相互關聯:
column
card
list
例如,在清單的覆蓋中:
/apps/wcm/core/content/sites/jcr:content/views/list
定義以下屬性:
sling:orderBefore
String
column
您可以建置自己的元件並包含相對應的用戶端資料庫,以用於自訂動作。例如, 提升至Twitter 動作時間:
/apps/wcm/core/clientlibs/sites/js/twitter.js
然後,這可以連接至主控台上的工具列項目:
/apps/<yourProject>/admin/ext/launches
例如,在選擇模式下:
content/jcr:content/body/content/header/items/selection/items/twitter
您可以使用自訂的轉譯條件來覆蓋標準動作,並在轉譯前強制實行必須滿足的特定條件。
例如,建立元件以根據群組控制轉譯條件:
/apps/myapp/components/renderconditions/group
若要將這些專案套用至Sites主控台上的「建立網站」動作:
/libs/wcm/core/content/sites
建立覆蓋:
/apps/wcm/core/content/sites
然後新增動作的rendercondition:
jcr:content/body/content/header/items/default/items/create/items/createsite/rendercondition
使用此節點上的屬性,您可以定義被准許執行特定動作的 groups
;例如,administrators
此功能已針對文字欄位欄位進行最佳化;對於其他資料型別,可以覆蓋 cq/gui/components/siteadmin/admin/listview/columns/analyticscolumnrenderer
在 /apps
.
若要自訂清單檢視中的欄:
覆蓋可用欄的清單。
在節點上:
/apps/wcm/core/content/common/availablecolumns
新增欄 — 或移除現有欄。
另請參閱 使用覆蓋(以及Sling Resource Merger) 以取得詳細資訊。
選擇性:
如果您想要插入其他資料,則需撰寫 paginforProvider 與
pageInfoProviderType
屬性.
例如,請參閱底下的附加類別/套件(來自GitHub)。
您現在可以在清單檢視的欄配置器中選取欄。
使用主控台時,常見的使用案例是使用者必須從資源(例如頁面、元件、資產等)中進行選取時。 例如,這可以採用清單的形式,作者必須從中選擇專案。
若要將清單保持為合理的大小並且和使用案例相關,可以以自訂述詞的形式實作篩選器。另請參閱 本文 以取得詳細資訊。