Fooling Movable Type

by Scot Hacker

Related link: http://journalism.berkeley.edu/projects/election2002/




I've fallen in love with Movable Type over the past few months, using it both for my personal weblog and for the J-School's not-yet-public Intellectual Property Weblog. The deeper I dig into the software, the more I realize how flexible it is, and ways it can be coaxed and cajoled into resembling a Content Management System. When the charge came for me to build a site on which journalism students could publish their 2002 election stories, I decided to see just how far I could push it. We've got 25 pre-election stories up on the site already - many more will roll in over the next few days.




But MT is not a full CMS, and we had to work around a few significant limitations.





News sites and weblogs have enough similarities that the project was possible, but enough differences that problems still arose. I was able to use MT's "Categories" feature to create regional election returns departments. I was able to disable comments and TrackBack, and modify MT tags so that headlines were linked to story bodies rather than the usual timestamp/permalink. I removed the calendar object that's present by default, and enabled the new search engine in MT 2.5.




As soon as you try to automate something like this, you impose a system on an organic process that may or may not be compatible with the technology. The biggest problem is in how a news site like CNN features stories differently than a "blog"-style site like slashdot. "Real" news sites place the most important story at the top of the page. Blog-style sites put the most recent story at the top of the page. That's a critical difference, but MovableType does not let you "weight" stories to live higher on the page than others. The only way I could think of handle this was to output the homepage to a hidden URL, then have the actual homepage be manually updated based on output to the automatically generated index. So in the end, we have a mostly-automatic publishing system, rather than fully automatic. That's okay - technology never has taken the place of the human editor.




Another issue that bit us was the fact that Movable Type assumes that the person posting the story is also the author of the story. In our case, we had about 40 student authors and two people posting stories to the Movable Type back end. Thus, in order to get the bylines right, our posters had to create an author for each student, post the story as themselves in draft mode, then change the story author from within Power Editing mode. A big hack. For our needs, we wanted separate fields for author name and email address, distinct from the poster.




Then a professor threw me a curveball by announcing that some stories would have double bylines. Since the system was set up to link one author to one email address, this raised the question of how to generate email links from bylines. We decided to create authors that consisted of two names but with one email address. Obviously this wouldn't fly in the "the real world," but was good enough in a pinch.




Short story: We were able to get a database-backed publishing system up and running in record time, and the posting students loved working with it - light years easier than it's been in previous election years, and we've got a quasi-dynamic site that can be updated on a moment's notice without any HTML skills. And we came to learn that Movable Type is not a full-blown CMS, though it shares enough traits with CMSs to act like one in many ways. Movable Type's homepage says:





What is Movable Type? It is a decentralized, web-based personal publishing system designed to ease maintenance of regularly updated news or journal sites, like weblogs.




Yup.



Would love to hear your tips on making MT behave like a CMS...


14 Comments

tima
2002-11-05 10:26:13
Hacking MovableType.
I agree that MovableType is not a full-fleged CMS -- its creators refer to it as a personal publishing system. Many of the issues you discuss illsutrate that focus on personalI agree that MovableType is not a full-fledged CMS -- its creators do refer to it as a “personal publishing system.” Many of the issues you discuss illustrate that focus on personal rather group. Kudos to your team for "fooling" MT as you did -- it can fooled even further.


I think some of the issues you experienced could have been easier remedied with either an MT plugin module, Perl script using the MT API, the use of the Web services APIs or some combination. (Like the programming language it’s built on, there is more then one way to do it.) This is not ideal particularly for those not familiar with OO Perl, but it is more elegant once completed.


MT 2.5 introduced a keywords/metadata field. Using a plugin like mt-meta[1] and little bit of manual XML entry. (mt-meta could use to be a bit more robust, but it gets the basic done.) With this info you could have stored weighting info and wrote a plugin to of interpreted it. You also could have entered the real authors info in this field and display that info instead of the person who posted the story.


I think MT is an amazing powerful application that keeps getting better and as I mentioned it can be fooled even more.


[1] http://www.mplode.com/tima/files/mt-plugins/#mt-meta
rather group.


That said, I think some of the issues you experienced could have been easier rememdied with either an MT plugin module, Perl script using the MT API, the use of the Web services APIs or some cobination. (Like the programming language its built on, there is more then one way to do it.) This is not ideal particualrly for those not familar with OO Perl, but it is more elegent once completed.


MT 2.5 introduced a keywords/metadata field. Using a plugin like mt-meta[1] and little bit of manual XML entry. (mt-meta could use to be a bit more robust, but it gets the basic done.) With this info you could have stored weighting info and wrote a plugin to of interepted it. You also could have entered the real authors info in this field and display that info instead of the person who posted the story.


I think MT is an amazing powerful application that keeps getting better. Kudos to your team for "fooling" MT as you did -- it can fooled even further.

