Dernière mise à jour le
1 mai 2021
|
S’applique également à Communiqué 3, Communiqué 4
Problème
Comment vérifier si le code s’exécute sur une instance d’auteur ou de publication ?
Solution
La meilleure façon de vérifier si votre code s’exécute dans l’environnement de création de CQ est la suivante :
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")) );
Cette méthode est plus efficace que la vérification de l’URL, car ce code n’a aucune incidence sur un contexte spécifique, qui peut changer. En outre, le serveur de l’auteur peut être basculé vers le mode d’édition en définissant les paramètres d’affichage sur 1 dans la requête. Par conséquent, la requête vers /author/somepage.html?Show=1
s’affiche comme publication. Par conséquent, le contexte n’est pas une solution fiable.
Adobe
Recevez de l’aide plus rapidement et plus facilement
Nouvel utilisateur ?