Movable Type 3.2 Impressions

I just upgraded to Movable Type 3.2 a few days ago, and as predicted, it has just enough nice new additions to keep me, once again, from switching to WordPress (sorry Matt!). If I were starting from scratch, WordPress might be my chosen platform, but MT gives me enough to keep me happy, and it’s still arguably better than WordPress in several important categories.

Some observations:

  • I’ll start with perhaps the only major disappointment in MT 3.2 because that is what I would like the community’s help on: search. Since the beginning of time, Movable Type’s search function has been a severely limited raw CGI query which outputs ugly search results incapable (without serious hacking) of displaying themselves on a PHP, ASP, JSP, or other dynamic page. If you wanted the search results page to look nice, you had to either hack some design love into the cgi output or do what I currently do: set your CGI search results as a PHP variable and output the results with PHP. It’s a horrible hack and the worst part about it is that it doesn’t even return results 100% of the time. If the CGI query doesn’t return in time or gets throttled by MT’s search throttler, you get an empty record set. Anywayyyyyyyyyy, I am sick of this. Really, I am. So I got to thinking… why hasn’t someone just written a simple PHP function to query MT’s database and return a record set? Am I missing something here? Why would that be a hard/bad thing to do? If anyone is willing and able to do this, I, and plenty of other Movable Type users would be eternally thankful. The function would just need to take in search terms and return an unordered list showing a linked entry title, entry date, and either the MTExcerpt field or the first X number of words in the entry. Anybody see any problems with this? Seems like something a PHP/mySQL expert could do in like an hour, no?
  • Movable Type has vastly improved the cleanliness of their URLs. You no longer need a mountain of hacks to produce custom, extensionless, search-engine-friendly URLs. This is a huge improvement and I am very thankful for it. However, it’s still missing one bit of flexibility I’d like to see, hopefully in the core, but perhaps in a plug-in: I like to save my files out with .php extensions for easier identification and editing, but on the web, I want to refer to them as extensionless. Movable Type will let you refer to them as extensionless, but only if you save them out as extensionless. What’s really needed in this case is the ability for MTPermalink (and any other tag which returns a URL) to automatically strip the extension off the end. Right now, I’m stuck using a regex in all of my MT templates to accomplish this.
  • The Movable Type interface has been tidied up and beautified quite nicely with this latest addition. One of the main reasons I chose MT over WordPress from the beginning was the nicer interface, and MT has widened their lead in this department with 3.2. Matt showed me the new Aqua-like WordPress admin skin in San Francisco last week, and it looks nice, but I’m pretty happy with what MT 3.2 has done (besides using 10px Trebuchet all over the place… had to switch that to Lucida Grande, ASAP).
  • The new trackback moderation is nice. I’ve already pretty much licked comment spam on my own, but illegitimate trackbacks have always bothered me. With MT 3.2, you can keep trackbacks from being posted immediately without applying this moderation rule to your comments as well. I want comments posted immediately. However, with trackbacks, immediacy is not as important… so this new feature is great.
  • The new plug-in framework sounds great, and I like the name: BigPAPI. Good times.
  • My favorite plug-in, MT Notifier, has been updated to work with MT 3.2 and it functions even better than before.
  • Still no live preview, Six Apart??? C’mon! I need the ability to publish a new entry directly to a non-publicized URL (without it pinging anyone or adding it to my feed) to check visually intricate entries for design completeness and general visual quality. The only way to (kind of) do this right now is to publish your entry with a date long in the past and turn off pinging temporarily. That way, it’s live, but nobody knows about it. Horrible solution. Please fix.

Anyway, my overall opinion of this new version of Movable Type is a positive one, and I do recommend all MT users install this upgrade… but we’re still not quite there yet. I’ve been bugging Anil on IM a lot over the last couple of weeks, and both he and the Six Apart team are aware of these little nagging issues. They are dealing with them as time allows, but I of course, must continue pushing…

