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.

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online