Overview

This introduction gives an overview of the key Magnolia concepts, and is a good starting read, no matter what your role or usage of Magnolia is.

What is Magnolia ?

Magnolia is a web content management system, which allows users to edit content and publish it on web-based media. Magnolia is implemented in Java and stores the data in a way that effectively separates content from its presentation. The layout is realized by templates, which are used to compose pieces of decorated text and generate the actual web pages.

In Magnolia, the task of adding and managing content is separated from that of defining the design of the website. Editors can focus on the content while designers can focus on the layout.In Magnolia, the task of adding and managing content is separated from that of defining the design of the website. Editors can focus on the content while designers can focus on the layout.

What Magnolia is not

Magnolia is not a framework to build web applications like for example JSF is. Nevertheless Magnolia can be used to manage other data by using its interface. For example you can manage your products. This data can then be reused to create content of the pages.

How Magnolia works

Storage / JCR

Magnolia stores all its data (website content, but also configuration, for instance) in JCR. JCR stands for Java Content Repository and is one of the standards defined via Java standardization process. JCR provides set of standard Java APIs used to store, search and retrieve hierarchical data. Wikipedia has a decent article and links about JCR.

A website's content is hierarchical: pages have subpages, and each contains paragraphs. Each paragraph consists of titles, main content, and can have images or links. This simple fact together with the power of JCR repository allows for easy creation of very sophisticated sites using Magnolia.

Admin Central

Admin Central, showing the website's tree structure and the contextual menu.The main entry point for using Magnolia is the "Admin Central": much like a file navigator, items in the tree view can be double-clicked to be opened, and a right-click will open a context menu providing more actions. The left side menu provides links to several workspaces ("Website", "Documents", "Configuration", ...) as well as shortcuts for pre-defined locations. (specific configuration items, tools, ...) Items in the .

Feel free to visit our demo site to try this out.

Content Editing

Editing a page's content using the built-in rich text editor.If you open a page for editing you will see green edit bars. The main bar is the one at the top of the page. This main bar can be used to go back to the Admin Central or to edit the page's properties like its title. In addition there is a edit bar per paragraph with edit, delete and move buttons. For moving a paragraph you just click on the move button and then drop the paragraph on an edit bar of another paragraph. The bar with the new button is used to create a new paragraph. The paragraph's type can be selected from preconfigured list.

Templating

Pages and paragraphs in Magnolia are based on templates: this helps separating content and layout. The most common templating language is JSP. These templates are not restricted by Magnolia, and can leverage the provided tag libraries. Support for other templating languages is provided out of the box, and others can be supported too.

A sample dialog.Every paragraph has an associated dialog to edit its data. A dialog is created by assembling configurable controls. An extensive set of controls is provided with Magnolia. (rich text editor, page linking, file upload, ...) Custom controls can also be implemented and used in dialogs.

Configuration

The configuration tree, here showing the cache configuration. Clicking on the configuration menu item shows the configuration hierarchy in a tree view. Most of Magnolia's configuration happens in this tree. (common examples are templates, caching, subscribers, ...)

Security

Magnolia has a role-based security mechanism and supports user groups. Security can be applied at request level (URL-based security) and at content level. Content level security can be applied on any part of the JCR repository. (including configuration)

Author and Public Instances

A basic Magnolia setup consists of two instances: content is generally edited on the "author" instance and published to the "public" instance. Typically, these instances are running on separate application servers, but this is not mandatory.

"Activation" is the process of publishing content from one instance to the other. One "activation" can publish content to multiple instances, thus providing support for load-balancing, fail-over, publishing different sites on different servers, ...

A "subscriber" is an instance of Magnolia configured to receive content from an author instance through activation.

Modules

Magnolia provides a module mechanism which allows developers to add functionality: several are delivered with Magnolia (Cache, DMS, Mail, Workflow, Samples, ...), more are available for possible inclusion (Data, Forum, Scheduler, ...), and you're also encouraged to build your own. More details can be found in the modules section.