MidCOM

From MidgardWiki

Jump to: navigation, search

MidCOM (short for "Midgard Component Framework") is an Open Source Content Management Framework written in PHP. It provides a number of services for website developers and a module system on which combineable and reusable (MidCOM Components) can be built.

Currently, a major rewrite of MidCOM (dubbed MidCOM 3) is in the works. It will be released as part of the Midgard "Vinland" series.

Contents

Main Features

MidCOM provides a number of services covering areaes like authentication, user notification and revision control. For content editors, WYSIWYG editors like TinyMCE and FCKEditor and jQuery-based Datamanager2 widgets facilitate content editing on the actual website. Many more MidCOM Features are described in a separate article.

MidCOM Components

About 100 readymade MidCOM Components for many common CMS and Web application tasks is available as packages in the MidCOM PEAR Channel (See List of MidCOM Components for details). To use a Component in a site, it has to be assigned to a Topic (by creating or editing it and selecting the component from the dropdown menu). It's behavior, data structures and output can be configured in a number of ways

Administration

Most administration tasks are handled from the MidCOM Toolbars, which dynamically load a number of plugins to control different aspects of the MidCOM system, for example:

midcom.admin.babel - Localization of system messages
midcom.admin.folder - Topic management
midcom.admin.settings - Site-wide settings
midgard.admin.acl - MidCOM ACL system
no.bergfald.rcs - RCS system

For MidCOM versions starting at 2.8., Asgard, provided by midgard.admin.asgard unifies many of these admin features and provides a generic MidCOM object editor.

Configuration

MidCOM site configuration is saved in the Page Element code-init. Many of the config options are also avccessible via the Toolbar. See MidCOM Configuration for an overview of config options.

The components can be configured per Sitegroup in a special Snippetdir called sitegroup-config. To configure a Component, a Subsnippetdir with the name of the component has to be created. Alternatively, global component configuration can be done in Asgard. Configuration on a per-Topic-level can be done in a MidCOM Toolbar. See MidCOM Component Configuration for details.

Development

MidCOM was originally developed separate from the Midgard core, but is now included in the standard distribution. Before MidCOM 2.0, MidCOM's functionality was stored in the Midgard MySQL Database, starting from version 2.0, it is stored in the file system. midcom-fs is the designation for current versions, as opposed to midcom-db, which refers to 1.x versions.

MidCOM contains a number of additions to the standard Midgard functionality. For example, the Style Engine expands the functionality offered by Midgard quite a bit (Templating in MidCOM offers an overview of the possibilities). MidCOM URL Methods allow you to embed commands into request URLs. MidCOM provides a Database Abstraction Layer that wraps MgdSchema and makes it available to Component developers.

See also:

MidCOM Constants
MidCOM PHP Superglobal
MidCOM API

Installation

Starting with MidCOM 2.6.0, the framework and its components are available as PEAR packages to ease installation and tracking dependencies. The installation can be triggered from Datagard, additional packages can be installed from the command line. To enable MidCOM for a specific website, one can create a new Host with Midgard Sitewizard or modify the respective Page Elements for an existing Host. If you choose the manual installation, the MidCOM root Topic must be enabled in a Host's Root Page, usually in code-global or code-init. Furthermore, a link to the static directory, which is usually called midcom-static, must be acessible to Apache from the Virtual Host's DocumentRoot.

See also Troubleshooting for typical installation problems

Weblinks

Content production with MidCOM
http://www.midgard-project.org/documentation/midcom/ - The main MidCOM documentation page
http://midcomapi.contentcontrol-berlin.de - MidCOM API documentation
http://ragnaroek.pear.midgard-project.org/ - MidCOM PEAR channel
http://trac.midgard-project.org - developer services (current)
http://gforge.nehmer.net/projects/midcom/ - developer services (2.6 era)
Personal tools