Skip to content
PDF

The Smart Pages Object

Overview

The Smart Page is a new Content Server object type that can be used to create presentation components. Smart Pages leverage the Content Script template engine's capabilities to create UI elements of any sort by adopting a rigorous MVC (Model-View-Controller) design pattern.

Smart Page Object Icon

Creating a Smart Page

Prerequisites

Before creating a Smart Page, ensure that:

  • Module Suite is installed and activated
  • Smart Pages extension is enabled
  • You have appropriate permissions to create Content Script and Smart Page objects

Creation Steps

  1. Navigate to the location where you want to create the Smart Page
  2. Click "New" and select "Smart Page" from the object types list
  3. Provide a name for the Smart Page
  4. Click "Create"

Understanding the Smart Page object

Smart Page: The MVC Pattern

Below is a conceptual diagram illustrating the Model-View-Controller (MVC) framework as applied to Smart Pages:

flowchart LR
    Controller["Content Script<br/>(Controller)"]
    Model["Data<br/>(Model)"]
    View["Smart Page<br/>(View)"]

    Controller -- "prepares data" --> Model
    Model -- "passed as input" --> View
    Controller -- "renders" --> View

    style Controller fill:#D50000,color:#ffffff,stroke:#B71C1C
    style Model fill:#ffffff,stroke:#ccc
    style View fill:#068fd7,color:#ffffff,stroke:#01579B
  • Smart Page (View): Implements the presentation, using the data provided.
  • Content Script (Controller): Prepares and supplies data (the model), and controls the rendering logic.
  • Data (Model): Passed from the Content Script to the Smart Page as input.

Smart Page pages are much more than simple html-views. They are active objects that can be used to create very complex applications. In order to implement all their additional functionalities, Smart Pages pages are decorated with a set of information used by the Smart Page framework for determining how to render, and how to display the model-data within them.

In the image above a simplified representation of the information that constitutes a Smart Page page is highlighted:

  • (A) View's versions: Smart Page pages are versioned document-class objects. Each version is, in the very end, nothing but a Velocity template document (HTML code + template expressions).

  • (B) For each version created with the PageBuilder's smart-editor the Smart Page framework archives the smart-editor view's "model" into an internal database (a Json file within the page). The smart-editor view's model is constituted by the list of the configurations used for each widget that build the page.

  • (C) Page's properties: Smart Page pages are associated with a set of predefined properties persisted as the object's extended data. These properties are related just to the last page's version.
    The page's predefined properties are:

    1. PageBuilder mode used for creating the current page's version (either "source code" or "smart editor")

    2. The list of static "css" page's dependecies dynamically determined on the basis of the widgets used to build the page

    3. The list of static "javascript" page's dependecies dynamically determined on the basis of the widgets used to build the page

    4. The number of page's columns

    5. The identifier of the library of widgets used to build the page

    6. The ID of the page template (if any) associated to the view

Next Steps