Movable Type 5: An Introduction

January 2010

I’ve been a longtime user of MT, since version 3.2, and have followed its evolution closely from the inside out. When the beta-test and release-candidate versions of MT5 were released for public testing, I jumped on them and got my hands as dirty as I could, cloning my own MT4-driven site and testing it out in a separate MT5 instance (almost everything, plugins included, worked as-is).

With each set of changes, I’ve also identified a couple of gotchas and potential problems that new users will want to keep an eye out for, and that any current MT user will want to be mindful of when they upgrade.

Pages And Sites: Getting (Re)Organized

The single biggest outward change to Movable Type is a reworking of how blogs are organized. Movable Type 4 introduced the ability to create and edit individual HTML pages in a folder hierarchy, each styled with the same templates used to create one’s blog.

With MT5, this is paired with a new meta-organizational feature: the ability to create "websites" as an adjunct to one’s blog. A website contains a page hierarchy, but is kept as physically distinct as possible from a blog, so one site could contain a number of different blogs. This way, one could create a set of pages that changed very little—a corporate mission statement, an about-us page, personnel, etc.—and keep them entirely distinct, not just in the file hierarchy but in terms of permissions and editability. It’s another step towards making MT into a general content management system—or, at least, to add CMS-like features to the program to make it that much more powerful generally.

One downside to this new behavior is that it throws first-timers and MT4 users for a bit of a loop. You can’t just create a blog—rather, you have to create a website (even if it’s just an empty one) and then create a blog under it. The blog and the website can share the same page hierarchy as long as nothing’s formally published in the website, or at least as long as no pages from one overwrite the other.

Databases: MySQL All The Way

Sometimes a new version of a product means features are dropped rather than added. Movable Type 5 is no exception, since it removes support for a number of database products. Oracle and Microsoft SQL Server are now only supported in the Enterprise edition of the product; some (SQLite and Postgres) have been relegated to plug-ins.

Several things were behind this decision. First, MySQL has by and large been the database that people have used with Movable Type (and with blogging generally). It’s free, it’s been ported to most every platform of significance, and it’s already accumulated a large enough user base—both with Movable Type and other blogging programs—that consolidating on it as a standard would probably not inconvenience too many people. The second decision: convenience of support. It’s easier to support one commonly-used (and free) database system instead of several that are both free and commercial.

If you’ve been using SQLite or PostgreSQL as your database, has some migration instructions for moving to MySQL. The short version: create a backup of your site/blog through MT itself, make a new installation of MT 5 on a MySQL instance, and restore the blog in MT.

I’ve jumped through these exact hoops myself, so a word of caution. If you’re dealing with a really big blog (more than, say, 10MB) and you’re hosting the blog on a remote server, your best bet is to send the backup file to someone at the host and have them perform it for you locally. Part of the reason the MT full-system backup process is a bit clunky is because it is typically done through the progam’s web interface; it’s not something that can be done through a command line. (There is a third-party command-line backup solution for MT—but it’s been written for MT4, so there’s no guarantee it works with MT5, and it hasn’t been updated since 2008.)

Revision Histories: Wait, Back Up...

Most of us have, at one time or another, unthinkingly pressed "Publish" or "Save" while in the middle of working on a post, only to have an incomplete revision of something overwrite the extant version. MT5 has a new feature that helps make up for this: revision histories.

If you’re editing pages, templates or entries, MT stores a running list of each revision committed to that particular object. Make a mistake, and you can click "View revisions" and revert to an earlier version of the object. The total number of revisions possible on entries/pages and templates defaults to 20, but this can be set on a per-blog/site basis or even disabled entirely.

Right now, this feature’s limited to rolling back and forth between revisions. You can’t, for instance, select two revisions of a given item and put them side-by-side in a diff-type view—which would be handy if you wanted to see what changes you were about to commit or revert. (I suspect this is something that could be added later on as a core feature or as a plug-in.)

Themes: Not Just Another Bunch Of Pretty Faces

Theming, or skinning of sites, is one of the critical areas where Movable Type has typically lagged behind its most easily-named competitor, WordPress. MT5 adds some new features for handling themes that make it a little more flexible and end-user (rather than just developer-) friendly.

One key new feature is the ability to export a site’s theme and then import it selectively. Random example: let’s say a friend’s MT site has a great widget set—widgets being components re-used across multiple pages, such as tag clouds or search boxes. He could export the widgets—just those and nothing else—and you could then re-import them into your own blog, then modify and deploy them as you see fit.

Another key change is the way themes now contain a much broader selection of elements. They’re a repository not just for stylesheets, but template elements, static files, the aforementioned widgets, categories and folders, and MT’s Custom Fields extension. Any of these things can be packed up and made part of a theme—handy if you have, for instance, a set of Custom Fields that interact with templates in specific ways, and you want to allow other people to take advantage of those customizations.

Custom Fields: Even More Custom

Custom Fields used to be a third-party add-on that allowed an ambitious MT administrator to create additional fields for entries (hence the name). With MT4, Custom Fields was added as a standard feature in the commercial version of the product, and a good deal more functionality was built around it. Custom Fields weren’t just simple text strings, but could be one of a whole range of built-in selection types—freeform text, check boxes, drop-down menus, date/time fields, and many more.

MT5 now makes it possible to define custom field types not just for entries or pages, but for almost every object in the system: entries, pages, categories, folders, users, websites, blogs, comments, templates, and assets (video/audio/image). MT5 also insures that custom field data will be imported and exported with the rest of the data in a site or blog—something that was problematic back when Custom Fields was a standalone feature.


Those of you with an existing Movable Type installation who want to give MT5 a whirl—or those of you completely new to the system—it is available at as of this writing. A standalone appliance / virtual machine version of MT5 should also be available from JumpBox before long (the current version is 4.32), which lets you try out the system in a self-contained fashion.

2010 should also see the release of a fork of the Movable Type code: Melody. It’s designed to be backwards-compatible with MT in many ways, but also intended to move forward and be designed in a more community-oriented rather than corporate-backed environment. I’ll have a lot more to say about Melody –how it differs and how existing MT users can make use of it—when its first public versions are released.


If you have read this article you may be interested to view :


You've been reading an excerpt of:

Magento 1.3: PHP Developer's Guide

Explore Title