Chapter details

Pages are beans and, like all beans, can be uniquely identified by a system id. Each page belongs to a certain website. Along with the general properties like name, description, etc. , all pages have a region. The region specifies the layout of the page. Each region is a tree data structure and contains other regions. One can say that the page contains the root region of the regions tree. Each region node (called just region) has in-degree of 1(except the root) and out-degree of five at most. Child nodes are distinguished as “north”, “west”, “center”, “east” and “south”. Their type is important for their visualization. Specific CSS styles may be attached to each region and applied to this region only upon rendering. The leaf region nodes may contain an ordered list of widgets. Different CSS styles may be applied to each widget in the region as well. //TODO Picture here.

There are two kinds of pages in i-Publisher – common and template. The common page is the ordinary website page. The template page (or just template) is a template for creating new pages. It consists of placeholders (template widgets) designed to contain certain types of widgets.

Each common page may have a master page. The master page is an ordinary page whose region (regions tree) acts as a root for the child's page region. The master page's region is in fact a subtree of the child's region. In this case, the child's layout consists only of the regions that do not belong to the master. Only these regions are stored in the database. When the page bean is requested, first the layout of the master is loaded and then the page specific regions are attached to the corresponding master page regions. Later, when we talk about flat page we will be referencing a page without a master. The templates are flat pages (although this is not exactly true as we will see in //TODO template widgets metadata chapter)

Each page should implement the following interfaces:

should extend the following classes:

and should be adaptable to the following interfaces:

 

There are some collective services to manage the pages:

There are some helper services that can be called to manage common page properties:

 

For the template pages, there is a special ITemplateService to manage their specific actions

 

Entities connected with pages:

 

Database representation:

jQuery( "a.lightbox" ).lightBox({ imageLoading: '/770f6650-cf0c-11e0-9572-0800200c9a66/css/ceeec673-746a-4f40-ae14-a165e11994a8.csss/ui/lightbox/images/lightbox-ico-loading.gif', imageBtnPrev: '/770f6650-cf0c-11e0-9572-0800200c9a66/css/ceeec673-746a-4f40-ae14-a165e11994a8.csss/ui/lightbox/images/lightbox-btn-prev.gif', imageBtnNext: '/770f6650-cf0c-11e0-9572-0800200c9a66/css/ceeec673-746a-4f40-ae14-a165e11994a8.csss/ui/lightbox/images/lightbox-btn-next.gif', imageBtnClose: '/770f6650-cf0c-11e0-9572-0800200c9a66/css/ceeec673-746a-4f40-ae14-a165e11994a8.csss/ui/lightbox/images/lightbox-btn-close.gif', imageBlank: '/770f6650-cf0c-11e0-9572-0800200c9a66/css/ceeec673-746a-4f40-ae14-a165e11994a8.csss/ui/lightbox/images/lightbox-blank.gif', fixedNavigation: true, txtImage: '', txtOf: '/' });