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.

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne