Home » Guides Beginner Article

MODx: AJAX CMS and PHP Application Framework

4.7/5.0 (3 votes total)

Chris Kamen
August 29, 2006

Chris Kamen
Chris Kamen is a webmaster of Articolando.com, italian article directory, Telotrovo.com italian web directory , and wm of Rilevante.com a Modx site.
Chris Kamen has written 1 articles for JavaScriptSearch.
View all articles by Chris Kamen...

A content management system is a computer software system for organizing and facilitating collaborative creation of documents and other content. A content management system is sometimes a web application used for managing websites and web content, though in many cases, content management systems require special client software for editing and constructing articles.

You can add/edit content, display it in various formats (for example html vs. pdf vs. rss) and usually manage the content of a website with a cms.
Some definitions, or better, some of the feature lists of more popular cms' go way beyond management of content, getting into actual site building, adding of modules like polls, newsletter sign-ups etc.
cms does not mean site creation but site content management.

To fully understand what it is a CMS does, we have to first define a) what it is we are referring to when we talk about content b) what it is we understand under its management and c) what do we mean by a system.
Content is in essence, any type or 'unit' of digital information. It can be text, images, graphics, video, sound, documents, records etc - or in other words - anything that is likely to be managed in an electronic format.
Content Management is effectively the management of the content described above, by combining rules, process and/or workflows in such a way that its electronic storage is deemed to be 'managed' rather than 'un-managed'.

The system itself is definable as a tool or combination or tools that facilitate the efficient and effective production of the desired 'output' using the managed content.

"A CMS is a tool that enables a variety of (centralised) technical and (de-centralised) non technical staff to create, edit, manage and finally publish (in a number of formats) a variety of content (such as text, graphics, video, documents etc), whilst being constrained by a centralised set of rules, process and workflows that ensure coherent, validated electronic content."


MODx is an open source PHP Application Framework that helps you take control of your online content.
It empowers its users to build engaging "Web 2.0" sites today, with its pre-integrated Scriptaculous and Prototype libraries.
Not only does MODx help you build sites quickly, but it also is both robust and simple.

Who uses MODx?
Bloggers, developers and other members of the digerati looking for more, MODx can help take it to the next level.
MODx makes working with the tools du jour easy, be it Ajax or the most highly search optimized CSS/XHTML sites.
MODx allows you to focus on usability, design, content and building great sites, not on the tools that build them.

MODx helps you build sites that perform well in search engines – in fact, we think it's a great SEO CMS.
Typically, sites with minimal code/markup compared to the actual words on the page fare better in the search game. Aguments with lots of good evidence behind them abound for that lean, semantic XHTML/CSS sites gives the words more weight or "relevancy" (a very important SEO term) compared to sites that are built on top of bloated structures with loads of non-semantic markup (typically, table-based sites).
MODx makes creating sites that search engines can love almost automatic. What you put in it and however you want it to look is what you get out of MODx.
Write XHTML code that puts the important content as close as possible to the body tag

We don't force a cumbersome template language or "block" or "3-column" or "channel" or "insert-favorite-term-here" template system. In fact, creating a template in MODx is as simple as taking some static XHTML (or HTML chock full of tables even!) and replacing a few key areas with things like [*pagetitle*], [*longtitle*], [*description*], [*content*], [*sidebar*], [[Menu]] and {{footer}}. That means you can build a super-clean XHMTL/CSS driven site that uses the minimum amount of code so search engines have nothing but your content to think about.
Every MODx page has several bits of "metadata" that are automatically available to every page.
The way your browser's URLs return are also important in the Search game. Google arbitrarily refuses to index URLs containing "?id=". Many argue about how URLs should be written, so that's why MODx and mod_rewrite let you do it whichever way you prefer. You can create URLs manually or dynamically in several formats:

* http://mysite.com/p1234.html (or .cgi or .jsp or .aspx or .php or .cfm or .anythingyouwant)
* http://mysite.com/1234 (no extension)
* http://mysite.com/page-name.html (manually created)
* http://mysite.com/page_name.html (automatically created from the page title)
* http://mysite.com/some/subfolder/pagename.html (uses site hierarchy and allows for duplicate aliases in different pages)
* any combination of the above

Meta Content Management (including Keywords)

The MODx Ajax CMS and PHP Application Framework brings plenty to the table, with more on the way, including:

* Strong Web Standards Support – MODx does not force you into awkward and confusing blocks-this or channels-that templating engines or layout rules. You can build XHTML 1.1 Strict sites just as easily as a tag-soup laden table layout. MODx is the dream CMS for CSS designers.
* Web 2.0 Features (yes, that means Ajax) – MODx is the first free PHP CMS to offer an API that fully supports Web 2.0 Ajax technology thanks to script.aculo.us. Expect to see this grow more and more into our manager over time, but you can make use of it today in your own custom applications including live search, web effects, Ajax communications and more.
* PHP Application Framework – a flexible API and a event model that allows to override how the core behaves means that you get both tremendous flexibility, but also the ability to customize the solution to your needs and a simple upgrade path.
* Works in your favorite browser – and yes that means Safari! You can manage your websites from anywhere in the world with an internet connection and IE 5.5+, Safari 1.3+, Firefox 1.0+.
* Graphical Installer – it's now easier for less experienced users to get up and running fast with a step-by-stop online installer.
* Improved Rich Text Editors – All MODx RTEs are optional plug-ins, making for a smaller base download. FCKeditor ships out of the box. Adding new RTEs to MODx is simple with TinyMCE available now as an optional download and Textile, Markdown and widgEditors on their way.
* Better handling of aliases and menu indexes – Search Engine Friendly aliases are automatically created from the page titles and the system will check for alias conflicts before saving a page. Reordering your pages with Ajax-enabled drag and drop indexing.
* Robust CSS Menu Builder – Menus made from ULs are ready to go out of the box. Whether you want something simple as a bulleted list for a sidebar or as complex as Big John's deluxe menus complete with CSS "hover zones", MODx has you covered.
* Improved Meta-tag and keywords controls – consider MODx your #1 free Search Engine Optimization CMS. MODx helps your SEO efforts by making it easier to adjust meta-content of your site on a per-page basis.
* Separate Manager and Web User sessions – simplify your testing and development workflow.
* Improved Document Parser and Error handling – build better custom applications with a more robust API and greatly improved error handling and reporting inside the manager.
* Custom Content Types – use MODx documents to manage your linked Style Sheets, Images and Javascript. Transform them into XML, PDF, Excel or Word documents with snippets and this handy new feature.
* Bug fixes and usability tweaks – a more polished and robust product, bringing us to the home stretch to the official project launch and 1.0 release.

Finally, MODx also provides several ways to manage the meta content on every page. You can use {{chunks]] to create sets of meta content, or it's built-in (but optional) meta content management system.
As an editor there are two ways to publish content:

* in the main Content Area, and
* in other areas called Template Variables (traditionally side blocks, but they can be placed anywhere on the webpage).

There are two important feature of MODx that you you need know about:

* Chunks - these are re-usable pieces of HTML content. You can place a Chunk in the main content area or in a template variable. For example, you could put your contact details into a Chunk and then you can publish them in different places on the your website without re-typing the details.
* Snippets - these are small functional items, such as menus and search bars. These can be published in the template, a document's main content area, a chunk or in a template variable.

A Chunk or Snippet can be placed directly into the template by your web developer, or inserted by you into the Content Area or a Template Variable.

* The template contains the main framework of the webpage. Your web developer may choose to have content that appears on every page in the site. In this example the header and logo are fixed in the template.
* The template contains the Content Area, identified in pink, and inserted into the template with the syntax [*content*]. This content is taken from the Document as edited in the Manager.
* The template also contains MODx tags that insert Snippets. In this example there are two menu Snippets, identified in blue and inserted with the following syntax [[SnippetName]]
* The template contains Template Variables that allow the Editor to insert text, images and other content items outside of the main Content Area. These are identified in green and are inserted in the template with the following syntax [*TemplateVariableName*]
* The Editor can insert pre-set pieces of text or html into the Content Area or a Template Variable by using Chunks. In this example there are two Chunks identified in red. Chunks are inserted by the editor by typing into the Content Area or a Template Variable space.

Add commentAdd comment (Comments: 0)  



Related Resources

Other Resources