2016-10-26 7 views
1

Ich verwende AEM6.0 SP2. Ich benötige eine author.css, die für Authoring-Dialoge benötigt wird. Ich schließe die clientlib im Template-Header mit Bedingung ein.Ist es möglich runmode-spezifische clientlib zu erstellen?

Mein Problem ist, dass ich diese Bedingung in allen Vorlagen Headlib hinzufügen muss. Gibt es eine dem Run-Modus ähnliche Methode osgi config, um einfach clientlib-author zu erstellen, und OTB schließt die Bibliothek bei der Veröffentlichung automatisch aus, ohne die explizite runmode-Bedingung für alle Vorlagen zu verlangen.

Antwort

0

Es hängt davon ab, wo Sie Ihre benutzerdefinierte Autorenbibliothek verwenden möchten, aber die einfachste Möglichkeit, dies ohne Berühren Ihrer Seiten zu erreichen, besteht darin, eine der im Authoring-Modus geladenen Standard-AEM-Bibliotheken als Kategorie für Ihre Bibliothek zu verwenden als "cq.authoring.dialog", "granite.ui.foundation", "cq.authoring.editor" usw. so zum Beispiel:

<?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]" 
    /> 

ich nicht versucht habe runmodes mit Bibliotheken zu verwenden, aber Ich denke nicht, dass dies möglich ist. Alternativ könnten Sie Ihre eigene jsp taglib schreiben, wo Sie ein solches Verhalten implementieren können.

+0

Ja, ich denke, dies wird dazu beitragen, meine Bibliothek nur auf den Autor zu beschränken. Vielen Dank. –

2

Ich glaube nicht. Sie sollten versuchen, Ihre Template-Vererbung zu strukturieren, damit Sie den Code an einer Stelle platzieren können (Do not Repair Yourself - DRY), die sich in der JSP eines Super-Typs befindet, und dann die untergeordneten Child-Vorlagen die abweichenden Teile ändern lassen.

+0

Dank @Shawn undefiniert. Dies ist mein nächster nächster Schritt, um Templates zu restrukturieren, um eine Basis zu erweitern und wiederholte Codes zu reduzieren. –

0

Ich denke, Sie Ihren wcm Modus auf folgende Weise überprüfen können:

if (CQ.WCM.getMode() == 'edit') { 
    include your lib here 
    ......... 
} 

Bitte beachten Sie, CQ Objekt kann auf veröffentlichen

+0

Mein Problem ist, dass ich diese Bedingung nicht hinzufügen möchte, da ich ziemlich viele isolierte Vorlagen ohne Basisvorlage habe. Und CQ-Objekt ist tatsächlich verfügbar in veröffentlichen –

Verwandte Themen