Ultimo aggiornamento il
May 03, 2021 11:35:54 AM GMT
|
Valido anche per Communiqué 3, Communiqué 4
Problema
Come posso verificare se il codice è in esecuzione su un autore o un'istanza di pubblicazione?
Soluzione
Il modo migliore per verificare se il codice è in esecuzione nell'ambiente di authoring in CQ è il seguente.
DeliveryHttpServletRequest cqRequest = (DeliveryHttpServletRequest) request; // flag to indicate whether application is Author or Publish boolean isAdmin = !cqRequest.getCmsService().getDisplayControlSet(cqRequest).equals(DisplayControlSet.SHOW); // flag to indicate whether application is in preview/show mode boolean isShowMode = (cqRequest.getCmsService().getDisplayControlSet(cqRequest).equals(DisplayControlSet.SHOWMODE) || "ShowMode".equals(cqRequest.getParameter("Show")) );
Questo metodo è meglio che controllare l'URL, perché questo codice non si basa su un contesto specifico, che può cambiare. Inoltre, il server autore può essere commutato in modalità di pubblicazione impostando il parametro "Mostra" a 1 nella richiesta. Quindi, la richiesta a /author/somepage.html?Show=1
si trasforma in pubblicazione. Pertanto, affidarsi al contesto non è una soluzione affidabile.
Accedi al tuo account