41 comments on “Movable Type 3.2 Impressions”. Leave your own?
  1. Collin says:

    There is still a big down side to MT that you havn’t mentioned. The price! I would definitely have to go with WordPress just for the cost. Although neither one is a good solution for me since the only linux server I have is the one under my desk double as a foot rest right now.

    Mike, the only thing I noticed that bothered me about your blog is that the “Notify me” feature will blow up my Gmail with 2 notices for each post it seems. And even more irritating, I am not sure that the HTML emails are being sent out correctly because I get screwey ugly links that I can’t click on. Maye the new version solves that.

    I havn’t found a good solution that will run off ASP yet (probably because I havn’t had time to build it) so I have been using Blogger which was pretty hard to customize the template and has about 200 other things that bother me.

  2. Collin says:

    P.S. The rest of your blog is awesome. I aspire to be like Mike. :-)

  3. Faruk Ateş says:

    Christ Mike, an hour is being lenient, really. All that one would need is the database model and half an hour, maybe 45 minutes for fine-tuning it.

    And that would be a basic search through the database with returning output.

    It’ll probably take (me) longer to set up an installation of MT itself than to add this PHP-search thing, ironically enough…

  4. I love MT’s flexibility in matters of templating. WP is a nightmare, compared. I just wish people would stop paying lip-service to WP, or even using it because, it’s open source.

  5. Marco says:

    I’m not really impressed with MT to be honest. MT is a commercial weblog application. If an application costs money I expect it to be significantly better than freely available alternatives. However it’s really not better than wordpress or Pivot (the one I’m using myself) just to list two examples.

    I’m not saying MT sucks or attempting to bash it here, please don’t interpret my comment as such, but I don’t see any added value that makes me want to dump the free alternative, shell out some cash and go MT.

    Just my 5 cents of course.

    p.s.: I know it’s free if you blog alone but on several of my sites I’m not.

  6. Kyle says:

    I love MT’s flexibility in matters of templating. WP is a nightmare, compared. I just wish people would stop paying lip-service to WP, or even using it because, it’s open source.

    Quite frankly, that’s ignorant. I cannot comment on MT, but WP has by far the best templating system I’ve seen to date. It’s an absolute beauty in terms of balancing ease-of-use while hiding the more powerful features for power-users.

    I still don’t understand why any blogging software I’ve used has yet to produce a really good search (Yes, that includes WP, Typo and TxP). All of them seem to be more than happy with a basic search that’ll do the bare minimum. I say we push for more advanced search options. It’s about time already.

    P.S. I totally agree with you about staging-urls. I don’t know why MT or WP doesn’t have this built-in yet. Although, I made my own hack for WP that allows me to do it… but it’s still not as clean as it could be.

  7. Nathan Smith says:

    Honestly, I tend to think of Movable Type as an outdated system. Sure, many high-profile sites, such as this one, SimpleBits, and Stopdesign run on MT. But I think that most of these guys would agree that if they were to start anew, MT would not be the CMS of choice.

    While WordPress is #2 in my book, my qualms with MT are the “Rebuilding” of sites, and the lack of licensing freedom in having multiple authors. As far as rebuilding goes, I’ve sometimes received updated articles in my Bloglines long before they appeared on a site, due to an author forgetting to rebuild the site after posting something.

    All that being said, I’m absolutely in love with Textpattern. The interface is simple, and if there’s a feature lacking, there’s a (hyper)active community of plugin-writers out there. Especially handy is the new one out by Rob Sable which allows you to backup your entire MySQL database right from the TXP interface, without having to even touch phpMyAdmin.

    But, the point of this comment is not to exhault any CMS over another, simply to show my opinion. To each his own, and I’m glad Mike keeps this blog, regarless of the system running it behind the scenes. Keep up the great writing, as it’s been a great inspiration to me, and even helped further my career.

  8. Philip says:

    I must agree with Faruk. I’d say 30-45 min tops for your normal PHP/MySQL programmer. For the Wolf I’d expect 15 min, and that includes the fine tuning.
    Am I offering? Ha, of course not! Opinionists never do unforunatly…

  9. Faruk Ateş says:

    Re: philip’s comment:

    Mike, if you e-mail me the database layout of MT 3.2 I can cook something up for you, no sweat.

  10. Sujay says:

    I’ve fallen in love with the new MT 3.2 since it got released. It’s added all the features I’ve been clamoring for, except for one. Exporting entire weblogs (templates, settings, etc.).I wholly agree about the search problem.

  11. Right on Mike. And how about some Yearly archive templates and tags?

  12. And what about some documentation on those new tags like basename, or ones that will potentially break the way your site works like the revised comments tags. I am really digging the new update too, but man, at least document the new features (even quick descriptions that mention what the syntax or usage of the tags look like).

  13. Jay says:

    Given the look of the search output beforehand, it would easily take less than an hour to produce a boolean search function for the blog that users can use to search for whatever they wish. The trouble is not all servers like to enable boolean search by default and therefore most people stick to the default option because its most widely used..

    Personally I love wordpress and its templating system, if only forum packages could have such simple and easy to use templating systems…

  14. Kevin Hale says:

    I worked out a better movable type search that’s php/mysql based a year or so ago. You can see it in play over at my personal site here:

    Just start typing and you’ll see the search results “calculates” the probability that the results are what you’re looking for based on a ranking system. The live searching is your typical script from around the web, but I post up the scripts for the search here:

    Here’s the MT forum post I put in last fall:

    Anyway, it could use some improvements now that I’m going through it. It’ll make a good Particletree tutorial and so I’ll try to get one up in a week or so.

  15. Joe D'Andrea says:

    While I’m certainly used to MT (now on 3.2), it just so happens I installed WP 1.5.2 this morning to take it for a spin. After touring the whole thing, soup to nuts, I have to say I am pleasantly surprised. There’s a lot to like about the overall architecture of WP, and the temptation to switch is stronger than I expected! (Not because of the Aqua-like admin skin either, although that is a rather nice touch.)

    At this point I intend to keep using both – one site with MT, the other with WP – and see what I learn from that over time.

    Right. Back to reading Hacking Movable Type

  16. Mark says:


    Yes, the ol’ rebuilding discussion, oh how many times it’s been discussed… I love and hate rebuilding. If you want more insight, search for “bake” (MT) and “fry” (WP and most others) as the two approaches are often referred to.

    But there is a third method, that I like most but very few have implemented yet: call it 404-baking. That means, the cms is baking on demand. Pages whose content are changed in course of an action in the admin-ui are nothing but deleted from the file-system. then, all 404 and other apache-errors are redirected to a script that checks, if a page should be there according to the url-rules and the database. If it does, the file is dynamically produced and saved to the file-system again. Then the error-handling script redirects via header to the now static file.

    It’s best of both worlds. You do not have to run through rebuilds of half the site just because you corrected a typo but nevertheless your files are there and can be accessed even if the database is down, can be archived and no dynamic overhead on every load of the exact same page.

    Two downsides: 1. The first view of a page after changing something might be slightely slower than frying because of the two redirects (no file -> 404-script -> original file) and certainly slower than baking . 2. The trick only works with an apache and a configurable .htaccess which many (like you bad, bad m$-user ;) do not have. Even though most sites run on LAMPP, not everybody has the privilege of “AllowOverride All” (or whatever allows error-redirection) in their apache configuration.

    BTW: I switched from MT to WP mainly because I am not much of a perl coder. It’s just easer for me to hack PHP and understand the coding of the core-engine.

  17. Jason says:

    Dooce, I believe, has MT installed and her search engine results come up with the same style etc. as her layout. Maybe you should ask her.

  18. Dave S. says:

    re: MT vs. WP vs. TxP – Blog tools wars are the new OS wars, apparently.

    re: search – I had the same problem as you Mike, and because I also have a lot of static pages on-site that I wanted to show up in search, I eventually routed around MT’s search entirely. An open source search script that indexes my entire site and allows me to customize my PHP output — best of all worlds right?

    Not in the least. The search engine I use sucks. I used it for its features, but the core reason for the product, the search itself, has pretty poor weighting and relevancy checks to filter the results a little better. I have a whole list of other gripes, but what it comes down to is that after getting used to Google, it’s almost useless to expect quality search unless you’re using a mature engine. I keep on thinking about just directing my search there. I may yet.

    All this to say that if all you really want is a PHP script to return results from MT’s MySQL database, heck, even someone like me could build one up in a short time (despite my continuing ineptitude with all things PHP). But you’re going to be annoyed with it the first few times you try finding anything, and within a short time there will be a new discussion about result quality, which is a far tougher nut to crack.

  19. Reed Morse says:

    Email me the database design too, I’d like to look at it. I’m not the best at php/sql, but I might be able to do something.

  20. Joe D'Andrea says:

    I was about to give it a shot too, but then I rediscovered this article I’ve had bookmarked for a bit: Search MT With PHP.

    Might that fill the bill?

  21. Joe D'Andrea says:

    Note that the aforementioned MT/PHP search co-opts the existing search module, which you already noted was giving you agita. Even so … could be worth a shot.

  22. MT has terrible photo support. It really sucks. It’s a real pain to incorporate photos nicely and neatly into your articles.

    Now that Flickr exists, many would-have-been-blog-articles become a post on Flickr instead.

  23. Joe D'Andrea says:

    I have a brute-force PHP-only search working here.

    It’s contrived, not to mention excruciatingly limited since it only searches for the text “rss” right now … but it’s a first step.

  24. Su says:

    What’s really needed in this case is the ability for MTPermalink (and any other tag which returns a URL) to automatically strip the extension off the end.

    Check your contact form e-mail.

  25. Joe D'Andrea says:

    A revised MT/PHP Search example is now available. Hooray for “Hacking Movable Type!”

  26. Nathan Smith says:

    @Mark: That’s cool, about the 404 baking. While I’m not super familiar with MT, this is sort of what Textpattern does for it’s urls. It’s great, because I recently upgraded from an older version of TXP, so now all my urls are “clean” but the old addresses still work without me having to change anything. So, the url /?id=102/ still goes to the same page as the new url /journal/ie6-multi-class-bug/.

    That was my biggest fear in switching TXP versions and moving to Dreamhost, that my urls would be broken, but so far so good. I agree with you too, Mark, that comparable CMS’s like WP are more appealing than MT because they use only PHP and not Perl + PHP, etc.

    @Michael: I’ve not yet tried it, but Doug Bowman just released his photo album system for MT under a CC license…

  27. mel hogan says:

    I’m just getting started with using a cms for my site. I’m looking for something easy to use, as well as something that is clear enough in the admin area that I could use it as a jump-start to my scripting (i.e. php) I’ve been trying textpattern, but it becomes confusing pretty quick. Do you find MT to be a reasonably simple “out of the box” solution?

  28. Mike D. says:

    Nathan: When you publish a new post in MT, it is automatically “rebuilt”. You should never have to do this manually. The only time you need to manually rebuild your site is if you change a template or certain preferences.

    Joe: Awesome! With regards to the solution over at orangehairedboy’s site, yeah, that’s what I’m using right now. Not a big fan. Looks like what you’re cooking up might fit the bill nicely though.

    Mel: Yep, MT isn’t perfect out of the box, but it’s nice.

  29. I do agree that Movable Type’s search should be improved. However, I do not believe that it could be implemented in an hour. If you want to do it in a reasonable way, your effort will be higher. Let me elaborate…

    [1] If you want to have a good database search, you will have to use the MySQL fulltext search. Searching with simple LIKE-phrases is no real improvement.

    [2] If you want to use fulltext search, you have to deal with the problem of database engines. You have to setup some sort of replication or otherwise solve that problem.

    [3] Searching is one thing. Giving good result lists is another thing. You have to solve several issues, if you want to offer a good “sort by rank”.

    [4] Most of the time, an entry in Movable Type only contains readable text. However, if you want to do this right, you also have to deal with Movable Type tags being inside entries. Searching through the database rows will not be enough. You will have to search through the text that results from the rebuild process. Tags have to be evaluated, the complete text of an article has to be assembled.

    [5] As the MySQL parts of this component are not trivial, a good setup and administration interface has to be created. Just giving some SQL to the users is not enough. For example, giving a replication process into the hands of many users, most of them knowing nothing about SQL, is an interesting job.

    I have been doing some work on this subject. Initially I integrated the MySQL fulltext search into my own Movable Type Weblog. Then I extended the search, so several websites could be searched, leading to the creation of the MTLookup website.

    If you are interested, you can find some information in the Movable Type Weblog, MTLookup category.

    Later, I will release the code for fulltext search in Movable Type. It just needs some time for doing it right.

    Michael G. Schneider

  30. Nathan Smith says:

    Oops, my mistake. Not sure why I had the RSS feed problem (or feature, since I was reading news early). It was from, but now I’m not certain what was causing it. Sorry for so quickly attributing it to MT. Truce ;)

  31. Marco says:

    This might very well be a mistake but just to make sure:
    Yesterday I posted a comment here in which I stated that I wasn’t very impressed with MT when compared to free alternatives. Why wasn’t it accepted? I do hope it’s also allowed to be a bit less enthousiastic about it eh? :)

    (Editor’s Note: Yes, definitely a mistake. Apparently, MT 3.2 turns its comment spam filter on by default, and for reasons unknown, your comment got held in the moderation queue. I just published your comment and subsequently turned off the filtering.)

  32. Anil says:

    “There is still a big down side to MT that you havn’t mentioned. The price!”

    Movable Type’s free personal license lets you have an unlimited number of blogs.

    Movable Type has has dynamic publishing for a year now, which requires *no rebuilds*. I’m not sure what way we can say that so that it sinks in, but I wish I could figure out a way to actually communicate that. It’s using standard Smarty templates, so all Smarty PHP plugins work, and it’s essentially 404-baking of pages. Smart, no?

    Finally, in regard to templating: You don’t have to know any scripting or understand PHP to use MT’s template tags; In fact, if you use Adobe GoLive (for example) right out of the box, it knows Movable Type’s template tags. So you don’t even necessarily have to know HTML/CSS.

    Anyway, I could go on, but tell a friend: Free version! Unlimited blogs! No rebuilds!

  33. Nick says:

    Hey, Mike, speaking of typos, you have one in the first part of your last bullet point. :)

    (Editor’s Note: Haha. Thanks. Fixed!)

  34. Eric Meyer says:

    “Movable Type has has dynamic publishing for a year now, which requires *no rebuilds*. I’m not sure what way we can say that so that it sinks in, but I wish I could figure out a way to actually communicate that.”

    If it makes you feel any better, Anil, the WordPress gang has the same problem getting the news to sink in that WP’s templating is much, much, much, much, much better than it used to be (and it was pretty bad, once upon a time).

    First impressions and all that, you know.

  35. Nathan Smith says:

    I have to chime in and say that I stand corrected. It’s been awhile since I’ve messed with MT. Thanks for the clarification.

  36. someone says:

    So where is the poll for the iPod giveaway websites?

  37. Devon says:

    I would like to know 3 things about MT 3.2:

    1. When I have comments enabled, why doesn’t the link to comments at least lead one to a form?

    2. Why is there no longer a template for including a comment? They certainly don’t expect me to make one from scratch before I can get commenters, do they?

    3. how come the id’s in links don’t start with letters? EX: blah.xml#00027, isn’t ok by the XHTML spec because ID’s must not start with a number. Why do I have to hack through the templates just to get something SO SIMPLE to work that SHOULD work out of the box?

    …those are my pet peeves, in addition to the extensionless thing Mike mentioned.

  38. Anil says:

    Devon, I think all of those issues are resolved if you’re on MT 3.2’s templates, it sounds like you’re describing a blog that’s been upgraded from an older (*very* old) version that might not have addressed those things. You can simply use the template revert function built into 3.2 to get a copy of the modern templates with those features, or refer to the default templates on our site, to copy and paste the markup needed.

  39. Chad says:

    I like to save my files out with .php extensions for easier identification and editing, but on the web, I want to refer to them as extensionless.

    I only just upgraded to 3.2 yesterday so I’m still learning the newer features, but would the Archive File Path Specifiers, in particular the %F specifier do what you are after for the extensions?

  40. Joe's Apt. says:

    Searching Movable Type with PHP

    Mike Davidson asked for it: “… why hasn’t someone just written a simple PHP function to query MT’s database and return a record set? Am I missing something here? Why would that be a hard/bad thing to do? If…

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe by Email

... or use RSS