Movatterモバイル変換


[0]ホーム

URL:


BloomreachBloomreach
Hippo CMS

Bloomreach Documentation version

Bloomreach.com
Developer Docs /Platform Configuration /Tutorials /Configure Experience Pages

Configure Experience Pages

This feature is available since Bloomreach Experience Manager 14.3.0

Introduction

Goal

Configure a Bloomreach Experience Manager project so that CMS users can create experience pages.

Summary

This tutorial explains how to configure Experience Pages in Bloomreach Experience Manager. After following the steps in the tutorial, CMS users will be able to create and publish basic experience pages containing content of the standard Simple Document content type and containers to which they can add components from the catalog.

Prerequisites

The starting point for the tutorial is a plain vanilla Bloomreach Experience Manager projectcreated using the Maven archetype and with theSimple Content andBanners Essentials featuresadded.

You can use either the standard Essentials Site Skeleton Freemarker-based frontend or one of theSPA frontend demo projects.

Enable Delivery API (When Using SPA Frontend)

If you are using the Freemarker-based frontend, you can skip this step.

If you are using an SPA frontend, make sure your project has theDelivery API enabled.

In theConsole, make sure thehst:rootmount has the property hst:pagemodelapi with the value "resourceapi":

/hst:myproject/hst:hosts/dev-localhost/localhost/hst:root:  jcr:primaryType: hst:mount  hst:homepage: root  hst:mountpoint: /hst:myproject/hst:sites/myproject  hst:pagemodelapi: resourceapi

Create a Content Folder for Experience Pages

First, you will create a dedicated Experience pages folder and link it to the "My Project" channel. This is where the experience pages will live.

In to the CMS, navigate to theContent application.

Inside the "My Project" root folder, create a new folder named "experience pages".

In the Console, navigate to the new folder node /content/documents/myproject/experience-pages.

UnderMixin Types, checkhippostd:xpagefolder to mark the new folder as Experience Page Folder.

If you are using Bloomreach Experience Manager 14.4.0 or later, also check the mixin hippostd:cmxpagefolder to mark the new folder as default Experience Page Folder for Experience Pages created in theExperience manager.

Add a new property hippostd:channelid and set its value to "myproject" to link the Experience Page Folder to the channel.

/experience-pages:  jcr:primaryType: hippostd:folder  jcr:mixinTypes: ['hippo:named', 'hippostd:cmxpagefolder', 'hippostd:xpagefolder',    'hippotranslation:translated', 'mix:versionable']  jcr:uuid: a5d5107b-11d6-42b0-87d1-19a0c5436328  hippo:name: experience pages  hippostd:channelid: myproject  hippostd:foldertype: [new-translated-folder, new-document]  hippotranslation:id: cfd1401b-8e69-42d9-99e7-3e46171e931b  hippotranslation:locale: en
Although outside the scope of this tutorial, it's a good practice to usetemplate querys tocontrol which content types users can create within a folder.

Configure an Experience Page Layout

The next step is to configure an Experience page layout.

In the Console, navigate to /hst:myproject/hst:configurations/myproject.

First, create a child nodehst:xpages of node typehst:xpages. All Experience page layouts will be configured as child nodes of this node.

Then, add a child nodeexperience-page of node typehst:xpage. This will be the Experience page layout and its configuration will look very familiar if you already have experience withHST pages and components.

Add the remaining nodes and properties as shown in the YAML snippet below. As you can see, the Experience page layout looks just like a normal HST page, inheriting the "base" abstract page and defining one container component with one container item component already inside it to render the embedded content.

/hst:myproject/hst:configurations/myproject/hst:xpages:  jcr:primaryType: hst:xpages  /experience-page:    jcr:primaryType: hst:xpage    hst:label: Experience Page    hst:referencecomponent: hst:abstractpages/base    /main:      jcr:primaryType: hst:containercomponent      hst:xtype: HST.vBox      /content:        jcr:primaryType: hst:containeritemcomponent        hst:componentclassname: org.onehippo.cms7.essentials.components.EssentialsContentComponent        hst:label: Content        hst:template: contentpage-main

Configure the Sitemap for Experience Pages

The final step is to define the URLs for the experience pages by configuring the sitemap.

In the Console, navigate to /hst:myproject/hst:configurations/myproject/hst:sitemap.

Create a newhst:sitemap node called experiencepages as in the YAML snippet below:

/hst:myproject/hst:configurations/myproject/hst:sitemap/experiencepages:  jcr:primaryType: hst:sitemapitem  hst:hiddeninchannelmanager: true  hst:relativecontentpath: experience-pages  /_any_.html:    jcr:primaryType: hst:sitemapitem    hst:relativecontentpath: ${parent}/${1}

