CMS - Content Management System Module


CMS module has the main goal to abstract the interaction between a DIF application and a Content Management System.

Since the interaction is product independent, the CMS module covers the main and general funcionalities of a CMS.


The CMS Module functional design has two main components: the Node and the Content Item.

The Node can be viewed as a directory, that can have child nodes and content items. Nodes are organized in an hierarchical way.

A CMS system can have one or more root nodes. A root node is a node with no parent node. All non root nodes must have one, and only one, parent node.

A ContentItem is a content unit. All content items have one parent node.

Another key functional characteristic is the access control to nodes and content items. Access control is defined by ACLs - Access Control List.

ACLs can be defined by node or by content item, and can be applied to Users or User Groups.

Every content item or node are only accessible to users, or groups of users, that are identified in its ACL. In the absence of an ACL permission, hierarchical permissions will be applied. Nodes can also be public, in that case, all content items and child nodes are accessible to every user in the system.

Class Model

The class model of CMS Module is described in detail here.


The Operations of CMS Module defined in IContentManager are described in detail here.


The complete CMS Module API can be inspected here.

The IContentManager interface can be inspected here.

In depth...

The user guide shows examples on how to use the CMS Module API.