내 커뮤니티 업적 표시줄을 확대합니다.

Mark Solution

활동이 없어 이 대화는 잠겼습니다. 새 게시물을 작성해 주세요.

해결됨

WCMMODE Tag deprecation in AEM 6.2 upgrade

Avatar

Level 1

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.

1 채택된 해결책 개

Avatar

정확한 답변 작성자:
Administrator

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

원본 게시물의 솔루션 보기

5 답변 개

Avatar

Level 10

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

Avatar

Level 1

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.

Avatar

Level 10

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 %>" />

Avatar

Employee

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.

Avatar

정확한 답변 작성자:
Administrator

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