Skip to content

Ximdex Basics

Javi Carretero edited this page Apr 3, 2014 · 24 revisions

In order to have a first global idea about how Ximdex CMS works, we describe here a few topics you must know about it.

Ximdex CMS implemets its own MVC architecture


Ximdex CMS has a set of classes and interfaces which together implements the Model-View-Controller software design pattern. The basic architecture is shown in the following image:

[Ximdex CMS MVC Architecture image]

This architecture is based on the Zend framework and in Mojavi3.

Ximdex CMS is based on NodeTypes


All the documents in Ximdex CMS are stored in a tree structure, so we call them nodes. If a node doesn't contain other nodes, it's a terminal node or a leaf node.

Each node has an associated NodeType (see the complete NodeTypes list). That NodeType defines what kind of node we are dealing with.

Ximdex Tree Structure

Ximdex is MVC oriented: Actions on nodes


Each NodeType associates specific actions. This actions are the operations that you can do on your nodes (see the Actions list as reference).

Ximdex Actions

You will find these actions definitions on the actions folder (see code structure for further information).

All the Ximdex's actions are structured in the same way: a main PHP script which controls the action, a Smarty template to show the information to the user and a resource folder where we can store extra files like JS scripts or CSS files.

To learn more about Actions, visit the Documentation.

Ximdex stores all the documents in XML


Ximdex improves the business processes of enterprises and organizations storing in XML all content and documents managed.

XML content

Ximdex builds its documents based on templates


One of the most important features of Ximdex is its template-oriented development. The structure of each document and its elements is completely free. Your choose how the documents' structure it's going to be.

Before you create documents you have to implement a pair of files: a schema and a transformation template.

On the schema you must define all the existing elements that exists on your XML documents and the relations between them. For example, you can define an address book that is built with contact cards, and each contact card has a name, an email and telephone number.

Transformation Templates are used to renderíze our raw XML content into the language we have defined for our website: PHP, HTML, JSP,...

Nowadays, we are using RNG schema for schemas and XSLT for transformation templates.

See here some templates examples.

Ximdex is totally aseptic with your web portal's languages


Ximdex is independent of the language you choose to build your website. Your documents are simple and easy XML formatted, so you decide what transformation you are going to apply. All depends on how you implement your Transformation Templates.

Ximdex's features are expandable with modules


We also develop some modules that extends the Ximdex funcionality. We have public (and free) modules like ximNEWS, ximSYNC and ximTAGS. All of them are released with the Ximdex core and you are able to install them during the installation process.

Also, we have private modules. You can purchase them to increase the Ximdex goodies. Some examples:

  • ximRA: Automatic references from the web for your content. Semantize your documents!
  • ximPUBLISHtools: Reports and graphs to logging and monitorizing your publish process.
  • ximNOTA: Create and store metadata related with your files (images, PDF documents,...).
  • xHawk: .

Take the control of everything with the Control Center


Ximdex provides a Control Center where you can manage all the basic parameters of your website: languages, workflow, roles, users, groups, ...

Ximdex Control Center