隱藏條件可用來判斷元件資源是否已呈現。 範本作者在範本編輯器中設定核心元件清單元件並決定停用根據子頁面建立清單的選項時,就會是這個例子。 在設計對話框中禁用此選項會設定一個屬性,以便在呈現清單元件時計算隱藏條件,並且不顯示顯示子頁的選項。
對話可能會變得非常複雜,用戶可能只使用一小部分可供選擇的選項。 這可能導致使用者的使用者介面體驗過量。
使用隱藏條件,管理員、開發人員和超級使用者就能根據一組規則來隱藏資源。 此功能可讓作者決定當作者編輯內容時應顯示哪些資源。
根據運算式隱藏資源不會取代ACL權限。 內容仍可編輯,但不會顯示。
com.adobe.granite.ui.components.FilteringResourceWrapper
負責根據屬性的存在和值來篩選 granite:hide
資源,此屬性位於要篩選的欄位上。/libs/cq/gui/components/authoring/dialog/dialog.jsp
的實作包含FilteringResourceWrapper.
的例項
實作會使用Granite ELResolver API並透過ExpressionCustomizer新增cqDesign
自訂變數。
以下是位於etc/design
下或作為「內容策略」的設計節點上隱藏條件的一些示例。
${cqDesign.myProperty}
${!cqDesign.myProperty}
${cqDesign.myProperty == 'someText'}
${cqDesign.myProperty != 'someText'}
${cqDesign.myProperty == true}
${cqDesign.myProperty == true}
${cqDesign.property1 == 'someText' && cqDesign.property2 || cqDesign.property3 != 1 || header.myHeader}
定義隱藏運算式時請記住:
cqDesign.myProperty
)。您可以在AEM中找到隱藏條件的範例,尤其是核心元件。 例如,請考慮清單核心元件。
範本作者可使用範本編輯器,在設計對話方塊中定義頁面作者可使用的清單元件選項。例如是否允許該清單為靜態清單、子頁清單、標籤頁清單等。 可啟用或停用。
如果範本作者選擇停用子頁面選項,則會設定設計屬性並據此評估隱藏條件,導致選項無法為頁面作者呈現。
依預設,頁面作者可使用清單核心元件,透過選擇Child pages選項,使用子頁面來建立清單。
在清單核心元件的設計對話方塊中,範本作者可選擇選項停用子項,以防止將根據子頁面產生清單的選項顯示給頁面作者。
在/conf/we-retail/settings/wcm/policies/weretail/components/content/list
下建立策略節點,其屬性disableChildren
設定為true
。
隱藏條件定義為對話屬性節點/conf/we-retail/settings/wcm/policies/weretail/components/content/list
上granite:hide
屬性的值
從設計配置提取disableChildren
值,表達式${cqDesign.disableChildren}
評估為false
,這表示將不會在元件中呈現該選項。
您可以在此處🔗檢視GitHub中以granite:hide
屬性值形式顯示隱藏運算式。
使用清單元件時,頁面作者不再轉譯子頁面選項。