Solved
Is there a way to get the page properties of absolute parent using Sightly?
No text available
Yeah sure, you can use sling model to get the parent Page object, and then use the page API from sightly to obtain such values.
I am using constructor injection as the example below as this strategy can also reduce memory consumption of your application, https://sourcedcode.com/blog/aem/aem-sling-model-field-injection-vs-constructor-injection-memory-consumption
Sightly:
<sly data-sly-use.mycomponent="com.mysite.models.components.MyComponent"></sly>
${mycomponent.properties['jcr:title']}Sling Model:
import com.day.cq.wcm.api.Page;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.models.annotations.DefaultInjectionStrategy;
import org.apache.sling.models.annotations.Model;
import org.apache.sling.models.annotations.injectorspecific.ScriptVariable;
import javax.inject.Inject;
import javax.inject.Named;
@Model(adaptables = Resource.class,
defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
public class MyComponent {
private Page absParentPage;
@Inject
public MyComponent(@ScriptVariable @Named("currentPage") final Page currentPage) {
Page parentPage = currentPage.getAbsoluteParent(2);
if (parentPage != null) {
absParentPage = parentPage;
}
}
public Page getAbsParentPage() {
return absParentPage;
}
}
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.