tpherndon
2002-11-06 10:40:42
Wedded to MT/PERL?
If not, consider using Zope with the CMF add-on. Zope by itself is a web application server written in Python. Zope + CMF bills itself as "a tool for building content management systems". In my experience with it, it has built-in methods of dealing with every problem you ran into with the limitations of Movable Type.


That doesn't mean, though, that it doesn't have its own limitations, but news sites are an ideal problem space for Zope/CMF.

anonymous2
2002-11-06 13:01:53
MT as a CMS system: an example
Dartreview.com uses MT as its CMS system. It works excellently. The only hacks we've had to implement are the same ones you had: 1) bylines (we just include them as HTML at the top of an article. Not elegant, but it works) and 2) front page editing (since we post updates once daily at the most, we just enter the articles in reverse order of importance, i.e., the most important articles show up at the top of the day's page).


We've found this system to be 10X more powerful than Userland's Manila, which has all sorts of odd, undocumented behavior, arbitrarily implements features, and doesn't support multiple templates and display modes.


-- Andrew Grossman

grant7
2002-11-06 13:13:52
CMF workflow, personal vs. team
"It is a decentralized, web-based personal publishing system designed to ease maintenance of regularly updated news or journal sites, like weblogs."


Certainly MT can be fooled into being more than a personal CMS, but there ARE some intriguing architectures that are INTENDED for use by groups.


Personally I have created a simple site management system in ZOPE called SiteBoiler, and released it under the GPL. Even without versioning it separates management of logic, content and presentation such that coordinating simultaneous development does not result in conflict.


Rendering content elements through templates is much more efficient than the alternative: unnecessary production overhead. This principle is just as applicable to groupware as personal publishing systems.


Grant K Rauscher
GeeKieR Enterprises
http://www.geekier.com/

anonymous2
2002-11-06 14:01:55
Workflowing with MT...
Hi,


I've been making some experiments with MT myself. And I'm trying to configure it to have 2 types of roles: reporters and editors.
I would like to 'not allow' reporters to 'publish' entries, just publish them as 'drafts'. Only editors would be allowed to change the status to 'publish'.
How have you managed that?


Btw, how did you manage to create 40 users 'on the fly'? By hand?


Thanks,
ssn

anonymous2
2002-11-07 02:09:19
Plugins to extend MT
Brad Choate has written some plugins for MT that extend its CMS abilities substantially. If you're comfortable with SQL, and use mySQL for your MT blog, you can use his MTSQL plugins to get at pretty much any peice of data from anywhere.


Also a plugin to store key-value data pairs w/in entries that might have helped a couple of the issues described in the article.


http://www.bradchoate.com/past/cat_movable_type.php

anonymous2
2002-11-07 07:54:44
pMachine as an alternate to MT
pMachine is mainly written as a CMS program, and works well as a weblog management tool. I've been using it for a while now and it is incredibly flexible.
shack
2002-11-08 00:00:37
pMachine as an alternate to MT
Thanks - I've been meaning to get a closer look at pMachine...
shack
2002-11-08 00:01:49
Plugins to extend MT
Totally - I've been looking at his collection, and just installed Sanitize today. Just didn't have time to dig deeper for this election, but will for the future.
shack
2002-11-08 00:03:43
Workflowing with MT...
Yup, we had to add each author by hand, which was really no fun at all. We didn't need to disallow reporters to publish, because only web techs even had access to the back-end. Good luck....
shack
2002-11-08 00:05:17
CMF workflow, personal vs. team
SiteBoiler looks great - thanks for pointing it out. Will take a deeper look.
shack
2002-11-08 00:07:34
MT as a CMS system: an example
Wow. Thanks for the notes on MT vs. Manila - I still intend to take a closer look at Manila, but your experience with it seems to mirror my experience with Radio - convulted and strange in terms of what features work as expected and which are arbitrary.
fling
2002-11-08 16:36:19
Trick for Top Stories
The trick I'm using to get the top stories to stay the top story is as follows...


Create a Category called "Top Stories". When you create a new entry that you want to stay on top for a while, make your primary Category "Top Stories".


On your homepage, make the first entry tag be:


Then follow with whatever else you want to display. When you want to replace your Top Story, change the categorization from "Top Stories" to it's permanent home, say "Results".


It takes a bit of management, but it can be done by anyone with admin access to MT and no HTML experience is required.


Or...


You could even have your homepage only be Top Stories ...lastn="10"> and have another index page by category. This would let you control your homepage completely by having only Top Stories. When you create new entries assign multiple categories, some articles may be top story material, some may not. The ones that aren't would just go into your index page by category. This would eliminate the need to re-categorize a entry.


Hope this helps,
Brian

anonymous2
2002-12-11 13:07:00
MT vs. Pmachine
Does *anyone* have any performance stats on either one of these tools? I've heard rumored slowness on things like PHPNuke, but they are mere rumors ...