Note the following:

  • The parentexperiencepages sitemap item is hidden in the Experience manager's sitemap through the property hst:hiddeninchannelmanager.
  • The parentexperiencepages sitemap item is linked to the "experience-pages" Experience page folder.
  • The_any_.html child sitemap item uses the first wildcard value${1} to link to actual experience pages inside the folder.

Your Bloomreach Experience Manager instance is now ready for CMS users to create experience pages!

Create an Experience Page

In the CMS, open the "My Project" channel in theExperience manager.

Click on the +Add button in the top right (do not use theNew option in thePage menu, that's for normal pages). TheNew page form appear on the right side of the screen.

Enter "My Experience Page" in the Page name field. TheURL field will be auto-filled.

In thePage type drowdown, selectSimple Document.

In theLayout template,Experience Page is preselected because it is the only layout that is defined.

In the Page location, the "experience pages" folder is preselected because it's the only Experience pages folder linked to the channel.

Click onCreate.

The next form is that appears lets you enter the "Simple Document" content. Enter "My Experience Page" in theTitle field and fill the Introduction andContent fields.

Click onSave. The new experience page is now loaded in the channel preview.

Open the left sidebar and selectComponents. Add aBanner component to the container on the page and select a banner document to display.

Open thePage menu and choosePublish to publish the experience page.

For more detailed usage instructions see theExperience pages user documentation.

View the Experience Page's Node Structure

In the frontend, navigate to http://localhost:3000/experiencepages/my-experience-page.html to view the published experience page.

At this point, it is interesting to see what the experience page looks like at JCR level.

In the Console, browse to the "live" (hippostd:state: published) variant of the experience page document at /content/documents/myproject/experience-pages/my-experience-page/my-experience-page (see the YAML snippet below).

Note that both the content and the full page configuration are part of the document variant's node structure. The experience page is fully self-contained and can move through the publication workflow as a single unit.

/content/documents/myproject/experience-pages/my-experience-page/my-experience-page:  jcr:primaryType: myproject:contentdocument  jcr:mixinTypes: ['hst:xpagemixin', 'mix:referenceable']  jcr:uuid: 39c19458-54aa-4395-a400-332d80575a36  hippo:availability: [live]  hippo:related___pathreference: []  hippostd:retainable: false  hippostd:state: published  hippostdpubwf:createdBy: admin  hippostdpubwf:creationDate: 2020-09-03T15:34:14.940-07:00  hippostdpubwf:lastModificationDate: 2020-09-03T15:34:48.298-07:00  hippostdpubwf:lastModifiedBy: admin  hippostdpubwf:publicationDate: 2020-09-08T11:14:01.179-07:00  hippotranslation:id: 65af9557-1dfe-460c-a5d6-e4ef8a37a917  hippotranslation:locale: en  myproject:introduction: This is the intro.  myproject:publicationdate: 2020-09-03T15:34:00-07:00  myproject:title: My Experience Page  /myproject:content:    jcr:primaryType: hippostd:html    hippostd:content: <p>This is the content.</p>  /hst:xpage:    jcr:primaryType: hst:xpage    jcr:uuid: 890c8187-54f0-40c2-b98e-ea0eb28c8fb1    hst:pageref: experience-page    /426f817d-200c-4298-8500-57fd704c37fa:      jcr:primaryType: hst:containercomponent      jcr:uuid: 62961c13-b6bd-479d-b7ca-c944e5318a98      hippo:identifier: 07215062-5920-4fe4-9c33-5760d1e6e0e0      hst:lastmodified: 2020-09-03T22:34:48.298Z      /banner:        jcr:primaryType: hst:containeritemcomponent        jcr:uuid: 9a6a21aa-0d70-4e0f-9581-1737cafc65b7        hst:componentdefinition: hst:components/essentials-catalog/banner        hst:parameternames: [document]        hst:parametervalues: [banners/banner1]      /content:        jcr:primaryType: hst:containeritemcomponent        jcr:uuid: 2cf345f4-599b-4d65-8f98-e77ff24f0f90        hst:componentclassname: org.onehippo.cms7.essentials.components.EssentialsContentComponent        hst:label: Content        hst:template: contentpage-main
Did you find this page helpful?
How could this documentation serve you better?
Cheers!
On this page
    Did you find this page helpful?
    How could this documentation serve you better?
    Cheers!

    [8]ページ先頭

    ©2009-2025 Movatter.jp