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.

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¶
- Navigate to the location where you want to create the Smart Page
- Click "New" and select "Smart Page" from the object types list
- Provide a name for the Smart Page
- 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:-
PageBuilder mode used for creating the current page's version (either "source code" or "smart editor")
-
The list of static "css" page's dependecies dynamically determined on the basis of the widgets used to build the page
-
The list of static "javascript" page's dependecies dynamically determined on the basis of the widgets used to build the page
-
The number of page's columns
-
The identifier of the library of widgets used to build the page
-
The ID of the page template (if any) associated to the view
-
Next Steps¶
- Smart Pages Editor - Learn how to design a Smart Page
- Learn about Smart View Overrides to customize Smart View behavior
- Explore Tile Communication for inter-tile communication
- See WebForms Integration for embedding forms in Smart Pages