Problem

Wie überprüfe ich, ob der Code auf einer Autoren- oder Veröffentlichungsinstanz ausgeführt wird?

Lösung

Die folgende Methode ist am besten dafür geeignet, um in zu überprüfen, ob Ihr Code in der Autoreninstanz in CQ ausgeführt wird.
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")) );

Diese Methode ist besser als die Überprüfung der URL, da dieser Code nicht auf einen bestimmten Kontext angewiesen ist, der sich ändern kann. Außerdem kann der Autorenserver in einen Veröffentlichungsmodus umgeschaltet werden, indem Sie den Parameter "Anzeigen" in der Anfrage auf 1 einstellen. Somit wirkt sich die Anfrage /author/somepage.html?Show=1 auf den Veröffentlichungsmodus aus. Daher ist es keine zuverlässige Lösung, sich auf den Kontext zu verlassen.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie