Controlla se sei su autore o pubblicazione

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.

Logo Adobe

Accedi al tuo account