Expand my Community achievements bar.

SOLVED

Getting currentPage as the template page(/conf/projectname/settings/wcm/templates/templatename) and not the page I am browsing(/content/projectname/en/homePage)

Avatar

Level 1

I have created a custom container component which extends the core container component with following code in its overlayed HTL(this component is exactly the same as the one we get in AEM project archetype except this modified HTL):

 

 

<sly data-sly-use.customContainer="com.trainingProject.core.models.CustomContainer">
     <sly data-sly-test.hasFragment="${customContainer.fragmentPresent}">${customContainer.htmlSrc @CONTEXT='html'}</sly>
</sly>
<sly data-sly-test=${!hasFragment} data-sly-use.container="com.adobe.cq.wcm.core.components.models.LayoutContainer">
    <sly data-sly-test.responsive="${container.layout == 'RESPONSIVE_GRID'}"
         data-sly-use.responsiveGridTemplate="responsiveGrid.html"
         data-sly-call="${responsiveGridTemplate.responsiveGrid @ container=container}"></sly>
    <sly data-sly-test.simple="${!responsive}"
         data-sly-use.simpleTemplate="simple.html"
         data-sly-call="${simpleTemplate.simple @ container=container}"></sly>
</sly>

 

 

This Custom container component is authored on template structure of an editable template.

Whenever a component (say component X) is dragged-dropped inside this custom container, and we open the page created using this template on browser, the sling model of Component X gets currentPage (injected using @ScriptVariable private Page currentPage as the template page and not the actual page we are browsing.

 

However, the same component X authored on the same template but outside of the custom container component gives the correct currentPage(the one we are browsing). It render all other components(eg text, accordion etc) fine which do not have a dependency on currentPage to render the data.

 

There seems to be something wrong with the custom container as the same component X works fine with the OOTB core container component.

 

I am not sure why are we not able to get the correct currentPage(the one we are browsing) using custom container.
Any help is appreciated

I am using AEM could service sdk and java 11

Thanks!

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

@robinbhatmerkle I tried to reproduce the case you mentioned by duplicating the container and having a sample component dragged in it. The component I created uses the same annotation as described by you and I get the page path only!!

May be you can share you custom container code to get more details about it.

Best regards,
Himanshu Singhal

View solution in original post

2 Replies

Avatar

Correct answer by
Community Advisor

@robinbhatmerkle I tried to reproduce the case you mentioned by duplicating the container and having a sample component dragged in it. The component I created uses the same annotation as described by you and I get the page path only!!

May be you can share you custom container code to get more details about it.

Best regards,
Himanshu Singhal

Avatar

Employee Advisor

hi @robinbhatmerkle ,


Even I tried as @Himanshu_Singhal and I am also getting page path, can you share your code so that we can dig better to help you with resolving the issue.

Thanks.