我正在使用AEM6.0 SP2。我有一個author.css需要用於創作對話框。我在包含帶有條件的模板頭中包含clientlib。是否有可能創建特定於runmode的clientlib?
我的問題是我必須在所有模板headlib中添加這個條件。有沒有類似於基於osgi config的運行模式的方法,以簡單地創建clientlib-author,並且OTB在發佈時自動排除庫,而不希望在所有模板上顯式運行模式條件。
我正在使用AEM6.0 SP2。我有一個author.css需要用於創作對話框。我在包含帶有條件的模板頭中包含clientlib。是否有可能創建特定於runmode的clientlib?
我的問題是我必須在所有模板headlib中添加這個條件。有沒有類似於基於osgi config的運行模式的方法,以簡單地創建clientlib-author,並且OTB在發佈時自動排除庫,而不希望在所有模板上顯式運行模式條件。
這取決於你想使用自定義作者庫的位置,但是最簡單的方法來完成此操作而不觸摸你的頁面,只是使用在創作模式下加載的標準AEM庫之一作爲你的庫的類別,例如作爲 「cq.authoring.dialog」, 「granite.ui.foundation」, 「cq.authoring.editor」 等,因此,例如:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="cq:ClientLibraryFolder"
categories="[granite.ui.foundation]"
/>
我還沒有嘗試過使用runmodes與圖書館,但我不認爲這是可能的。另外,你可以編寫自己的jsp taglib,在那裏你可以實現這樣的行爲。
我不這麼認爲。您應該嘗試構建模板繼承,以便您可以將代碼放在超級類型的JSP中的一個位置(不要重複自己 - DRY),然後讓繼承子模板更改不同的部分。
感謝@Shawn是不確定的。這是我的下一步重組模板,可以擴展基礎並減少重複代碼。 –
我想你可以驗證你的WCM模式通過以下方式:
if (CQ.WCM.getMode() == 'edit') {
include your lib here
.........
}
請注意,CQ
對象可以上發佈
我的問題是我不想添加這個條件,因爲我有很多孤立的模板沒有基礎模板。 CQ對象確實可以在發佈中使用 –
是的,我認爲這將有助於將我的圖書館限制爲僅限作者。謝謝。 –