dw.experience
Class Page
Object
dw.experience.Page
This class represents a page designer managed page. A page comprises of multiple regions that hold components, which themselves again can have regions holding components, i.e. spanning a hierarchical tree of components. Using the PageMgr.renderPage(String, String) a page can be rendered. As such page implements a render function for creating render output the render function of the page itself will also want to access its various properties like the SEO title etc.
Properties
aspectTypeID  :  String  (Read Only)
Get the aspect type of the page. If an aspect type is set for this page (and is found in the deployed code version), then the page is treated as dynamic page during rendering, also see PageMgr.renderPage(String, Map, String).
description  :  String  (Read Only)
The description of this page.
ID  :  String  (Read Only)
The id of this page.
name  :  String  (Read Only)
The name of this page.
pageDescription  :  String  (Read Only)
The SEO description of this page.
pageKeywords  :  String  (Read Only)
The SEO keywords of this page.
pageTitle  :  String  (Read Only)
The SEO title of this page.
searchWords  :  String  (Read Only)
The search words of the page used for the search index.
typeID  :  String  (Read Only)
The type id of this page.
visible  :  boolean  (Read Only)
Returns true if the page is currently visible which is the case if:
  • page is published
  • the page is set to visible in the current locale
  • all visibility rules apply, requiring that
    • schedule matches
    • customer group matches
If any of these is not the case then false will be returned.

As visibility is driven by the merchant configured dynamic visibility rules, e.g. scheduling and custom segmentation, this call should NOT happen in a pagecached context outside of the processing induced by PageMgr.renderPage(String, String).
Use hasVisibilityRules() prior to calling this method in order to check for the existence of visibility rules. If there are visibility rules then do not apply pagecaching. Otherwise the visibility decision making would end up in the pagecache and any subsequent call would just return from the pagecache instead of performing the isVisible() check again as desired.

   ...
   var page = PageMgr.getPage(pageID);
   if(page.hasVisibilityRules())
   {
      // pagecaching is NOT ok here
      if(page.isVisible())
      {
         response.writer.print(PageMgr.renderPage(pageID, {});
      }
   }
   else
   {
       // pagecaching is ok here, but requires a pagecache refresh if merchants start adding visibility rules to the page
   }
   ...
 

Constructor Summary
This class does not have a constructor, so you cannot create it directly.
Method Summary
getAspectTypeID() : String
Get the aspect type of the page.
getAttribute(attributeID : String) : Object
Returns the raw attribute value identified by the specified attribute id.
getDescription() : String
Returns the description of this page.
getID() : String
Returns the id of this page.
getName() : String
Returns the name of this page.
getPageDescription() : String
Returns the SEO description of this page.
getPageKeywords() : String
Returns the SEO keywords of this page.
getPageTitle() : String
Returns the SEO title of this page.
getRegion(id : String) : Region
Returns the page region that matches the given id.
getSearchWords() : String
Returns the search words of the page used for the search index.
getTypeID() : String
Returns the type id of this page.
hasVisibilityRules() : boolean
Returns true if the page has visibility rules (scheduling, customer groups) applied, otherwise false.
isVisible() : boolean
Returns true if the page is currently visible which is the case if:
  • page is published
  • the page is set to visible in the current locale
  • all visibility rules apply, requiring that
    • schedule matches
    • customer group matches
If any of these is not the case then false will be returned.
Methods inherited from class Object
Method Detail
getAspectTypeID
getAspectTypeID() : String
Get the aspect type of the page. If an aspect type is set for this page (and is found in the deployed code version), then the page is treated as dynamic page during rendering, also see PageMgr.renderPage(String, Map, String).
Returns:
the ID of the page's aspect type

getAttribute
getAttribute(attributeID : String) : Object
Returns the raw attribute value identified by the specified attribute id. By raw attribute value we denote the value as provided by the content editor when setting up this page. This value might be fundamentally different from the value as provided through the content dictionary when the render function of the page is invoked. This is due to the fact that during rendering the raw value is processed before being stored in the content dictionary - for example link placeholders in markup text are resolved to real URLs as part of such processing. Accessing the raw value can be helpful if render logic of the page needs to operate on these unprocessed values.
Parameters:
attributeID - the id of the desired attribute
Returns:
the value of the desired attribute, or null if not found

getDescription
getDescription() : String
Returns the description of this page.
Returns:
the page description

getID
getID() : String
Returns the id of this page.
Returns:
the page id

getName
getName() : String
Returns the name of this page.
Returns:
the page name

getPageDescription
getPageDescription() : String
Returns the SEO description of this page.
Returns:
the page SEO description

getPageKeywords
getPageKeywords() : String
Returns the SEO keywords of this page.
Returns:
the page SEO keywords

getPageTitle
getPageTitle() : String
Returns the SEO title of this page.
Returns:
the page SEO title

getRegion
getRegion(id : String) : Region
Returns the page region that matches the given id.
Parameters:
id - the id of the desired page region
Returns:
the region, or null if not found.

getSearchWords
getSearchWords() : String
Returns the search words of the page used for the search index.
Returns:
the page search words

getTypeID
getTypeID() : String
Returns the type id of this page.
Returns:
the page type id

hasVisibilityRules
hasVisibilityRules() : boolean
Returns true if the page has visibility rules (scheduling, customer groups) applied, otherwise false. Use this method prior to isVisible(), so you do not call the latter in a pagecached context.
Returns:
true if the page has visibility rules (scheduling, customer groups) applied, otherwise false.

isVisible
isVisible() : boolean
Returns true if the page is currently visible which is the case if:
  • page is published
  • the page is set to visible in the current locale
  • all visibility rules apply, requiring that
    • schedule matches
    • customer group matches
If any of these is not the case then false will be returned.

As visibility is driven by the merchant configured dynamic visibility rules, e.g. scheduling and custom segmentation, this call should NOT happen in a pagecached context outside of the processing induced by PageMgr.renderPage(String, String).
Use hasVisibilityRules() prior to calling this method in order to check for the existence of visibility rules. If there are visibility rules then do not apply pagecaching. Otherwise the visibility decision making would end up in the pagecache and any subsequent call would just return from the pagecache instead of performing the isVisible() check again as desired.

   ...
   var page = PageMgr.getPage(pageID);
   if(page.hasVisibilityRules())
   {
      // pagecaching is NOT ok here
      if(page.isVisible())
      {
         response.writer.print(PageMgr.renderPage(pageID, {});
      }
   }
   else
   {
       // pagecaching is ok here, but requires a pagecache refresh if merchants start adding visibility rules to the page
   }
   ...
 

Returns:
true if the page is currently visible (published, visible in the current locale, and visibility rules apply), otherwise false (unpublished and/or visibility rules don't apply)
See Also:

X Privacy Update: We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used. By continuing to use this site you are giving us your consent to do this. Privacy Policy.