Skip to main content
Level 4
Dec 24, 2018 3:36 PM UTC
Solved

How can I create new CQ Page programmatically?

Hello Everyone,

Can I ask a question ?

How can I create new CQ Page programmatically?

For example, I want to create new CQ page(menu1, menu2, menu3,…) in Menu folder programmatically.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
chung_yonge1684Accepted solution
Level 4
Dec 24, 2018 7:58 PM UTC

private void createPage(ResourceResolver resolver, String shipCode) throws Exception {

        String path      =  "/content/test" ;

        String pageName  = "samplepage";

        String pageTitle = "Sample page";

        String template  = "/apps/.../templates/test";

        String renderer  = "/apps/.../components/structure/test";

        Page prodPage = null;

        PageManager pageManager = resolver.adaptTo(PageManager.class);

        prodPage = pageManager.create(path, pageName, template, pageTitle);

        Node pageNode = prodPage.adaptTo(Node.class);

        Node jcrNode = null;

        if (prodPage.hasContent()) {

            jcrNode = prodPage.getContentResource().adaptTo(Node.class);

        } else {

            jcrNode = pageNode.addNode("jcr:content", "cq:PageContent");

        }

        jcrNode.setProperty("sling:resourceType", renderer);

    }

4 replies

chung_yonge1684AuthorAccepted solution
Level 4
Dec 24, 2018 7:58 PM UTC

private void createPage(ResourceResolver resolver, String shipCode) throws Exception {

        String path      =  "/content/test" ;

        String pageName  = "samplepage";

        String pageTitle = "Sample page";

        String template  = "/apps/.../templates/test";

        String renderer  = "/apps/.../components/structure/test";

        Page prodPage = null;

        PageManager pageManager = resolver.adaptTo(PageManager.class);

        prodPage = pageManager.create(path, pageName, template, pageTitle);

        Node pageNode = prodPage.adaptTo(Node.class);

        Node jcrNode = null;

        if (prodPage.hasContent()) {

            jcrNode = prodPage.getContentResource().adaptTo(Node.class);

        } else {

            jcrNode = pageNode.addNode("jcr:content", "cq:PageContent");

        }

        jcrNode.setProperty("sling:resourceType", renderer);

    }

Translate
Ratna_Kumar
Level 10
Dec 26, 2018 8:59 AM UTC

Hi,

We have a HELPX article on this topic.

See this: Adobe Experience Manager Help | Creating an Experience Manager 6.3 Page using the Page Manager API

Thanks,

Ratna

Translate
MandaPavanKumar
Level 2
Dec 15, 2021 5:20 AM UTC

Hi Ratna Kumar,

    The link which you had mentioned is showing 404 error. Could you please help me with the correct link please

Thanks,

Pavan

Translate
Level 4
Dec 26, 2018 5:56 PM UTC

Thank you very much.

Translate