WCMMODE Tag deprecation in AEM 6.2 upgrade | Community
Skip to main content
July 10, 2017
Solved

WCMMODE Tag deprecation in AEM 6.2 upgrade

  • July 10, 2017
  • 5 replies
  • 2837 views

Hi,

I tried to use WCMMODE tag in AEM 6.2 and it is not working as expected. we are upgrading from CQ 5.6.1 to AEM 6.2. wcmmode tags are working as expected in cq5.6.1. but here in aem 6.2 it is not working.

<%@ taglib prefix="wcmmode" uri="http://www.adobe.com/consulting/acs-aem-commons/wcmmode" %>

<wcmmode:edit>

This will be output in EDIT mode.

</wcmmode:edit>

Some suggested me to use HTL, Is there anything other than this solution? because at this point of time it was a much more effort for dev and test and also. So I am looking for an alternate approach that anyone can suggest.

Thanks.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by kautuk_sahni

JAVA:-

    /** @return true if we are in edit mode, otherwise false */

    public final boolean isEditMode() {

        return WCMMode.fromRequest(getRequest()) == WCMMode.EDIT;

    }

JS:-

function CustomWCMMode() {

  this.isPublish = function() {

   return (!ContextHub.Utils.Cookie.exists('wcmmode'));

  }

  this.isEditMode = function() {

   return (ContextHub.Utils.Cookie.getItem('wcmmode') === 'edit');

  }

  this.isPreviewMode = function() {

   return (ContextHub.Utils.Cookie.getItem('wcmmode') === 'preview');

  }

  this.isDesignMode = function() {

   return (ContextHub.Utils.Cookie.getItem('wcmmode') === 'design');

  }

};

var customWcmMode = new CustomWCMMode();

HTL:-

Edit :   ${wcmmode.edit}

This will help you.

~kautuk

5 replies

smacdonald2008
Level 10
July 10, 2017

In AEM 6.2 - HTL is the best practice - JSP and tag libs are not best practice anymore.

July 10, 2017

Thanks for the response smacdonald2008​. But unfortunately at this point of time I can't change the whole code. So I am asking if there is any other way to get this issue resolved, this tags are causing major impact in authoring.

So, I am looking for an alternate approach available if any.

Lokesh_Shivalingaiah
Level 10
July 10, 2017

Hi Mahesh,

Instead of acs commons taglibs, use directly this API in  your JSP and get the runmode

com.day.cq.wcm.api.WCMMode

something like this

<%

boolean isEdit = WCMMode.fromRequest(request) == WCMMode.EDIT;

boolean isDesign = WCMMode.fromRequest(request) == WCMMode.DESIGN;

%><c:set var="isEdit" value="<%= isEdit %>" /><c:set var="isDesign" value="<%= isDesign %>" />

Feike_Visser1
Adobe Employee
Adobe Employee
July 11, 2017

In HTL you can do the following:

<sly data-sly-test="${wcmmode.edit}">

This will be output in EDIT mode.

</sly>

No need for taglibs etc anymore.

kautuk_sahni
Community Manager
kautuk_sahniCommunity ManagerAccepted solution
Community Manager
September 25, 2017

JAVA:-

    /** @return true if we are in edit mode, otherwise false */

    public final boolean isEditMode() {

        return WCMMode.fromRequest(getRequest()) == WCMMode.EDIT;

    }

JS:-

function CustomWCMMode() {

  this.isPublish = function() {

   return (!ContextHub.Utils.Cookie.exists('wcmmode'));

  }

  this.isEditMode = function() {

   return (ContextHub.Utils.Cookie.getItem('wcmmode') === 'edit');

  }

  this.isPreviewMode = function() {

   return (ContextHub.Utils.Cookie.getItem('wcmmode') === 'preview');

  }

  this.isDesignMode = function() {

   return (ContextHub.Utils.Cookie.getItem('wcmmode') === 'design');

  }

};

var customWcmMode = new CustomWCMMode();

HTL:-

Edit :   ${wcmmode.edit}

This will help you.

~kautuk

Kautuk Sahni