Movable Type Documentation

Back to docs index

Chapter H: Changelog

In this section:


  • Initial beta release

  • Added FTP URLs to installation instructions. (Daniel Talsky)
  • Fix some warnings. (Caroline van Oosten de Boer)
  • Fix bug with spaces at the ends of lines in mt.cfg file. (Caroline van Oosten de Boer)
  • Fix bug with saving new entry--author was not being set for the new post. (Matt Haughey)
  • Fix bug with profile link in header linking to the wrong profile on the entry-editing page for an entry by another author.
  • Fix bug where creating a new author would switch your login credentials to those of the new author (ie. you would then be logged in as the new author, no longer as yourself). (Matt Haughey)
  • Added <$MTArchiveTitle$> tag.
  • Fix bug where uploading a file with backslashes in the path (eg. from Windows) would not get the path cut off properly. (Caroline van Oosten de Boer)
  • Changed Image-Size installation method, because the old method was not resulting in a working installation, due to the module using AutoLoader to split up the routines. (Caroline van Oosten de Boer)
  • Updated installation doc to reflect new Image-Size installation method, along with incorporating instructions for performing some steps in a Unix shell, among other things. (Matt Haughey, Steven Jarvis)
  • Fixed mt-comments.cgi so that it supports adding comments when the comment system is using inline/static comments (as opposed to comment popup windows). The archive pages for the entry, along with the index pages, are now rebuilt after a comment is added, and the user is redirected back to the individual entry archive page. (Caroline var Oosten de Boer)
  • Added <$MTEntryCommentCount$> tag: number of comments on a particular entry.
  • On Edit Blog Configuration screen, moved File Extension for archive files down into ``Archive Configuration'' section. (Steven Jarvis)
  • In the Movable Type admin UI, the Movable Type logo now returns you to the Project Administration area, rather than the movabletype.org site.
  • In List Entries, when author does not have ``edit all posts'' privilege, but selects to view posts by another author, entry title is no longer a link.

  • Added Bookmarklet posting functionality, with a link to setup on the main project administration menu.
  • In List Entries, if a post does not have a title display [No title] instead as a link.
  • Changed login cookie path from / to /path/to/mt/. For example, if you installed MT at /my/mt/mt.cgi, the path for the cookie would now be /my/mt/.
  • MT::Util::send_mt_mail now checks for more default locations of sendmail, instead of giving up, until it finds one that works. It now checks /usr/lib/sendmail, /usr/sbin/sendmail, and /usr/ucblib/sendmail (list taken from Mail::Mailer). (Steven Jarvis)
  • Added Javascript form validation for the edit blog configuration/create new blog form.
  • Added MTCommentAuthorLink tag, which links the comment author name using a succession of rules: looks first for URL, then for email address, then just displays the name without a link. (Steven Jarvis)
  • Deprecated MTCommentName in favor of MTCommentAuthor; removed the former from the documentation, although it still works (and likely always will).
  • Made uploading files compatible with versions of CGI.pm without CGI::upload method (versions prior to 2.47). Run CGI::upload in an eval, check for errors, and use CGI::param if we get errors. (Steven Jarvis)
  • Added a password recovery feature, linked from the login page. Also added a birthplace setting to the ``edit profile'' page; this must be filled out in order for an author to recover his/her password.
  • Added a config setting StaticWebPath to the mt.cfg config file. This allows you to host the MT images and stylesheets in a directory different than where you host your MT installation (CGI scripts, etc.). This is necessary on some servers, where you have to install MT into your cgi-bin, which doesn't accept non-CGI scripts in that directory. (Taegan D. Goddard)
  • Fixed display bug in blog editing menu where VIEW SITE would have space up above it, when a user does not have full permissions.
  • Don't include ``Send a notification'' section when editing an entry if the user does not have notification-sending permissions.

  • Changed internal timestamp format so that timezone offsets are not recalculated on every rebuild. Changed from epoch time (seconds since 1970) to YYYYMMDDHHMMSS.
  • Added uneditable name of template to top of editing page for non-index templates; this limits possible confusion over which template you are actually editing. (Steven Jarvis)
  • Made MTCommentAuthorLink web links open in new window. (Steven Jarvis)
  • Bookmarklet Javascript now works in IE 5.5 (needed to use document.selection in that browser). (Caroline van Oosten de Boer)
  • Added created_by column to author object, in preparation for allowing author deletion, but only of authors that you have created.

  • Added mt-import.cgi, which imports blog entries from either Blogger or Greymatter (or, for that matter, any system that can get the entries into the right format) into Movable Type. Also added an import interface through the main Movable Type interface, and docs for importing to the manual.
  • Fixed bug with MTDateHeader contents actually appearing before the start of the <MTEntries> contents, each time through the loop. (Daniel Talsky)
  • Added a ``Convert paragraph breaks'' option to specify whether paragraphs should be enclosed within <p> and </p> tags. (Matt Haughey)
  • Added some Troubleshooting docs to the manual, as well as information about setting up the db directory outside of the webroot.
  • After saving a template, users will ``rebuild files'' permissions will now be able to rebuild files from the ``template saved'' message. (Matt Haughey)

  • Fixed the built-in RSS template so that it validates with RSS version 0.91.
  • Fixed bug with previewing entry introduced by convert paragraph breaks option and code. (Adam Gerstein, Sara Flemming, Matt Haughey, Jeremy W)
  • Check that version of installed HTML::Template is greater than 2, because we need certain features that were only added later on. (TW Walsh)
  • Actually include mt-import.cgi in the distribution this time. (Caroline van Oosten de Boer)
  • Fixed a bug where the conditional settings for MTEntryIfAllowComments and MTEntryIfExtended tags would not be picked up properly on Individual Archive Templates.
  • Need to HTML-encode all ampersands before displaying in editing boxes; this prevents the browser from turning &nbsp; in a textarea into an actual non-breaking space, for example.
  • In the Blog editing menu, fixed the Edit blog configuration icon link; it was different than the text link, and it was incorrect, and caused an error saying ``No permissions''. (Adam Gerstein)

  • Added uniqueness validation on author name; you can no longer create two authors with the same name, nor change your author name in your profile to the name of another author.
  • Rebuild popup now lets you rebuild just your indexes (index templates), if desired.
  • Added a View Site link to the ``rebuilt'' page, so you can view the site right after rebuilding.
  • Made all REBUILD links in status messages a link to the rebuild popup window, but only if the user has rebuild permissions.
  • mt-comments.cgi now rebuilds all entry archives after adding a new comment, even when using popup window comments.
  • Changed format of weekly archive page names so as not to clash with daily archive pages; weekly archive pages are now called week_YYYY_MM_DD.html (they used to be just YYYY_MM_DD.html).
  • Changed format of category archive page names so as not to just use category IDs; new format is lower-case munged version of category name (remove all non-alphanumeric characters, change spaces to underscores, and consecutive underscores to one single underscore). For example: Fun & Games gets translated to fun_games.html.
  • Improved error messages when using a template tag out of context; for example, using a MTEntryTitle tag outside of an MTEntries container on an index/date-based/category template (it is legal on an individual entry template, because the entire template is in entry context). (Sara Flemming)
  • Added a No archives option to the Preferred Archive Type pulldown on the Edit blog configuration screen; the lack of such an option, combined with the Javascript validation, made it effectively possible to disable archiving for a blog.

  • Added mininav to left side of all system pages (once you have selected a blog to edit, that is). Items in nav are dependent upon permissions, of course. (Josh Buchanan)
  • Added activity log; currently it records logins, logouts, unsuccessful authentications/password recoveries, etc. because that seems most useful from a system maintenance perspective.
  • Added ability to rebuild just a single set of pages from a particular archive type, eg. all Weekly archives. Also, split up ``Rebuild all files'' so that it rebuilds in steps: Individual => Daily => Weekly, etc. This should lessen the load of any one rebuild.
  • Fixed bug with weekday names (%A date format template) not displaying properly on some systems. (Jeremy W)
  • Fixed bug with MTArchiveList when a Preferred Archive Type has not been set. (Jeremy W)
  • Fixed MTEntries so that you can specify both lastn and category, and it will display the last N entries in that category. (Daniel Talsky, Jeremy W)
  • Some changes to widths of textareas in bookmarklet and edit/create entry screens, and to width of pulldown menu for category.
  • Changed look of ``Your existing blogs'' items: upper-case blog name, add bullet. (Matt Haughey)

  • Improved look and functionality of default templates; also added default templates for all archive types.
  • Set more default options when creating a new blog or editing 'First Blog'.
  • Added instructions for exporting NewsPro entries into the correct format; thanks to Jeremy W for sending along the instructions, which are now in the manual.
  • Added author attribute to MTEntries tag, so you can grab all of the posts by a particular author (can also be combined with category and lastn). (Jeremy W)
  • In comment notifications, the text between the brackets is now the name of the blog, not Movable Type.
  • Added alt tags to the images in the mininav. (Matt Haughey)
  • Fixed a bug in mt-comments.cgi that made it select the wrong comments listing template (ie. one from a different blog).
  • Added a Status pulldown to the bookmarklet popup so that authors can post HOLD items (rather than having everything RELEASE), if they wish.
  • Fixed a bug in tag argument parsing with a string like foo=``bar's baz''; the single quote would end the double quote, which would lead to foo having a value of bar (and not bar's baz like it should).
  • Fixed allow_comments_default setting of allow comments box on new entries. (Christina Wodtke)
  • Alphabetize category list in edit categories, and in pulldown menu on edit entry/create new entry screen. (Adam Gerstein)
  • Sort comments in edit-editing screen by created on date, in descending order.
  • Fixed a bug in mt-load.cgi. Also, added IMPORTANT INSTRUCTIONS to mt-load.cgi to delete it after running it the first time. Failure to delete it is a security risk, because someone else could then run it (conceivably).
  • Added index.html to the distribution, which is just a simple 404 page, which prevents people from doing the directory listing.
  • Added error checking to mt-add-notify.cgi.

  • Added the <$MTCGIPath> tag and the CGIPath config file setting for easy linking to your MT CGI scripts.
  • Added a config setting for setting the default value of the ``Status'' field on the create an entry page; so you can set it to Release if you always want it set to Release by default. (Christina Wodtke)
  • Added an ``allow anonymous comments?'' config option; if set, no checking is done to determine if the visitor making the comment has provided an email address and author name. If unset, both author name and email address are required. (Christina Wodtke)
  • In the edit entry screen, if a comment author has not provided a name, there was no way to get to the editing screen for that comment; so now, [No author] is displayed if there is no author name.
  • Added an archive_type attribute to the MTEntryLink tag; this allows you to create a link to an entry's archive page other than the preferred archive type. The default behavior is still to link to the archive page for the preferred archive type. (Christina Wodtke)
  • Transform carriage returns into <br> tags when Convert Paragraph and Line Breaks is on. (Adam Wood)

  • First public release.
  • Improved diagnostics for some default-template-related, rebuild-related error messages. (Christina Wodtke)
  • Added ``Creating a new blog'' instructions to manual, and link to this section of the manual when creating a new blog. (Christina Wodtke)
  • Added MTEntryPrevious and MTEntryNext containers to refer to the previous and next entries, respectively. These tags should work in any entry context. (Christina Wodtke)
  • Tried to make install doc a little clearer by moving some Unix-specific stuff down into ADDITIONAL NOTES.
  • Added (?) help prompts that point to relevant sections of the manual; added some blog configuration option docs to the manual.
  • Improved layout of notification messages.

  • Made <$MTDate$> work as a ``system date'', or the current date/time at which the page is being rebuilt.
  • Added Pragma: no-cache header to keep Opera from caching pages. (Jay)
  • Changed default templates to use iso-8859-1 (Latin 1) encoding instead of utf-8.
  • Added Blog Configuration option for the number of words in an auto-generated excerpt.
  • Added comment previewing, using the new Comment Preview template. Default templates now ship with comment previewing enabled, and the comments links on the main index automatically link to the popup comments; the individual entry template contains a static version of the comments.
  • Deleting an entry will now delete all of the comments associated with that entry.
  • Made bookmarklet windows customizable by selecting whether users want to include category, excerpt, etc.
  • Ran all scripts with taint mode on (-T), and fixed all warnings and errors. Thanks to dchase for the patches.
  • Added Nickname field to author record, along with new MTEntryAuthorNickname tag to display it. This allows having a different name for display than for login.
  • Fixed file corruption bug when uploading files on Win32 machines; needed to use binmode. (sunpig)
  • Support for custom, user-created template modules, which can be included using the new MTInclude tag. (Christina Wodtke and many others)
  • Modified CGI scripts to get their full path from $0, and use that plus lib and extlib and the @INC directories, along with specifying the full path to mt.cfg. This should improve out-of-box compatibility with IIS.
  • Fixed bug where MTArchiveList above MTEntries on an archive template would cause the MTEntries to display just the most recent list of entries. (notfully)
  • When logging out, we set a cookie with an expiration date in the past; increased the amount of time in ``the past'' from 1 day to 1 year. (Laura)
  • Added MTDateFooter container tag. (silvercube)
  • Fixed bug with MTDateHeader not being output when posts from the same day but different months were one after the other (eg. a post from November 11, then a post from October 11). (hellgren)
  • Moved default templates into lib/MT/default-templates.pl, so that they can be loaded by multiple scripts/libraries. Changed mt-load.cgi to read templates from here, and also changed blog creation to install default templates in every new blog.
  • Added support for sending mail through SMTP, using Mail::Sendmail; broke out mail-sending stuff into MT::Mail. (Bill Turner)
  • Fixed bookmarklet bug where trying to bookmarklet a page with ampersands ('&') in the URL would chop off everything after the ampersand. (nasty)
  • Fixed MT::App::redirect so that it redirects to a full URL (including the host name and protocol), which fixes a problem on IIS. Also fixed redirects in mt-comments.cgi. (Matt Haughey)
  • Added 'title' attributes to all icons in left mininav, and now set window.status with appropriate tips for each icon.
  • Fix bug with stashed entries staying around after building archive lists. The symptom is that the lastn="N" attribute was not working properly. (Philip Winn)
  • Documentation fixes (typos, etc.). (Cory Preus)
  • Fixed Edit Categories screen when category labels have quotes in them; this was causing the labels to show up blank; they needed to be HTML-encoded. (Jenn Redwolf)
  • Fixed ``attempt to use unitialized value as ARRAY reference'' error when sending a notification without setting up any notification addresses. (Christina Wodtke)
  • Clarified that you must remove indentation from Blogger/Greymatter/NewsPro export templates when pasting.
  • Added appropriate context for MTArchiveDate tag outside of MTEntries context, on Date-Based Archive Template; added context for MTArchiveCategory tag outside of MTEntries context, on Category Archive Template. (Christina Wodtke)
  • Fixed TMPL_INCLUDEs on WinNT by giving HTML::Template the path to the tmpl/cms directory. (Bill Turner, Axel Kollmorgen)

  • Fixed bug when system's crypt implementation uses MD5 passwords (MT was not picking up the proper salt). (Monica Reyes)
  • Added form-validity checking to mt-comments.cgi for checking email address and URL. (Aaron Straup Cope)
  • Set $CGI::POST_MAX to 1MB, which means that uploads must be 1MB or less, to prevent denial of service attacks. (Aaron Straup Cope)
  • Added mt-export.cgi, which will export all of your MT entries into a format that can be suitably re-imported through the import mechanism. It is also useful for keeping backups of your entries. Functionality is linked from Import & Export Entries.
  • Fix bug in mt-comments.cgi where redirect after posting to popup comments would break styles (because redirect was using CGI::url(-base => 1), which is a newer feature in CGI.pm).
  • Added link to manual (HELP) in topnav.
  • When images are uploaded, and Popup Image is chosen to create a new entry, an HTML file will be created automatically to enclose the uploaded image, if you have defined an Uploaded Image Popup Template. New template tags <$MTImageURL$>, <$MTImageWidth$>, and <$MTImageHeight$> added for use in the new template. Added a default Uploaded Image Popup Template.
  • Added template linking functionality; allows users to manage their templates externally from the MT application, and have them automatically sync-ed into the MT database. Thanks to Ron Pacheco for patches and ideas.
  • Can now import comments from Greymatter.
  • Can now import to a particular category, either through the CATEGORY key (eg from a system that supports categorization, like NewsPro), or by selecting a default category for all new entries.
  • Fixed bug where import would create a new author with the same name as an existing author; if an author already exists, now, entries are assigned to the existing author.
  • Can now import extended entries from Greymatter and keep the extended portion separate from the main blog entry.
  • Import now handles indentation and leading spaces more robustly.
  • Fix bug where MTEntryDate inside MTEntryPrevious and MTEntryNext do not refer to the correct entry. (sunpig)
  • Added movabletype.org recently updated ping functionality for donors.
  • Added ``Syndicate this site'' link to default index template.
  • When deleting objects, check to see if we can load the object successfully before trying to call remove on it.
  • HTML-encode titles of entries on list & edit entries, so that if an entry title contains HTML (eg. an anchor tag), it doesn't break the display.
  • Added <$MTArchiveCount$> tag: number of entries in a specific archive grouping.
  • Use timegm_nocheck so that we don't get fatal errors when a date is out of range.
  • Changed use base to manual setting of @ISA in all libraries to improve compatibility with older perls, where base.pm is not a core install.
  • Improved error message when Local Site Path or Local Archive Path is unset when doing a rebuild.
  • Auto-check or -uncheck ``allow comments'' in bookmarklet when selecting a blog, based on the configuration for that blog.
  • Added <$MTEntryAuthorEmail$>, <$MTEntryAuthorURL$>, and <$MTEntryAuthorLink$> tags.
  • Added file attribute to the <MTInclude> tag, for pulling in an external file.
  • Fix JS bug in bookmarklet category selector. (nasty)
  • Fixed bugs in MTEntries category=``'' and MTInclude module=``'' where, if you have different categories/modules named the same thing across two different blogs, only the first would ever be loaded. (Brad Choate)
  • Added support for weblogs.com XML-RPC ping. Added blog config option to turn off the ping (it is on by default).
  • In List & Edit Entries, if an entry does not have a title display the first 22 characters of the entry body, followed by an ellipsis, rather than just displaying [No title].

  • Fixed bug where days="N" would override category="Foo" in <MTEntries> tag. (cwodtke)
  • Added DBM file locking (shared lock when reading, exclusive when writing).
  • Export process now exports excerpts, and import now imports them.
  • When you upload a file, if a file by that name (at that location) already exists, you now get a confirmation screen to overwrite the file, or not. (Requires that File::Temp is installed.)
  • Added search and replace functionality.
  • You can now upload files into specific directories beneath the Local Site Path and Local Archive Path.
  • When reading from DB files, MT::ObjectDriver::DBM will now open the DBM files in read-only mode, rather than read-write mode.
  • Fixed bug where <$MTInclude$> of a template module would not propagate conditions down to the template module contents; this meant that conditional statements like <MTIfEntryIfExtended> would not work in a template module. Now they do.
  • Added Javascript ``Remember me'' to default templates (Individual Archive Template and Comment Listing).
  • Added <$MTBlogHost$> tag, which prints out the host part of the Site URL config setting. For comment cookies.
  • After uploading a file, in addition to being able to create a new entry with a link to the file/embedded image, you can now just view the HTML that would have been used in that new entry. This is useful when uploading multiple files per entry.
  • Fixed logout page so username and Logout link are no longer displayed in the navigation bar.
  • Converting paragraph and line breaks is now set separately for entries and comments. (If you are upgrading, make sure to turn this on for all blogs that you want it on for, because it is a separate setting.)
  • Added Archive File Templates, which allows you to specify the output file for a particular archive type, using regular MT template tags, allowing better organization of archive directories.
  • Changed XML RSS default template so that title and excerpt are now HTML-encoded to prevent XML errors.
  • Introduced four new global tag attributes: encode_html, dirify, lower_case, and upper_case.
  • In new comment notification email, added a link to the comments on the entry.
  • Added debug MailTransfer setting, which just writes out the mail message to STDERR.
  • When emailing comments in mt-comments.cgi, if the user leaving the comment enters an email address, use that for the From: address in the email message.
  • Reorganized default config file to provide descriptions of config settings, more instructional text, etc.
  • Added NoTempFiles config file option to turn off use of temp files when writing output files.
  • Added link to Edit this entry after posting an entry via the bookmarklet.
  • Noted IE bug (Content-Type override) that can cause export problems.
  • Added the convert_breaks attribute to the <$MTEntryExcerpt$> tag.
  • Excerpt is now created on the fly when sending a notification, if you haven't entered an excerpt for an entry.
  • Fixed List & Edit Entries so that unprivileged authors are not allowed to delete entries.
  • Added XML-RPC server implementation of the Blogger API.
  • Added <$MTCommentOrderNumber$> tag.
  • In mt-check.cgi, added checks for File::Spec, DB_File, LWP::UserAgent, and SOAP::Lite (the last two are optional installs). Also added instructions on installing each of these modules.
  • Automatically-generated img tags (after uploading images) now contain alt attributes.
  • Category pulldown in bookmarklet is now sorted alphabetically.
  • After an entry is deleted, prompt the user to rebuild.
  • Remove whitespace at the ends of the meta (AUTHOR, TITLE, etc.) lines in the import file when importing.
  • Improved application code that determines paths to reduce reliance on SCRIPT_NAME environment variable. (Aaron Straup Cope)
  • Added DBUmask, HTMLUmask, DirUmask, and UploadUmask settings for the mt.cfg file. These are to be used to adjust permissions set on files and directories created by MT. Removed manual chmod calls. (Aaron Straup Cope)
  • In mt-comments.cgi, check whether an author has an email address saved in his/her profile; if not, don't try to email new comments (this was causing an error No Recipients Found).
  • Changed default templates so that the popup comments links do not have href="#" onclick=... but are not just href="javascript:...".
  • In mt-comments.cgi, when redirecting back to the comments popup window after adding a comment, automatically append a slash at the end of CGIPath if no slash is present.
  • Fixed <$MTCommentAuthor$> and <$MTCommentAuthorLink$> so that they return the empty string (not an error) if no author name is given in the comment, and thus will no longer cause rebuild errors.
  • Fixed context for <MTEntryNext> and <MTEntryPrevious> containers so that conditional tags (<MTEntryIfExtended>, for example) can be used.

  • Fixed nasty bug that occurred when using ``Link this file to a template'' feature, and manifested when rebuilding indexes, causing the rebuild process to hang.
  • Fixed discepancies in Creating a new blog section in manual.
  • Fixed typo in search and replace link to export feature.
  • Fixed bug that occurs when two entry_id input fields are present (because of list vs. scalar context--now force scalar context).
  • Fixed bug where, after uploading a file without an extra path, its URL would contain an extra forward slash (/) (same with popup HTML URL).

  • New default templates no longer use &lt;label&gt; tag in the Remember info? checkbox for the ``remember me'' JS, because it was breaking XHTML validation.
  • Fixed Linked File Templates so that, when linking a template to a new file that doesn't yet exist, the permissions will be set correctly (based on umask settings in mt.cfg).
  • Added new default templates and made them customizable by stylesheets.
  • Added the Comment Error Template to specify the layout of the page a user receives when there is an error with his/her comment submission (eg. an invalid or missing email address).
  • Usage of <$MTCommentPreviewState$> in the Comment Preview Template is now deprecated; handling of this tag will not be removed from MT, because existing users are certainly still using it. But it is no longer recommended as the best method for comment previewing (instead see the new default templates for editable comment previews).
  • Changed the &lt;title&gt; tags of the default templates so that they are more descriptive by default of the content in the page (and no longer just MOVABLE TYPE : TEMPLATE).
  • Added <MTGetVar> and <MTSetVar> for use in passing around values to template modules, etc. (Yaacov Akiba Slama)
  • Added troubleshooting docs on fixing ``Moved hosts, can't login'' DB problems.
  • Added an editable comment preview form to the Comment Preview default template, using encode_html="1" and convert_breaks="0".
  • Added <MTArchiveNext> and <MTArchivePrevious> containers for displaying links to the next and previous date-based archives, respectively.
  • Added encode_js filter. (Yaacov Akiba Slama)
  • Added zero_pad and space_pad filters.
  • Fixed bug where, when posting via bookmarklet, allow comments on a new entry would be turned off even if the default is set to true, in the situation where the allow comments checkbox is not included on the bookmarklet. (Volker Weber)
  • Fixed a bug in mt-check.cgi where the module description (and reason for inclusion) would not be displayed.
  • Changed %l to %I in the default date/time format string, because %l is unsupported in some strftime implementations.
  • Removed <a name="comments"> from the default Comment Listing template, as this was causing problems with the form of the same name.
  • Added a convert_breaks attribute to the <$MTEntryBody$>, <$MTEntryMore$>, and <$MTCommentBody$> tags. This allows you to override the Convert line and paragraph breaks on a case-by-case basis, if desired.
  • Added <MTCalendar> and associated tags for a monthly calendar display of entries.
  • Now, if default-templates.pl cannot be found by mt-load.cgi, the actual error message will be given, which can be useful for determining path errors.
  • Fixed bug where using <MTArchiveList> and <MTEntries> within an Individual archive template would overwrite the entry object in the stash.
  • Added trim_to global tag attribute. (morbus)
  • You can now use lastn="N" in an <MTEntries> tag within an <MTArchiveList> container to only display the last N entries within a certain archive grouping; for example, to display the last N entries in each category.
  • Index templates and template modules are now sorted alphabetically in List Templates. (morbus)
  • Added remove_html global tag attribute. (morbus)
  • dirify now strips HTML tags (eg. <br>) and entities (eg. &amp;). (morbus)
  • In import dates, AM/PM is now optional; if not present the hour will be treated as on a 24-hour clock.
  • Fixed bug where setting words in excerpt to 0 would not work properly (ie. excerpt would still be generated using 20 words).
  • Made upload popup link onclick attribute return false.
  • Added index on comments for created_on column.
  • Added <$MTCommentID$> tag.
  • Fixed small comment bugs: if URL or email address was completely undefined (not blank, but undefined), this would cause a Build error; and the PreviewURL, PreviewAuthor, and PreviewEmail tags were not using the correct Comment context.
  • Fixed error message (importing => exporting) in mt-export.cgi.
  • Fixed error message when opening up index template file fails (error message included tempfile).
  • Now require at least version 0.8 of File::Spec, because of the use of splitpath (below). Changed mt-check.cgi to reflect this.
  • Use File::Spec->splitpath to split up path into directories and filename; this should fix a bug on Windows when rebuilding files.

  • Fixes for typos, broken links, etc.
  • Fixed truncated Delete and Cancel buttons on edit comment screen.
  • Fixed Mac IE problem in multiple category selection screen--when selecting all of the options in the left box, the right box would jump around on the screen. Fixed by adding a dummy category when the source box is going to be empty.
  • Preferred Archive Type option will now only show archive types that you have selected in Archiving.
  • Added a changes saved method after saving in power edit.
  • Made <MTComments lastn="N"> work when placed in entry context; it will only display the last N comments from that particular entry.

  • Lots of changes to the UI: leftnav, topnav, edit-entry screen, new-entry screen, etc.
  • Blog Editing Menu has now changed greatly to provide space for a welcome message (editable in blog config), blog stats, and links to 5 most recent posts and comments.
  • Added the ability to do NFS-safe database locking using .lock files and link(). This is not something most people should worry about; if it affects you, it's likely that you will know it. :) Thanks to Kelsey Cummings for ideas and code.
  • Hold and Release are now Draft and Publish.
  • <MTEntries lastn="1"> within calendar should display the most recent post from that day, not the earliest. Fixed.
  • In old versions, search and replace would not work unless you had the permission to edit all entries. Now it does--if you don't have permission to edit a particular entry, it is just not searched/replaced.
  • Added notes on Win32 installation, cgiwrap install, cgi-bin install, etc. Added example pictures of set permissions window in FTP program.
  • When posting a comment, if comment text is not provided the system will give an error.
  • Split up manual into sections, one HTML page per section.
  • encode_js no longer encodes / characters, because there is no reason to do so.
  • Added thumbnail creation interface (requires Image::Magick) for creating thumbnails of images uploaded through the system.
  • Added the ability to select a language other than English for date formatting and display.
  • Added a script for ``mail this entry''
  • Added boolean AND/OR logic to the <MTEntries> category attribute.
  • Added power-editing interface.
  • Status of imported entries will now be set to the default status assigned in blog configuration (rather than always Release, as was the case before).
  • Changed class="container" to id="container" in default templates. (Thanks to Brad Lauster)
  • Added graphical editing shortcuts to bookmarklet window.
  • Use HTML::Entities for HTML-entity encoding if it's available; if not, use the standard routines we've been using.
  • Added <$MTBlogEntryCount$> and <$MTBlogCommentCount$>.
  • Added RSS 1.0 template to the default templates. Thanks to Rael Dornfest for sending it.
  • Added <$MTBlogTimezone$> tag, which displays the timezone as an offset from UTC in +|-hh:mm format.
  • Added the <$MTArchiveDateEnd$> tag, which represents the end date of a date-based archive (Daily, Weekly, or Monthly) and thus can only be used in a date-based context. It is a standard date tag, in that it accepts a format attribute like any other date tag.
  • Made archive_type attribute to <MTArchivePrevious> and Next work.
  • Fixed graphical editing shortcuts so that if nothing is selected, nothing happens--this will prevent the issue where empty tags are added at the top of the page when nothing is selected.
  • Added comment IP banning.
  • Split configuration screen into 4 screens: core setup, preferences, archive setup, IP banning.
  • Added the ability to assign multiple archive templates to a single archive type; added an interface for associating archive templates with archive types, added MT::TemplateMap object, etc.
  • Improved error message when an error occurs reading mt.cfg, or when the file cannot be found.
  • Fixed bug where <MTEntries lastn="N"> on a Category Archive would grab the wrong set of entries (not in the correct order).
  • Changed notification message sending so that only one will be sent to the author of the entry, rather than N / 20, where N is the number of notification addresses on the list.
  • Added more sort and display options to <MTEntries>: recently_commented_on attribute, and sort and sort_by options.
  • Fixed parsing response from weblogs.com ping, which changed formats slightly and broke the regular expression.
  • Added ability to truly delete categories.
  • Now use a better hack to get non-UTF8 data in mt-xmlrpc.cgi: we run the data through $foo = pack 'C0A*', $foo, which strips the UTF8 encoding and flag. So at least we can now use XML::Parser, if it's there.
  • Added lastn attribute to <MTComments>.
  • Added <$MTCommentEntryID$>.
  • Added offset attribute to <MTEntries>.
  • A category archive page will no longer be generated for non-categorized entries (in 1.x an empty archive page with the name cat_.html would be generated).
  • Added MT::App::print and MT::App::send_http_header, both of which do the Right Thing under either CGI or mod_perl.
  • Fixed script name detection in MT::App::script, particularly under mod_perl.
  • Eliminated mt-export.cgi and mt-import.cgi by moving import and export into the MT::App::CMS class (with some modifications to enable them to still run with unbuffered output).
  • Added ImportPath directive to mt.cfg; defaults to ./import, and allows setting the path to the import directory.
  • When a new entry is posted, the activity log will now be updated with the author and entry ID.
  • Added IP address logging for comments, along with new tags <$MTCommentIP$> and <$MTCommentPreviewIP$>.
  • Moved all comment code from mt-comments.cgi to MT::App::Comments, a new app subclass of MT::App.
  • Changed calendar in default templates to add <span class="calendar"> into every cell.
  • Split up individual entry rebuild into segments of N entries at a time so as not to kill servers. (40 entries at a time is the default.)
  • Force rebuild window to focus when it loads.
  • Fixed bug where an apostrophe (') in an author name would cause a JS error on List & Edit Entries.
  • Added <$MTBlogArchiveURL$>, the blog Archive URL.
  • Added <MTCategories> and <$MTCategory*$> tags to list all categories.
  • <MTArchiveList archive_type="Category"> is now the same thing as <MTCategories>. Also, categories are listed in alphabetical order.
  • Added <MTEntryCategories> to list all categories to which an entry belongs.
  • <$MTEntryCategory$> now displays the entry's primary category.
  • Added the category attribute to <MTCalendar> to only display entries from a certain category in the calendar.
  • In <MTEntries>, if a list of entries is already in context (for example, in a date-based archive template), category and author can now be used to filter that list.
  • Added lastn attribute to <MTArchiveList>.
  • All file-management operations are now abstracted out to the MT::FileMgr class.
  • Added public_key field for author.
  • Made the rebuilding entry failed error message more verbose--now it contains the name of the entry on which the rebuild failed. Useful when tracking down problems with entries. (David Gagne)
  • Fixed a bug in the XML-RPC code where HTML entities would not be decoded; thought the XML parser was doing this. But it wasn't.
  • In the List Notifications screen, the notification records will now be sorted by email address.
  • Added spam_protect attribute to all tags which can show the user's email address to protect from spambots.
  • Added <$MTVersion$> tag.
  • Added single-quoting where warnings were popping up in Perl 5.004_04.
  • Added docs about %Z (timezone) date tag format.
  • Added an index on entry modified_on column.

  • Sort categories and authors in power-edit screen.
  • Changed input box styles back to 20px so that they are not too small in Windows.
  • Added caching of templates when rebuilding archives; this means that for each archive type, each archive template need only be loaded once. Hopefully this will improve performance.
  • Fixed bug where Convert Line Breaks setting was not applied to preview page.
  • Shortened manual split page names so that they don't get truncated.
  • Export now exports in ascending chronological order. (morbus, and others)
  • Added <p> and </p> around the welcome message on the editing menu, so that anything typed in (even without adding HTML) will get the proper type formatting.
  • Untaint template's linked file path; we allow anything, assuming that the user who set it up knows what he/she is doing. (Norch)
  • Fixed recently_commented_on, which was broken because it was resorting the entries into the wrong order.
  • Fix warning when select all entries for limit pulldown on list & edit entries.
  • Added bookmarklet config option to include Convert Line Breaks checkbox on bookmarklet window.
  • Fixed bug where Convert Line Breaks would not get set when posting from bookmarklet. (RoyalTS)
  • Fixed bug with German date/time display. (RoyalTS)
  • Fixed typo in mtchanges.html. (morbus)

  • New New Entry and Upload File icons for left nav.
  • Added troubleshooting section for mt-load.cgi and DataSource errors.
  • Added Post Status pulldown to import so that "Status" default in blog config can be overriden. Added help links to import options.
  • Added Javascript validation for every DELETE button that deletes items from a list; if nothing is checked, now gives a JS alert.
  • HTML-formatting buttons (bold, italic, URL, etc.) will now only show up when using a browser that supports them.
  • mt-upgrade.cgi now detects if MT databases are already upgraded; if so, it stops, and doesn't try to upgrade again.
  • When running under mod_perl, use Apache::Request instead of CGI.pm, because it's faster, less bulky, etc. Required changes to any code calling CGI.pm functions other than param.
  • Deleting entries from the power edit screen will now return you back to the power edit screen (as opposed to list & edit entries).
  • Saving the power edit screen will now maintain the same page that you were on when you saved, rather than starting back at the beginning.
  • Fixed a bug in MT::ObjectDriver::DBM where offset would not be applied when using a join.
  • Fixed heights on power-edit input boxes and on thumbnail boxes.
  • Fixed Monthly rebuild slowness (thanks to Norch for the shell access so I could debug it). Turns out it was due to some unimplemented short-circuit logic. In addition, templatemaps are now cached to speed up rebuild even further.
  • Category and author Filter pulldowns are now sorted alphabetically.
  • Fixed Email Address => IP Address on IP Banning screen.
  • Fixed help links (broken when help file names were shortened).

  • Added border="0" for thumbnail image after choosing popup image; also fixed the invalid XHTML.
  • Fix thumbnail creation error by providing Image::Magick with the image format on $magick object creation.
  • Fix bug on category-editing page where an error will be displayed if the user who created a category has been deleted.
  • When creating a new author, give an error if no password is provided.
  • Fix bug with Convert Line Breaks being unchecked for pre-2.0 entries even if the default in blog config is set to on. blog
  • Cache format hashes for dates after creating them.
  • Added another speed enhancement, particularly for large archive pages, by caching the MT::TemplateMap preferred object for an archive type.
  • Moved excerpt below entry body and extended entry body in bookmarklet window to match layout on edit/new entry pages.

  • New and edit entry screens are now modular and customizable; you can set the fields you'd like to appear, and set where you would like the button bar (top or bottom of page).
  • Increased width of Category pull-down in bookmarklet window.
  • The form you get after you've uploaded a file will no longer submit in err when you press return; all submits are through the buttons using JS anyway, so the form submit is now disabled.
  • Changed error screen so that there are now 2 buttons: CLOSE and GO BACK. So it's clearer what happens when you click the buttons.
  • Refactored build_page and load_tmpl code; CMS-specific logic now goes into MT::App::CMS::build_page, and parameter-setting goes into MT::App::build_page. So load_tmpl now just loads the template.
  • Fix import so that new imported entries get Convert Line Breaks set properly.
  • When listing Five most recent entries on editing menu, grab first 22 characters of entry body if no entry title.

  • Added docs for entry screen customization.
  • If editable authored-on date is not to be displayed on customized entry screen, display an uneditable version instead (because this is useful information).
  • Fixed bug with creating thumbnails on Windows (binmode issue).
  • Fixed bug where <$MTArchiveTitle$> on category archive would display incorrect category label (because it was retrieving the label from the first entry's primary category).
  • Fixed bug where convert line breaks and allow comments values would not be set to default when using Custom entry screen settings without those two checkboxes.
  • Fixed bookmarklet login bug that was introduced in 2.0b4 or somewhere.
  • Power edit and list & edit entries now only show authors that are registered for the particular blog.
  • Added the encode_php global tag attribute (thanks to Brad Choate for the patch).
  • Fixed bug with saving profile without setting a password (introduced in 2.0b4).
  • Moved setting of global app variables back into load_tmpl, because some other parts of the code call it directly, bypassing build_page.
  • mt-xmlrpc.cgi now checks if it has XML::Parser; if not, it uses this knowledge to determine whether or not to decode HTML entities.
  • Fixed bug in date/time-formatting: times in the hour of 12 PM were being displayed as 12 AM.

  • Added webMaster, language, lastBuildDate, and pubDate to both RSS templates.
  • Added encode_html="1" to all RSS fields that didn't have it already.
  • Added Norwegian dates.
  • Added test for mt-check.cgi to determine whether we are running under cgiwrap or suexec.
  • Added a new global tag attribute encode_url (thanks to Scott Andrew LePera and others for the idea).
  • Changed the behavior of the publish flag in blogger.newPost; previously, if set to false the new entry would be saved as a draft. This was a bad idea, for various reasons. So now, no matter the value of the publish flag, the new entry is saved with post status == publish. It will just not be published until rebuilt manually. There is a new mt.cfg option, NoPublishMeansDraft, which when set to 1 enables the old behavior.
  • mt-xmlrpc.cgi will now decode the &apos; entity properly.
  • Added mt.getCategoryList, mt.getPostCategories, and mt.setPostCategories to the XML-RPC API. Thanks to Daniel Drucker for the original implementation of these methods.
  • Added a metaWeblog.getRecentPosts method, which is like the blogger.getRecentPosts method, but returns more information about each entry (equivalent to the data returned from metaWeblog.getPost), including the entry title.
  • Changed #calendar to .calendar in default stylesheet to match with usage in the templates.
  • Fixed date in notification messages to use MT date-formatting, which means that it will now work properly on systems that don't support %e, and that it will use the selected date formatting language from the blog config.
  • Fix bug with categories not being created in import if a category of the same name exists in a different blog. (Jonathon Delacour)
  • Silence warnings in mt-xmlrpc.cgi execution.
  • The export mechanism now exports your Post Status, Allow Comments, and Convert Breaks values for each entry, and the import mechanism will import them. This means that when you use export-import to transfer data, this metadata will not get lost in the transfer.
  • Added <$MTEntryFlag$> and <$MTEntryStatus$> tags. They are not particularly useful in templates, but they are used in the export mechanism.
  • mt-xmlrpc.cgi will now look for mt.cfg using the full path to the file, rather than just in the current working directory.
  • Added HTMLPerms and UploadPerms to give even more control over the permissions of files created by the system--this can be used if you are generating PHP files on a server that needs the execute bit set on PHP files, for example. Thanks to mval@axium.net and mouse@axium.net.
  • Subjects of notification email messages will now be converted to 7-bit to comply with the regulation that mail headers should be 7-bit. (dotWisner)
  • Added Content-Transfer-Encoding: 8bit to notification messages in case contents contain 8-bit-encoded data. (dotWisner)
  • Fixed a long-standing bug with email notifications using Mail::Sendmail (the SMTP usage), where the notifications would not get sent. Now they will get sent.
  • Added a rebuild_me flag to MT::Template so that index templates can be set to not automatically rebuild; in this case, they need to be rebuilt manually using the REBUILD button on the template-editing page.
  • Added the ability to rebuild one index template at a time.
  • Big rebuilding speedup by caching all placements for a particular blog in memory so that usage of <$MTEntryCategory$> should now be much faster. This requires the new blog_id column in MT::Placement, which is why we need to the mt-upgrade201.cgi script.
  • When using Mozilla or NS 6, textareas should now wrap properly (finally). Thanks to Ask Bjørn Hansen for the hack.
  • Give an error message when rebuilding if an index template does not have an Output File set.
  • Now use spam_protect in comment email tags in default templates.
  • Added ``generator'' info to RSS 0.91 and RSS 1.0 index templates to idenfity Movable Type as the RSS generator.
  • Fixed bug in import where importing comments using NO ENTRY could import comments into a different blog than the one intended.
  • Fixed DOCTYPE URL in default templates.
  • Speed boost: <MTArchiveList archive_type="Category"> (and <MTCategories>) no longer load the list of entries in the category automatically; instead, they only load the list if you use an <MTEntries> tag inside of the container. Sample numbers: 10s for rebuilding the list 100 times before, 4s after the change.
  • Added mt.supportedMethods method to mt-xmlrpc.cgi, to return a list of supported methods.
  • In the ``view complete list of authors'' screen, you can now only delete authors who you have created, or yourself.
  • <$MTEntryExcerpt convert_breaks="1"$> will now properly add <p> and </p> tags around an excerpt even if the excerpt is auto-generated.
  • Added Google API hook for search and similar search in <MTGoogleSearch>.
  • Added <MTEntriesHeader> and <MTEntriesFooter>. Thanks to wcowley for the patch.
  • Now supports three metaWeblog methods: newPost, editPost, and getPost.
  • Added note about using PERL5LIB in mod_perl setup instructions.
  • When importing an entry, if it has comments listed in the import file, the allow_comments flag will automatically be set, even if the default is not to allow comments on new entries.
  • The offset attribute to <MTEntries> will now work even when there is already a list of entries in context, which means that you can use it like this:
    <MTArchiveList archive_type="Monthly">
    
    <$MTArchiveTitle$>
    <MTEntries lastn="2"><$MTEntryTitle$><br /></MTEntries>
    <MTEntries lastn="2" offset="2"><$MTEntryTitle$><br /></MTEntries>
    
    </MTArchiveList>
    
  • The file extension for popup HTML files generated from uploaded images is now determined by the archive file extension, if set, and .html otherwise.
  • You can now use absolute paths in the Output file setting for index templates.
  • Updated documentation on MT import format.
  • If no format is provided to a date tag (eg. <$MTDate$>), the default format used is now influenced by the language setting.
  • Wrote documentation for the MT::Util utility functions.
  • Rewrote MT::Util::wdays_from_ts so that the weekday is calculated internally, rather than relying on Time::Local to convert an MT timestamp into epoch seconds to get the weekday. This allows usage of dates before 1970 and after 2037 in MT.
  • Syndicate this site link in default templates now links to RSS 1.0.
  • Fixed bug with <$MTArchiveCategory$> not showing the right category.
  • Fixed bug with thumbnail URL with windows pathnames.
  • Added half-timezones: UTC+9.5, UTC+6.5, UTC+5.5, UTC+3.5, UTC-3.5.
  • Changed name of bookmarklet window from MTpost to _blank so that multiple windows can be opened at once.
  • Add a / to the end of the StaticWebPath value if it doesn't already have one at the end.
  • Made it clearer that saving the secondary categories does not rebuild.
  • Fixed month names (Feb, Dec) for French dates, and Sunday for Swedish. Also, now just use AM/PM instead of du matin/du soir.
  • Fixed link to export in Import & Export Entries.
  • Changed Comment popup link in default templates so that it will work even without Javascript.
  • Changed {spam_protect} to {'spam_protect'}, {m} to {'m'}, and {y} to {'y'} so as not to cause errors in the (very old) 5.004_04 version of Perl.
  • Fixed permissions in 755.gif image in docs.
  • Fixed bug where directories were not being automatically created on OS X; turns out OS X doesn't like / at the end of a directory in mkdir().
  • Fixed encode_php (which I broke). Thanks to Brad Choate.
  • Added NoHTMLEntities option to the mt.cfg option to specify whether HTML::Entities should be used in encoding characters into entities.
  • Added the glue attribute to <MTEntryCategories>.
  • Added the ability to use the static input field in comments to pass through a URL to redirect to after posting a comment. Thanks to Boxes & Arrows for the idea.
  • Fixed cookie path when mt.cgi is at the root of a server, like http://www.foo.com/mt.cgi.
  • Power edit window now resizable.
  • Removed -T from mt.cfg and mt-send-entry.cgi.

  • Updated documentation on linking to comments.
  • Fixed bug with <$MTCommentPreviewIsStatic$> tag causing build errors when previewing comments. (Introduced in 2.1)
  • Fixed bug with <$MTArchiveCount$> not working properly for category archives.

  • Added TrackBack, a peer-to-peer framework for communication between weblogs. Can track cross-weblog conversations/discussions, provides remote content repositories. Has password protection, IP banning, automatic RSS output, and email notification.
  • Added MySQL backend support.
  • Added the <$MTBlogRelativeURL$> tag to produce a relative URL to your main blog.
  • Added <link> tag navigation (prev, next, start) to Individual and Date-based archive templates. Thanks to Mark Pilgrim.
  • Strip HTML from author, email, and URL comment fields.
  • Added decode_html global tag attribute to decode HTML entities.
  • Added title=``1'' and excerpt=``1'' attributes to <MTGoogleSearch>. Thanks to Dave Sifry for the patch.
  • Added the ability to easily add new tags via the plugins directory and the MT::Template::Context::add_tag method. Thanks to Felix S. Gallo for the idea.
  • Improved text generated from uploaded image or file. (Brad Lauster)
  • Changed appearance of pinging and rebuilding windows.
  • Auto-select default post status when blog is selected in bookmarklet.
  • Added permaLink element to the struct returned from metaWeblog.getPost and metaWeblog.getRecentPosts.
  • Fixed bug with saving entry you created when you don't have rebuild permissions.
  • Added PingTimeout setting.
  • Split off rebuild and ping from save entry, so that they now occur on separate screens (though still automatically). This gives a better indication of status to the user, as well as enabling more ping options (like TrackBack).
  • Added descriptions for categories and the <$MTCategoryDescription$> tag.
  • If entry does not have title in search results, first 22 chars of body will be used instead.
  • Fixed bug where entries saved as Draft would show up when using OR or AND in the <MTEntries category="..."> tag.
  • Fixed related="1" google search.
  • Added Finnish as a date formatting option. (skithund)
  • Made <$MTEntryDate$> work in comment listing template.
  • Standardized stylesheet links in default templates.
  • Changed admin:generatorAgent to the proper format (a URI).
  • Added <link> tag for RSS template to default main index.

  • Very important bug fix to MySQL schema: Changed all *_created_on columns to the datetime type instead of the timestamp type. The latter could have very bad effects if used within the MySQL shell (although through MT's libraries it is not a problem). Thanks to shanson for finding this.
  • The plugin framework can now create container tags (thanks to Adam Kalsey for pointing out that it couldn't before).
  • Added encode_xml global tag attribute to escape special XML characters.
  • Changed default RSS templates to use encode_xml=``1'' rather than encode_html=``1'', because the latter will encode characters into undefined XML entities.
  • Added encoding=``iso-8859-1'' to default RSS templates. This means that users using other encodings will have to change the RSS templates.
  • Made bind_columns usage compatible with older versions of DBI that expect the attributes hashref as the first arg.
  • Fixed bug with Allow pings default not being unchecked after pressing save. (Robyn)
  • Fixed MySQL usage under mod_perl to look in the right spot for the mt-db-pass.cgi file. Thanks to Ask Bjørn Hansen for the patch.
  • Fixed mt-load.cgi to set email to the empty string, so that it's not NULL.
  • Changed from using lib->import method back to unshift @INC because the former seemed to be causing problems for some people.

  • Localization: the MT interface can be available in multiple languages, on a per-author setting.
  • Integrated Jay Allen's mt-search (Thanks, Jay!). We've made the following changes from version 1.31b:
    • Rewrote ``new comments search'' to make it more scalable (using recently_commented_on functionality)
    • Added a search log through the Activity Log.
    • Added search request throttling, to help against denial of service attacks.
    • Merged mt-search.cfg directives into mt.cfg.
    • Customized default search templates to use MT stylesheets.
    • Including Template Modules using <MTInclude> tags now works, though you should be careful if you have more than one blog in the system. See the documentation for more details.
    • Added an IncludeBlogs config setting and form field to allow for setting a list of blogs to include in the search (as an alternative to excluding a list of blogs). IncludeBlogs overrides ExcludeBlogs.
    • Changed AltTemplateN directives to just AltTemplate. You can now set an infinite number of alternate templates.
    • Renamed TemplateDir setting to SearchTemplatePath to avoid confusion with the TemplatePath setting.
    • Reworked as an MT::App subclass.
  • Added ability to ping blo.gs and other services.
  • Made default templates more accessible: added summary to calendar table; changed month name to a <caption> tag; changed day names to <th> headers and added abbreviations; blog title in banner is now linked back to main page; now use real header tags, eg <h1>; now use relative font sizes, eg small; use <label> on comment form elements. Thanks to Mark Pilgrim's 30 Days to a More Accessible Weblog.
  • Image thumbnails can now be created using the NetPBM tools, if your system has those. Look at the ImageDriver and NetPBMPath settings in mt.cfg. The default is still to use ImageMagick.
  • Added TrackBack auto-discovery, which can automatically find TrackBack ping URLs based on permalinks in entry bodies. These entries can then be pinged without any extra effort. Inspired in part by the pingback specification.
  • Added a new stylesheet as the new default style for new blogs.
  • Added a Keywords field to the new/edit entry screen, for storing search keywords/metadata, along with a <$MTEntryKeywords$> tag.
  • Fixed RSS 1.0 template so that we're now using Dublin Core tags instead of RSS 0.9x extensions. Thanks to many concerned parties. :)
  • Fixed a bug in the MySQL implementation with recently_commented_on when using MySQL 3.23.45 (or earlier?). Thanks to Adam Kalsey for the fix.
  • TrackBack pings should now be sent using POST instead of GET.
  • Added encode_xml="1" to the <$MTEntryLink$> tags in the default RSS templates (to encode ampersands, among other things).
  • Update pings (eg weblogs.com, blo.gs, MT, etc) are now sent only when an entry is either new (and published), or was previously a draft, and is now published.
  • Send entry title in subject of notification messages.
  • Added two new date formatting tags, %x and %X. The former displays the language-sensitive date, and the latter the language-sensitive time.
  • Improved the default settings for TemplatePath, ImportPath, PluginPath, and SearchTemplatePath, so that they are now based on the detected directory where MT is run from, rather than just ./foo (off of the current working directory).
  • Added <MTBlogs>, a container tag to list all of the blogs in the system.
  • Fixed thumbnail and HTML popup filenames when the uploaded image filename contains multiple . (periods). (Ask Bjørn Hansen)
  • <$MTCategory*$> tags can now be used in category archive file templates.
  • MT::Util::encode_xml now encodes apostrophes for XML. (Timothy Appnel)
  • All container tags in MT::Template::Context now propagate conditions properly. (Brad Choate)
  • Added sprintf global tag attribute. Thanks to Brad Choate for the patch.
  • Increased height of main entry text window if there is no extended entry.
  • Changed RDF so that TrackBack ping URL is now in trackback:ping. Should be backwards-compatible.
  • Added AdminCGIPath setting to use if mt.cgi URI is different than public URI (eg if you're using https).
  • <$MTBlogEntryCount$> no longer includes entries marked Draft. (Brad Choate)
  • Added MT->version_number for just the numeric portion of the version.
  • Changed TrackBack ping URLs to use path info for TrackBack ID instead of query string. This allows using POST requests.
  • Tags can now be used with XMLish / (forward slash) at the end, which allows using a tag both as a container and as a variable tag. Multiline attributes are also possible. Thanks to Brad Choate for the patch.
  • Search and replace (within MT) can now search in keywords.
  • Set default date formatting language to English if not set.
  • Added optional language attribute to <$MT*Date$> tags, allowing you to override your per-blog language date formatting setting. (Justin Hall)
  • Added entry title to comment and TrackBack ping notification messages.
  • Added <MTPingsSent> container to list the TrackBack pings sent from a particular entry.
  • Added <$MTBlogSitePath$>, the Local Site Path from blog config.
  • Fixed bug with OR in part of category name when using boolean with <MTEntries category="Foo OR Bar">.
  • Container tags can now be nested within container tags of the same name (eg <MTEntries> inside another <MTEntries>) without using a template module. Thanks to Brad Choate for the patch.
  • Default PingTimeout setting is now 15 seconds instead of 10.
  • Added checkbox in bookmarklet TrackBack item when there is just one TB-enabled entry. Thanks to Phil Ringnalda.
  • Fixed bug with half timezones and MySQL by changing blog_server_offset column to a float.
  • Improved security when deleting objects--now we perform the ``has-permissions?'' check not only before displaying the option to delete in the UI, but also before deleting the actual object in the system.
  • Fixed CGIMaxUpload example in mt.cfg; the underscore was causing the postmax to be set to 500 bytes, causing spurious Uploaded file too large errors.
  • Daily, Weekly, and Monthly archives are now rebuilt in segments, N entries at a time, just like individual archives. N is based on a multiplier of the EntriesPerRebuild setting in mt.cfg.
  • Moved all XML-RPC implementation methods into MT::XMLRPCServer, so that mt-xmlrpc.cgi is just a shell. This allows using the XML-RPC implementation with mod_perl.
  • Added mt_allow_comments, mt_allow_pings, mt_convert_breaks, mt_text_more, and mt_excerpt extensions to the content struct in metaWeblog.newPost and metaWeblog.editPost, and to the return values in metaWeblog.getPost and metaWeblog.getRecentPosts.
  • Only show ``5 most recent comments'' and ``5 most recent pings'' if there are any.
  • Fixed bug with OR/AND booleans and categories: the OR/AND now respects the context in which it was used, and filters the list of entries already in context, rather than always listing all entries that match in the entire blog. Thanks to Ben Hatton and others.
  • Added CommentScript, TrackbackScript, and SearchScript config variables to make it easier to configure MT for mod_perl or in situations where Perl scripts need .pl extensions.
  • Documented the words=``N'' attribute to <$MTEntryBody$>.
  • When rebuilding an index template, the rebuilt screen now has a ``View this page'' link.
  • List 5 most recent pings on the main menu for a blog.
  • Now use Resize instead of Scale when scaling images using ImageMagick. Also, remove all profile information from the image. Thanks to Michael S for the patch.
  • TrackBack pings are now imported and exported like comments.
  • When exporting, make sure to set date language to English, so that exported AM and PM will be in English.
  • metaWeblog.newPost and metaWeblog.editPost now accept a dateCreated parameter in the struct in ISO.8601 format to specify the authored-on date. Thanks to Bill Kearney for the reminder.
  • If an author's password is NULL, mt-db2mysql.cgi now converts it to the empty string before sticking it in MySQL.
  • mt-check.cgi now displays the version of the module installed.
  • Attributes hash ref is now localized before being passed in template tag handlers, which means they can modify the list of attributes in a localized scope. Thanks to Brad Choate for the idea.
  • Template parser now parses attributes with embedded $ characters properly (like <$MTFoo bar="/baz$/"$>). Thanks to Brad Choate for the pointer.
  • Fixed bug with invalid (empty) ALLOW PINGS values.
  • Added title="page title" to link created in bookmarklet posting window.
  • Added validity checking for URLs sent in TrackBack pings.
  • Only load files in the plugin directory whose extensions are .pl. (staggernation)
  • Added show_email and show_url to <$MTEntryAuthorLink$> and <$MTCommentAuthorLink$>. These let you control whether the email address or URL is displayed in a particular instance of the tag. (syndromes)
  • Added the following languages for date formatting:
    • Japanese (Justin Hall)
    • Icelandic (Einar Orn Einarsson, Ingvi)
    • Slovenian (gandalfar)
    • Czechoslovakian (Johanka)
    • Danish (henrik hammer berthelsen)
  • Link from bookmarklet now includes title attribute with title of page. (Todd Dominey)
  • Fixed postion to position in the default stylesheet. (Doug Feuerbach)
  • Added a link to the edit-entry screen on the edit-comment screen to edit the entry on which the comment was made.
  • Fixed bug where author count could include authors who no longer have permissions on the blog.
  • Added mt.publishPost method to XML-RPC interface to rebuild the files for a particular entry.
  • Improved detection of MT directory (now detected from Config parameter to MT::new).
  • Changed TrackBack entry pulldown in bookmarklet to menu-long style. (girlie)
  • TrackBack RDF data is now enclosed in HTML comment tags. Added comment_wrap attribute to <$MTEntryTrackbackData$> to turn off this wrapping.
  • Added namespace URLs to the <html> tags in the default templates.
  • Fixed bug when importing data when using the MySQL version when ``import as me'' is unchecked. (Kristine)
  • If the path you specify as your DataSource in mt.cfg does not exist, you will now get an error. This should help in figuring out installation problems, perhaps.
  • Added MT::Template::Context::add_global_filter to add a global tag attribute.
  • Added NoLocking config option for use on systems using Berkeley DB where flock() and link() are both unimplemented (some Windows systems). Not to be used unless one knows what one is doing. Thanks to dws for the patch.
  • Added the <MTCommentEntry> tag, a container tag representing the entry on which a comment was posted. So you can use <$MTEntry*$> tags inside of that container referring to the entry.
  • Fixed dc:identifier and URL sent in TrackBack ping so that they include the numeric ID for the permalink, if the preferred archive type is not individual.
  • Added the <$MTStaticWebPath$> tag, which displays the value of the StaticWebPath that you've set in mt.cfg.
  • The comment sort order you've chosen in Blog Config | Preferences is now used to sort the comments used in <MTComments lastn="N">. You can override this with the new sort_order attribute. Thanks to morbus for the patch.
  • Changed order of tag initialization in MT::Template::Context::init. Now tags created in plugins are set after the defaults, which means you can override the default tags. This should, of course, be done with caution. Thanks to Jay Allen for the reasoning.
  • Fixed compatibility problem with older versions of DBD::mysql, where the auto-increment column value is returned through $dbh->{insertid}, rather than $dbh->{mysql_insertid}.
  • Added MT::Template::Context::add_conditional_tag to add a conditional tag. This makes it easy for plugins to add conditional tags.
  • Fixed bug causing double slashes in <img> code for thumbnails.

  • Added Windows right-click bookmarklet functionality, where you can use a Post to MT Blog right click option to open the bookmarklet. Thanks to Anil Dash for the code.
  • Added a generic <MTElse> tag, which can be used to supply an ``else'' condition to any conditional. Thanks to Brad Choate for the code.
  • Added an <$MTEntryPermalink$> tag, which does the right thing when displaying the link for an entry: if an individual archive, it is not followed by an anchor; otherwise, it is.
  • When rebuilding files, only rewrite the original file if the content has changed. If the content is identical, leave the existing files in place, which won't update the modification time on the file. This allows better use of caching and conditional GETs when retrieving RSS (and other files). (Phil Ringnalda)
  • Removed <lastBuildDate> from the default RSS 0.91 template and made <pubDate> what it should have been (the date of the most recent entry). This allows better use of caching and conditional GETs when retrieving RSS.
  • Added a no_colon attribute to <$MTBlogTimezone$> to be used in constructing RFC822 dates, and fixed the format of <pubDate>.
  • Fixed bug with password-protected TrackBack-enabled categories by changing the URL to stick the passphrase into the path_info.
  • Fixed ImageMagick bug where older versions of Image::Magick would cause MT to give an error Can't locate auto/Image/Magick/Resize.al when creating a thumbnail. Thanks to Erin for the use of her server in figuring out the problem.
  • Fixed bug with anchors in permalink URLs sent in TrackBack pings. (Brenna)
  • Improved titles of MT screens so as to aid navigation, etc. (Justin Hall, and others)
  • Added a <$MTSearchResultCount$> tag, which counts results across all blogs found in the search. (mcroft)
  • Fixed bug with the TrackBack bookmarklet and single item TrackBack, where a typo was causing the checkbox with ping URL not to appear. (Anil)
  • Set charset in HTTP header to the same encoding we set in the meta tag.
  • Fixed problem with TrackBack URLs and servers that screw up the path info.
  • Added decode_xml as a global tag attribute. (Timothy Appnel)
  • Fixed bug where extra update pings would be sent on already-pinged entries, if the entries were saved from the preview screen.
  • Added a SafeMode config setting, on by default, to check for security and/or other issues and disallow them, but which can be turned off.
  • Disallow certain file extensions from being used in linked file templates, for security purposes: .cgi, .pl, .pm, and .cfg, if you're running in SafeMode. Thanks to Michael Croft for the note.
  • Made ``Edit your Profile'' description clearer so that users know they select their language there. (Eduardo Arcos)
  • Added PublishCharset option to mt.cfg to override the character encoding corresponding to your Preferred Language.
  • Fixed bug with finding ppmquant when creating thumbnails of GIF images; MT::Image was looking only in the PATH.
  • Changed text of MORE... link in default templates to Continue reading E<lt>$MTEntryTitle$E<gt>, to clearly identify the target of each link (for accessibility purposes). Thanks to Timothy J. Luoma for the suggestion.
  • Fixed bug in import where auto-extracted titles were only copied, not cut out of the entry body. Also, fixed a bug where multi-line titles would not be recognized between ``title start'' and ``title end''.
  • Added CONFIGURATION SETTINGS section to the manual with a description of all of the available mt.cfg settings.
  • Fixed bug where archive config screen didn't work properly if it was viewed in a non-English language.
  • Added a check for whether an alternate template (AltTemplate) has been specified for a given Template name in search. If not, give an error. The system previously gave a much more confusing error.
  • Added option to <MTGoogleSearch> to pull query from entry keywords. (Jason Trommeter)
  • Fixed Can't use "No title" as a method name bug (l10n-related).
  • Fixed bug in dc:date in TrackBack RDF (no T). (Phil Ringnalda)
  • You can now add the Keywords field to your bookmarklet.
  • Keywords are now exported and imported properly.
  • Fixed bug with <MTPings> showing all pings in the system if an entry doesn't have TrackBack enabled, but the tag is used.
  • Fixed bug with the password recovery screen. (fmt)
  • Added numeric check for limit to be used in SQL query. (Michael Stillwell)
  • Fixed TrackBack URL when it contains a passphrase on category edit screen.
  • Fixed ? link for Local Archive Path in upload popup. It was showing the Local Site Path. (tylerted)
  • Fixed a bug in MT::ObjectDriver::DBM that caused range searches not work when using join. This wasn't actually breaking anything in MT, but it was still a bug.
  • Fixed a bug where AdminCGIPath was used where it shouldn've have been. (Jeremy Beker)
  • Work around decimal places in old versions of MySQL with blog timezone.
  • Fixed perl doc typo in MT::Placement. (Sen Nagata)

  • Added Text Formatting options. Instead of a simple Convert Line Breaks checkbox, you can now set a different formatting option for each entry. Plugins can add new options to the Text Formatting menu, which allows for greater integration with the formatting within the system (for example, Text Formatting will be applied on the preview screen).
  • Added PostgreSQL and SQLite database drivers.
  • Incorporated Brad Choate's Sanitize plugin, adding an mt.cfg setting for a global default and a per-blog setting to override it. Sanitize is turned on automatically for the following tags:
    • <$MTCommentAuthor$>
    • <$MTCommentEmail$>
    • <$MTCommentURL$>
    • <$MTCommentBody$>
    • <$MTPingTitle$>
    • <$MTPingURL$>
    • <$MTPingBlogName$>
    • <$MTPingExcerpt$>
  • Added an <MTLink> tag to automatically generate the URL for an index template or an entry (by entry ID).
  • You can now add a new category from the Primary Category menu on the new/edit entry screen by choosing Add new category... from the menu.
  • Added a Closed status for Allow Comments and turned it into a pulldown menu rather than a checkbox. This allows you to turn off new comment posting for an entry, but leave up the old comments.
  • Added support for Creative Commons Licenses. You can select a license in your blog configuration, and the appropriate metadata will be set on your weblog index page and in your RSS 1.0 file.
  • Added metaWeblog.newMediaObject implementation for uploading files via XML-RPC.
  • Added an RSD template and a <link> tag referencing it, which simplifies XML-RPC client configuration. (Ben Hammersley)
  • Localization improvements:
    • More strings have been abstracted to language packs, including those in the default templates, which means that they can now be localized.
    • Password recovery, notification list, and comment/TrackBack notification messages can now all be localized in language packs.
    • Added a tag for the <$MTPublishCharset$> setting from mt.cfg, if using a different encoding. Default templates now use this tag, which defaults to iso-8859-1.
    • PublishCharset is now sent as the charset in notification messages and comment and TrackBack ping notifications.
  • dirify now converts certain high-ASCII characters (accented characters, etc) to their low-ASCII characters, meaning that something like crudit will be converted to crudite.
  • Fixed problem with updating pages when file sizes are the same and MD5 is not installed (now we compare file contents rather than sizes).
  • Added MT::PluginData, a storage area for plugins. It uses the same data storage method being used by the rest of MT (eg Berkeley DB, MySQL, etc). Thanks to the mt-dev list for the idea.
  • XML-RPC server now returns int instead of boolean for mt_allow_comments and mt_allow_pings.
  • If comments are not allowed on an entry, they are now rejected at the core of the system, rather than just obfuscated by not putting up a form. This is a side effect of the new open/closed/none distinction.
  • Changed comment forms in default templates to be more usable with respect to position of the ``Remember me'' elements. Thanks to Jeremy Hedley for the suggestions.
  • In addition to removing any properly-formed HTML tags, MT::Util::remove_html now encodes any remaining < characters into &lt; entities. (Seth Woolley)
  • Fixed problem with TrackBack auto-discovery and sending TB pings from entries created/edited via XML-RPC. Thanks to Annoying Old Guy for the debugging help and a patch.
  • Fixed the non-HTML::Entities encode_html routine to not double-encode things that look like entities (numeric or otherwise).
  • Added PingInterface, PingProxy, and PingNoProxy configuration settings for setting up proxy server info. Thanks to Christopher Laco for the patch.
  • Improved encode_xml (and decode_xml). It now checks whether the string to be encoded looks like it contains HTML tags or entities, and wraps it in CDATA if it does. Thanks to Timothy Appnel for the code.
  • Fixed bug in search engine where SearchTemplatePath setting could be overridden through the query string params. (Frank von Vliet)
  • Made MT::App subclasses Apache::Filter-aware by using filter_register if Filter is turned on. Thanks to Christopher Laco for the patch.
  • Fixed wide-character bug when using MD5, by utf8-encoding the data. Thanks to John @ John's Jottings for the patch.
  • HTML in entry titles was not properly encoded in the main blog menu (it was on the list/edit entries screen). This is now fixed. (Richard Soderberg)
  • Added note to installation docs on protecting mt.cfg with .htaccess file. (Patrick Gibson)
  • <$MTCGIRelativeURL$> now returns the full CGIPath setting if it doesn't look like an absolute URL (rather than the empty string).
  • Fixed bug in getting directory name on Win32 machines, where we were discarding the volume name. Now use dirname instead of splitpath.
  • Errors that occur when sending pings are now logged in the activity log, and an error message placed on the saved entry screen.
  • Fixed bug with password verification on certain FreeBSD versions of crypt(3) (where the implementation uses Blowfish), and made it work better in general by passing in the entire encrypted string and letting crypt deal with it (rather than trying to determine the salt).
  • Fixed bug where <$MTCategoryCount$> would include a count of drafts in the category.
  • Fixed bug where categories containing only drafts could still be listed by <MTCategories>. (girlie)
  • Call MT::Entry::permalink in all places where it should be called (rather than building from archive_url, etc).
  • Added sort_by and sort_order parameters to the search form, to allow for sorting within blogs in the search results.
  • Added month=``last'' attribute to the <MTCalendar> tag to easily create a calendar for the previous month. (wgriffin)
  • Fixed bug where pings would not be sent after previewing an entry.
  • If PublishCharset is set in mt.cfg, send it in the HTTP headers for search results, comments, and TrackBack.
  • Added Slovak date formatting and fixed Czech formatting. (Bill Shakespeare)
  • When setting form elements, the search script now uses selected="1" and checked="1" instead of just selected and checked, for the sake of validity.
  • Added mt.getRecentPostTitles, which is a bandwidth-friendly version of getRecentPosts, returning only title, date, post ID, and the user ID of the creator. (Adriaan Tijsseling)
  • The XML-RPC server now sends and receives the mt_convert_breaks field as a String value, rather than a boolean, to support the Text Formatting options.
  • Keywords can now be set and retrieved via the XML-RPC server in the mt_keywords field.
  • TrackBack ping URLs can be set via the XML-RPC server in metaWeblog.newPost and metaWeblog.editPost, in the mt_tb_ping_urls field.
  • Added code to untaint plugin filenames. (sdelmont)
  • Authors who do not have access to edit author permissions should not be able to get to the permission-editing screen, even manually. This is now fixed. (Jonathan Auer)
  • MT::Util::html_text_transform (the default ``convert line breaks'' code) will no longer add <p> tags around paragraphs that start with certain HTML tags (pre, table, ol, ul, pre, select, form, and blockquote). (Phil Ringnalda)
  • Linefeed (\r) characters are now stripped from templates and entries.
  • <$MTArchiveTitle$> and <$MTArchiveLink$> now work in Individual Archive Templates, and they do what you'd expect.
  • Fixed bug with inconsistent results for <$MTEntryCategory$> in search result templates.
  • A search query containing only whitespace is no longer considered a search; instead, the <MTNoSearch> container is rendered.
  • Refactored database code so that most of it can be shared amongst the database drivers.
  • Patched German date formatting so that %x and %X are language-sensitive. (Alex)
  • Fixed bug where an empty return value in an archive template would be treated as an error. (Jason Kottke)
  • Added <br clear="all" /> to the main index template to work around the IE problems. (Blake)
  • Fixed bug with global attribute overloading, where both the overloaded and the overloader would be called. (Timothy Appnel)
  • Added error checking for eval "use $user_class". (Dennis Haney)
  • Change mod_perl docs to have extlib added to @INC. (Dennis Haney)
  • Changed all visible instances of blog to weblog in the system and in the documentation.
  • Changed the Convert line and paragraph breaks in comments option into a Text Formatting selector to select a Text Formatting option. (Kristine Beeson)
  • Moved the Text Formatting option on the new/edit entry screen down below the Status and Authored On elements.
  • Fixed security hole where any author could create a blog. (Paul Hammond)
  • Set tab order in comment templates using tabindex, so that tabbing from name to email address to URL to comment text field still works. (Kristine Beeson)
  • Fix unitialized value warning with empty DB password. (Adam Kalsey)
  • Provide empty plugins directory in full install. (Anil Dash)

  • Fixed extra update ping problem--if TrackBack ping URLs were added to the URLs to ping, the update pings would be sent again. No longer. (Phil Ringnalda)
  • Fixed bug where turning on NoHTMLEntities 1 would cause entities to be lost in entries.
  • Added a <$MTEntryTrackbackID$> tag. Thanks to Christopher Laco for the patch.
  • Added a NoCDATA setting to mt.cfg to turn off the CDATA encoding, if you don't like it.
  • Fixed bug with PostgreSQL conversion, where after running mt-db2sql.cgi, sequences were not set to highest ID.
  • Fixed character encoding problem, where utf8 characters would be corrupted in published pages.
  • Fixed (for good) XHTML issues with search templates.
  • Added a NoOverride setting to mt.cfg, to specify search settings that cannot be overriden by the search templates or the user.
  • Language options in Preferred Language are now sorted by name.
  • Added ol and i as allowed tags to the default sanitize spec.
  • Fixed bug with text formatting not being applied for excerpts. Thanks to Brad Choate for the patch.
  • Removed use of Ping in the ImageMagick MT driver, because it returns results in inconsistent forms; now use Read and Get instead. Thanks to Aaron Straup Cope for the pointer.
  • Fixed bug where convert_breaks=``1'' did not work if both the entry and weblog had break conversion turned off.
  • Changed filter ordering in MT::Template::Context::post_process_handler so that Sanitize and encode_xml play more nicely. (Phil Ringnalda)
  • Fixed unitialized value related to $status_old. (Phil Ringnalda)
  • Don't overwrite original content when utf8-encoding for MD5 check in MT::FileMgr::Local::content_is_updated.
  • Fixed mt-upgrade25.cgi to check if version is greater than or equal to 2.5, rather than only equal to 2.5.
  • Comment and TrackBack notification messages are now properly localized.
  • Fixed rebuild problem with perl 5.004_04 and Sanitize (use of foreach modifier).
  • Added Estonian date formats. (Anti Veeranna)

  • Fixed a security vulnerability.

  • Fixed faultCodes returned from XML-RPC server to override the default SOAP::Lite value, which wasn't an int (it should be). (Adriaan Tijsseling)
  • Fixed Javascript error with MT It! caused by Windows security update. Thanks to Phil Ringnalda for the fix.
  • Creative Commons licenses can now be removed (but should be done so sparingly, as the licenses are designed to be irrevocable). Also, added more warning text before setting up a license. Thanks to Matt Haughey for the help.
  • Added a GenerateTrackBackRSS option to mt.cfg, which determines whether the individual RSS files for TrackBack items are created.
  • mt-view.cgi (and Viewer.pm) is now disabled by default, to emphasize its experimental status. To enable it, add SafeMode 0 to mt.cfg.
  • Fixed a Postgres bug with the seconds getting cut off of the Authored On timestamp.
  • Fixed default search templates to use <$MTPublishCharset>. (Autrijus Tang)
  • Fixed a bug with the isPrimary argument to the mt.setPostCategories method (XML-RPC).
  • Fixed Creative Commons RDF (was missing </rdf:RDF>). (Aaron Swartz)
  • Auto-generated excerpts for sent and received TrackBacks now apply text formatting properly. (Brad Choate)
  • Fixed bug where Postgres passwords were not used.
  • Fixed bug with Berkeley DB to Postgres database conversion (pg_atoi problem). (Mike Chambers)
  • <MTLink> now only tries to load index templates.
  • Fixed rebuilds when using a localized version of MT.
  • Select and Add New Category... on edit entry screen can now be translated.
  • None and Convert Line Breaks text formatting options can now be translated.
  • New Comment message subject can now be translated.
  • Fixed bug where Next and Previous links on edit entry screen skipped drafts.
  • Fixed bug where extended entry couldn't be set to the empty string from an XML-RPC client. (Adriaan Tijsseling)
  • IncludeBlogs and ExcludeBlogs are now respected by mt-view.cgi. (Phil Ringnalda)
  • mt-view.cgi no longer shows drafts. (Phil Ringnalda)

  • Replaced RSS 0.91 template in default templates with an RSS 2.0 template, from the RSS validator site. (Thanks to the RSS validator folks.)
  • Fixed some XSS bugs (comments, TrackBack, notification addresses, and search queries). (Reported by Dumky and others)
  • Fixed width of #content div in Clean stylesheet so that it doesn't require scrolling in Windows IE.
  • Fixed TrackBack auto-discovery and text filters--auto-discovery is now done against the filtered entry body rather than the unfiltered body. (Timothy Appnel)
  • Added <q> to list of special tags to be detected at paragraph starts and turn off line break conversion. (Todd Dominey)
  • Moved Search button up next to search box to make it less likely to cause confusion and inadvertent clicking of REPLACE.
  • Strip linefeed characters from text being previewed.
  • Fixed Windows file-locking problem when deleting temp files (during uploading). Thanks to Scot Hacker for tracking down the problem.
  • Fixed error in mt.getPostCategories where entry does not have primary category.
  • Fixed bug where Add new category... is available to authors without category-editing permissions.
  • Set excerpt properly using get_excerpt in notification messages and search results. (Brad Choate)
  • Added support for alternate PostgreSQL ports. (Tim Beadle)
  • Added documentation for mt.supportedTextFilters.
  • Fixed another pg_atoi problem (this one when saving an entry from the preview screen).
  • Language for Date Formatting is now applied properly to notification messages. Thanks to Jakub Kazecki for the changes.
  • Fixed bug where order of flerror and message in XML-RPC ping responses mattered (it shouldn't). (cobra libre)

  • Added Atom syndication feed template (atom.xml) and auto-discovery for Atom feed to main index template.
  • Added <MTIfNonEmpty> and <$MTEntryModifiedDate$> tags, and added a exclude_port attribute to <$MTBlogHost$>.
  • Fixed security issue with XML-RPC server.
  • Added proper handling of offsets in ISO-8601 dates in XML-RPC requests. If timezone offset is omitted, timestamps are assumed to be in the weblog's timezone already; otherwise, the timezone offset is first applied, then the weblog's offset is applied on top of that. This new behavior can be turned off by adding IgnoreISOTimezones 1 to mt.cfg.
  • Made Google search errors in <MTGoogleSearch> non-fatal.
  • Fixed relay issue with mt-send-entry.cgi.

  • Comments are throttled based on IP. The new config parameter ThrottleSeconds gives the number of seconds which must pass between comments before the same IP can post again.
  • Author links are now served by meta redirect, so that commenters' links don't appear directly on the comment page.
  • Improved email address validation in mt-send-entry.cgi.

  • Comment preview is no longer dropped when using MTCommentFields with <MTCommentFields preview="1">.
  • Default templates now have valid HTML in a few places where they didn't before.
  • Lots of bugs fixed with export and import, and the primary category of an entry is included with an export.
  • QuickPost on the right-click menu no longer complains.
  • Adding TypeKey comments is easier, with MTRemoteSignIn and MTRemoteSignOut (see below).
  • Numerous other bug fixes.

  • A new application interface, more usable and standards-compliant than ever.
  • New comment and trackback management features should make it easy to find and delete problematic comments/pings.
  • Configurable comment registration permits banning of individual commenters using an external authentication service. Comment registration is optional and is controlled using several options.
  • ``Object callbacks'' allow plugins to be notified when database records change, or to pre-/post-process data as it flows between MT and the database.
  • Individual archive URLs are in the form /YYYY/MM/DD/title.html for new weblogs. Existing weblogs will continue to use the old-style (000374.html) archive file names unless re-configured.
  • Larger weblogs using SQL databases should now rebuild faster. This applies to weblogs that use the MTArchiveList tag, and which do not use the MTEntries tag within that tag. Also the improvement won't benefit those who are useing ``weekly'' archive lists.
  • Dynamic comment pop-ups are deprecated; static archive pages are the default venue for comments.
  • TrackBack pings are now throttled by IP, according to the config parameter ThrottleSeconds. 8 pings in the span of 10 ThrottleSeconds will cause the IP to be banned.
  • Background tasks offer a more repsonsive interface and play better with others.
  • Atom API now supported.
  • Better date handling with DateTime will go as far back as necessary

  • Scheduled (``Future'') posting.
  • Dynamic pages powered by PHP.
  • Subcategories for hierarchical categorization of posts.
  • New application-level callbacks enable new ways to extend the Movable Type platform: new hook points allow fine control over site rebuilds as well as filtering and throttling for comments and TrackBack pings.
  • Plugins now have more ways to add to the Movable Type user interface, with more ``plugin actions'' and an ability to add items to the rebuild menu.
  • TransparentProxyIPs configuration setting allows IP addresses to be seen through a local proxy.
  • New default trackback throttling behavior is less likely to block legitimate pings.
  • Category archives now enabled by default.
  • Fixes and new features at the lower levels make Movable Type a better platform with which to develop applications.
  • Numerous bugs fixed with the help of our dedicated beta testers.

  • Correct some problems with upgrades: from 3.0x to 3.1x with Berkeley DB, or from 2.6x to 3.0.
  • Updates to templates were not reflected on dynamic pages after saving an entry; that's now fixed.
  • In some older versions of Perl, a syntax error blocked any use of the application.
  • Category paths (e.g. ``Mammals / Primates / Orangutans'') were being omitted on some blog pages.

  • Rebuilds are faster due to caching some data.
  • Fixed ``The uploaded file was too large'' message when running under mod_perl.
  • Resolved some compatibility issues with perl versions before 5.6.0.
  • We now create an .htaccess file upon enabling dynamic pages.
  • <MTEntryModifiedDate> was returning creation date.
  • Fixed error reporting problems for template & plugin errors.
  • &gt; and &lt; Comment previews no longer show in the text-entry area.
  • Scheduled posting would only post one of many new entries on an archive page.
  • More robust upgrade script for PostgreSQL users, users of dynamic pages.
  • Default to use full entry body in RSS feeds.
  • A new template's dynamic/static setting is set correctly.
  • Duplicate sibling category names are prohibited.
  • Support for binary columns in PostgreSQL (enables some plugins that didn't work in that environment).

  • Unnecessary rebuilds upon comment moderation are eliminated.
  • Generation of internal bookkeeping data for dynamic pages is not performed when using static pages.
  • New weblogs default to having comment moderation enabled.

  • Closed an exploit that allowed an attacker to send mail to an arbitrary address.
  • Disallow any email addresses that contain newline characters.
  • MT::Mail now converts newlines in mail headers to simple spaces.

Security

  • Made several important improvements with regards to application authentication and security.

Notifications

  • Fixed ``Send Notifications'' feature for multiple recipients.
  • Fixed a bug where comment notifications weren't being sent for some moderated comments.

Error checking

  • Improved validation of user input in many places. Leading and trailing whitespace is trimmed from author names, category names, and blog names. None of these can be left blank except for a known issue with editing the name of a previously existing category. Duplicate items are now disallowed in several areas.
  • Authors can no longer delete their own accounts, which could result in disabled installations.
  • If configuration of remote authentication is incorrect, error is reported when rebuilding instead of on the published site.
  • Fixed a bug where commenters were prompted to log in to a remote authentication service, even though registered comments were disallowed (if ``remote auth token'' was not blank). This fix only applies to new blogs.

User Experience

  • Fixed a bug with TypeKey authentication under IE when blog is published in UTF-8.
  • Number of items per screen in listings (e.g. ``Show 5 comments, 20 comments, ...'') is now persistent for each user.
  • Throughout the application, when a listing screen is filtered, the UI now displays the active filter parameters.
  • Wider use of background tasks for rebuilding, to make interface more responsive.
  • ``Go Back'' button goes back to the screen from which you performed the initial action.
  • Added a ``Cancel'' button to preview screen, which returns the user to the entry listing screen.
  • Authenticated commenters' e-mail addresses are displayed on the comment editing screen, when available.
  • Comment listing now links to authenticated commenter's profile page.

Templates and Publishing

  • Default feed templates now use <MTBlogLanguage> tag, where applicable, to identify the blog's language.
  • Improved the HTML sanitization function in comments or any template tag that uses the sanitize attribute.
  • Fixed a bug where <$MTCategoryCount$> included ``draft'' entries in the count.
  • By default, <MTEntryAuthorLink> and <MTCommentAuthorLink> tags no longer display commenter's email address (currently applies only to static rendering).
  • Improved correctness of encoding filters (e.g. encode_js, encode_url, etc).
  • Fixed a bug where categories could not be sorted in ascending order on weblog pages. This now works in both directions.
  • Autolink URLs now recognizes https URLs in static pages.
  • The use of brackets in template names no longer causes an error.
  • By qualifying the category name with its ancestors, <MTEntriesWithSubcategories> tag can now select entries within a precise (sub)category, even if two categories have the same label.
  • Fixed comment preview to respect the ``Allow HTML in Comments'' setting.
  • Default templates now show full depth of subcategory hierarchy.

Configuration

  • After updating the weblog archive configuration, the user is now prompted to rebuild.
  • Added support for Creative Commons 2.0 licenses. More information about Creative Commons can be found at http://creativecommons.org/.
  • Added support for suppressing nav-commenters.gif publication based on new mt.cfg configuration setting ``PublishCommenterIcon'' (default value is 1).
  • Improved the application's ability to guess the desired weblog URL and filesystem path in new weblog setup screen.
  • Comment configuration now defaults to a safe and error-free configuration: Registered comments are not enabled and unregistered comments are moderated.

Internationalization/Localization

  • dirify now works with UTF-8 blogs as well as Latin-1.
  • When a category name is all non-Latin characters (or all punctuation!) the numerical ID is used as its ``dirified'' form.
  • Added localization support for weblog search.
  • Fixed a bug where new blogs and authors would default to an unexpected language.
  • Internationalization of default template names is now more consistent.

Dynamic Publishing

  • Fixed bugs which caused <MTArchiveCategory> and <MTCommentOrderNumber> to produce nothing,
  • Fixed a bug which caused <MTArchiveDate> to produce nothing when used inside <MTArchiveList>.
  • <MTSubCategories> now displays empty categories,
  • Fixed a bug where URLs weren't being autolinked in comments when the blog was configured to do so.
  • Fixed a bug where <MTCalenderIfToday> was not correctly detecting the date.
  • Dynamic pages can no longer be enabled if certain underlying system requirements are not met (i.e. MySQL).
  • On setup of dynamic rendering, Movable Type tries to create most of the pieces it needs (.htaccess, compiled-templates directory) on its own. Better error messages help the user create these pieces when Movable Type doesn't have sufficient rights.
  • Fixed a bug in which, given a large number of entries, rebuilds may time out when using dynamic templates (under dynamic publishing the FileInfo table is rebuilt, instead of pages on the filesystem). We are now doing these ``rebuilds'' in stages to prevent timeouts in the browser.

Entry Creation/Editing

  • The weblog dropdown on the QuickPost screen is now sorted alphabetically.
  • Fixed keyboard formatting shortcuts for Internet Explorer and Mozilla FireFox for the entry editing screen and the QuickPost screen.
  • Improved subcategory hierarchy display in the interface. Subcategories are displayed hierarchically in the following places: the Primary Category dropdown on the New Entry, Edit Entry and Quickpost screens, the category filter dropdown on the List Entries screen, the category filter and assignment dropdowns on the Power Edit screen and the popup category creation window.
  • QuickPost bookmarklets with lots of options no longer overflow the URL size limit in Internet Explorer 6.
  • Fixed a bug where the permalink of a post changed when saving from the ``Preview'' screen.
  • Added option in entry editing screen customization to display entry edit page action buttons at both top and bottom of the page.
  • Uploading files handles temp file creation error more gracefully.
  • TrackBack discovery is now more forgiving when domain name is mismatched (ie, 'www.example.com' and 'example.com').

Server Environment Compatibility

  • Fixed a bug under Windows servers, where links to plugin configuration pages contained bogus path information (e.g. plugins/C:\something\myplugin.cgi).
  • Improved handling of uploaded files and images and creation of thumbnail images on Windows.
  • File upload dialog displays Windows paths properly.
  • Fixed a bug when running under mod_perl that caused a spurious error message (``The uploaded file is too large.'') to be displayed on alternate requests.
  • Added support for SQLite 3 by routing around a bug in the DBD::Sqlite driver which prevented our timestamps from being stored.
  • DateTime Perl module is no longer required, which improves compatibility with more environments.

Developers

  • Fixed MT::ObjectDriver::DBI's count_group_by method.
  • Clarified application-template search path: app templates can now be overridden in more ways.
  • Fixed bug with SQLite 3 driver and storage of binary data from plugins.
  • Fixed a problem in the MT schema for PostgreSQL which allows plugins to store config data in PluginData (using BLOB). Because this required a schema change, this only applies to new installs. An upgrade script will be provided in the next release which fixes this problem for our current customers.
  • Added more comprehensive documentation for utility routines that can be used by plugins.
  • post_save callbacks now have access to the original object as well as the object which was saved.
  • Better defaults for MT::App subclasses make it easier to create a plugin with a UI. Example ``Mirror'' plugin (which has been updated for this release) demonstrates this.
  • Improved discovery of MT directory and active CGI working directory makes plugin UIs compatible with more environments.
  • Added support for a new DebugMode. Setting the DebugMode configuration parameter in mt.cfg to ``1'' can enable/disable unsightly warning messages. (Defaults to off).

  • Fixed problem where MT installs at the root of a domain would continually log out the user.
  • Fixed a bug in nofollow which causes HTML sanitization of everything within an <MTPings> block.
  • Fixed a bug in mt-db2sql.cgi which caused it to fail in certain situations when subcategories are in use before conversion.
  • Fixed URL-encoding of uploaded file paths (e.g. images%2fbeach-pic.jpeg)

Major Features

  • New dead-simple AJAX-powered installation/upgrade process (see screencast demo) which replaces mt-load.cgi and all mt-upgrade* scripts. Also eliminated the upgrade distribution since only the config file would be different.
  • Combined mt.cfg and mt-db-pass.cgi into mt-config.cgi. Shipping as mt-config.cgi-original so as to prevent overwriting when upgrading.
  • Introduced the new System Overview section which allows administrators to configure and manage aspects of the system across all weblogs
  • Introduced a plugin-based feedback rating framework which scores comments and TrackBacks upon submission on a scale from -10 (least desirable) to 10 (most desirable)
  • Introduced the auto-expiring Junk folder which contains all negatively-scored feedback received by the app and deletes it after a time specified in the weblog feedback configuration
  • Now shipping with a 3.2-compatible SpamLookup plugin. Stops spammers cold!
  • Added TrackBack moderation and editing like comments
  • Added comment/TrackBack master switches on both the blog and system level. These allow a user to shut off receipt of these items in one place.
  • Major rearrangement of the weblog settings. Humanized options and implemented better grouping.
  • Major overhaul of all listing pages. They are now optimized for bulk actions and consistent wherever they appear in the application. Items can be selected by clicking anywhere on the row and contiguous selection is possible with the shift key. The checkbox in the header bar selects all, none and inverse (with the shift key). Introduced display options for each listing allowing a user to customize their view. New filtering mechanism on all listings
  • Major overhaul of the search/replace functionality. One can now search not only entries, but comments, TrackBacks, templates, commenters and activity log. Much safer replace functionality. New context-sensitive search added to nearly every page of the application.
  • Introduced the system- and weblog-level plugin management pages allowing a user to enable/disable, configure and get information about all installed plugins. All functionality works with MT 2.x plugins as well!
  • Implemented much simpler template code for the individual archive page, especially with regards to comments and TrackBacks. Moved most TypeKey logic to the site javascript.
  • Introduced the new MT 3.2 default stylesheet: "Vicksburg".
  • Implemented the standard Six Apart HTML structure which enables all MT users to easily share dozens of gorgeous styles created for TypePad and LiveJournal by just switching out the CSS.
  • Introduced the TemplateRefresh plugin, bundled with 3.2. which performs backup of single of multiple templates and refresh of those templates from the defaults. This can be triggered from either the template listing screen or the system overview weblogs listing.
  • Major overhaul of the commenter listing screen and introduction of the individual commenter record which lists information about each authenticated commenter and all of their comments.
  • Added a Trusted state for authenticated commenters which allows a commenter to bypass the junk mechanism. This can also be used on the weblog side to highlight valued contributors and (with a little ingenuity) give them special abilities on the weblog side.
  • An entirely new Live User Manual written from scratch by Tim Appnel powered by Movable Type and which includes user comments on every entry. More details here.
  • Opened up the Movable Type Knowledge base to all Movable Type users. Previously this was only available for paid licensees.
  • Major improvements to the Activity Log including pagination, display options, reverse-chronological sorting and CSV export.
  • Revamp of the main MT menu including more links to the places you want to go, weblog sorting by title, date of creation or date of last modifcation
  • New multi-category selection widget enabling very easy selection of secondary categories. Also present on the quickpost page.
  • New archive file path controls for mapping templates to archive types. Now includes many common archive maps in a simple dropdown and shortcut specifiers for making your own. MT template tags are still supported.
  • Introduced the basename field on the edit entry and Quickpost pages which allow users to specify the filename of the individual archive file. This allows for nice filenames that do not depend on the entry title.
  • Added dynamic publishing support for PostgreSQL and SQLite databases
  • Implemented outbound trackBack control enabling administrators to restrict (by domain or IP) where TrackBacks can be sent and auto-discovery is allowed. Admins can also specify whether or not to TrackBack entries on the same weblog.
  • Added itemset widgets (the dropdown on the right side of all listing screens) which contain secondary native actions and can be extended by plugins to provide extra functionality.
  • Revamped the template listing screens providing much better information at-a-glance
  • Added the default_templates folder containing all default Movable Type templates added to new weblogs. These templates can be customized to affect the default templates for new weblogs.
  • Easy mini-wizard TypeKey authentication setup allows you to easily and quickly enable TypeKey on your blogs.
  • Enhanced the "Remember me" checkbox on the comment form to remember not only form details but TypeKey authentication status
  • Added new gorgeous color icons which boost your blogging productivity by enabling you to stare at the Movable Type interface for extended periods of time without tiring.
  • Added Save & Rebuild functionality to the template editing page
  • Implemented System administrator and Blog administrator permissions and removed problematic blog-level "add/edit authors" permission

Developer features

  • Introduced easy plugin configuration integrated right into the application doing away with the need for most plugins to write CGIs
  • New MT::Bootstrap module implemented to make it easier to create CGI scripts which work with Movable Type
  • Implemented binary data support in PluginData for PostgreSQL allowing those users to use plugins which store PluginData
  • PluginData now uses MT::Serialize instead of Storable. PHP can also access PluginData now (although it's read-only)
  • Added pre_run, post_run callbacks to MT::App.
  • Now storing a permanent Atom ID for each entry
  • Now setting ID attribute on body tags of application screens to __mode for cool and interesting CSS/Greasemonkey foolin
  • Made MT directory discovery more robust (under both UNIX and Windows)
  • Plugin lib directories are sucked into @INC automatically by MT upon plugin directory scanning obviating the need for pesky relative use lib statements
  • Enhanced DBM objectdriver to accept both a limit and range/range_incl arguments.
  • Upgraded Smarty libraries to Smarty 2.6.9.
  • Added MT and MT::App methods for accessing configuration, query parameters and session data.
  • CMSPostEntrySave is now invoked after saving each entry through poweredit.
  • Plugins can now use AdminCGIPath
  • Now handling relative paths in the mt-config.cgi much better by converting them to absolute paths before use (based on mt_dir).

Usability features

  • Now building out the entire blog path upon saving if it hasn't already been created and the parent directories are writeable. If it's not writeable, a useful error is presented.
  • The weblog site directory is created if it didn't already exist when creating the .htaccess file for dynamic publishing.
  • Compiled templates directory (templates_c) is created with open permissions, when possible.
  • All static files are now in mt-static folder in the MT directory which makes installation/upgrade easy for those who need to move their static files out of the cgi-bin.
  • Comment form now disappears on published blog (after rebuild of mt-site.js) when comments are turned off on system or blog level.
  • Retired Closed status for comments and changed comment status dropdown to a checkbox.
  • Eliminated nearly all popup windows in the application
  • Added 'show_all' parameter for search/replace, which is useful when you want to see all items in a particular date range.
  • Added comment and ping permalink anchor notation in default templates: comment-<id>, ping-<id> for Six Apart style support. Legacy comment/TrackBack permalinks still supported in default templates but deprecated.
  • Implemented safeguard against deleting parent categories. Must delete subcategories first.
  • Now beautifying published links by stripping index page names (ie, "index.html"). Added optional with_index attribute to all link tags to preserve the filename.
  • Switched to Windows linebreaks in the mt-config.cgi because they are universally compatible. Notepad fans: Rejoice!
  • Now including an "import" folder in the default distribution
  • Categories are now shown with hierarchy in the "Assign Multiple Categories..." popup

Performance improvements

  • Many, many fixes which improve MT's mod_perl compatibility and performance (Thanks Tweezerman!)
  • Removed calendar from the main index template because it's a CPU hog. Code will retire to the documentation.
  • Implemented caching for ID-based lookups at ObjectDriver level
  • Added caching for plugin config objects.
  • Added support for HTML::Template file cache.

Error and exception handling improvements

  • Better error messages across entire application (missing config file, quickpost with no weblogs, invalid Site URL, etc)
  • Added fatal errors for failure to write to DataSource directory or failure to lock files.
  • Improved reporting of unwritable/uncreatable templates_c directory when enabling dynamic publishing.
  • Now producing a useful error message if the directory containing a SQLite database isn't writeable by the web server.
  • Now checking for the minimum required version of the "DBI" module (v1.21). Implemented better handling of DBI module requirement and reporting when it's unavailable.
  • No longer allowing ".." in Site URL because it's illegal in URLs
  • Template errors are now reported when publishing an entry
  • Category-archive tags no longer cause errors in rebuilding when category archives are disabled
  • Rebuilds no longer fail silently after saving an entry if a problem exists in your templates (for example, mismatched tags or a missing include module).

Template tag additions/deprecations/changes

  • Now shipping with the new Atom 1.0 feed template. No longer shipping with an RSS 1.0 feed template.
  • Now allowing disabled archive_types in ArchiveList which can be used for grouping entries, for instance, by week even if weekly archiving isn't enabled.
  • Added MTIfStatic and MTIfDynamic template tags, for checking which style of publishing is in use and using these to differentially build and display the sidebar content on all archive pages.
  • Changed Author Nickname to "Display Name". Added MTEntryAuthorDisplayname, MTEntryAuthorUsername. MTEntryAuthor and MTEntryNickname are deprecated but aliased to the new tags.
  • MTSubCategories contained tag now admits top="1" parameter to list all categories, even on a category page.
  • Added a template container tag, IfRequireCommentEmails, which prints its contents if email address is required from commenters.
  • Made the monthly archive block conditional now that the archivelist tag can function whether the archive type is enabled or not (archivelinks would still fail though, so the conditional is necessary).
  • Removed email address from Atom feed
  • Aliased the deprecated EntryIfCommentsAllowed directly to IfCommentsActive tag to address a disparity between the two.
  • Added MTCommentsHeader/MTCommentsFooter tags
  • MTIfNonZero and MTIfNonEmpty can now be used to test tags which require attributes. For example:
<$MTSetVar name="myvar" value="1"$>
<MTIfNonZero tag="MTGetVar" name="myvar">
    Tag is evaluating properly
</MTIfNonZero>
<MTIfNonEmpty tag="MTGetVar" name="myvar">
    Tag is evaluating properly
</MTIfNonEmpty>

Configuration file changes

  • The config directive HelpURL- is now the base URL for the help links in the app as well as documentation. HelpURL will be set by default to point to the User Manual Six Apart website, but of course can be changed to point locally.
  • Added IndexBasename configuration directive for defining the index page basename (see previous feature). Default setting is "index".
  • Added an MTConfigFile tag which is now used in building the mtview.php script.
  • Added WSSETimeout configuration directive to control the Atom WSSE authentication timeout window (default is 120 seconds).
  • Added UpgradeScript, MTAtomScript configuration directives which point to the respective scripts (defaults is mt-upgrade.cgi and mt-atom.cgi respectively).
  • Added WeblogDefaultTemplates configuration directive to specify the location of the default template directory (default is default_templates).
  • Added DBPassword directive as a replacement for mt-db-pass.cgi
  • Now forcing database setup upon initialization instead of assuming a default of BerkeleyDB (./db) because it's the least recommended choice of databases.
  • Introduces IdentitySystem directive which makes it easier to set up alternate TypeKey-compatible auth systems

Internationalization/Localization

  • mt-check.cgi is now localized
  • Default templates are now localized
  • Default language is now localized in the config file

Other miscellaneous features

  • Updated Creative Commons license chooser to support local jurisdictions
  • Modified nofollow.pl to use the new plugin config panels.
  • Updates to import feedback. Displays header/footer. Better handles error conditions (no readable files, etc.)

Security/Accountability features

  • Added support for author sessions
  • Decoupled Atom token, magic token and user cookie from hashed password. Now storing magic token in author session record.
  • XML-RPC/Atom now both use configurable API password
  • Added support for CookiePath, CookieDomain config settings so that you can set your mt_user cookie in any path and domain.
  • Now logging all "password reset" operations
  • Password error messages are now more generic to eliminate the possibility of username enumeration.
  • Now requiring both author email and password hint upon author creation and profile editing to ensure that the user can recover their password.
  • Now logging the events of creating or deleting a weblog in the Activity log
  • User ID is now logged when user is mentioned in any log message to avoid any question of the actual author's identity

General bug fixes

  • Fixed a bug where auto-discovery of links to large files (e.g. mp3) could adversely affect MT.
  • Fixed a bug which disallowed categories of the same name which have different parents
  • Fixed a bug with MTDate (and other perhaps other dates) using utc flag
  • Users can now produce files with no file extension by leaving the "File extension for archive files" box null.
  • Fixed a bug where database wasn't updated on rebuilds when using linked templates
  • Fixed a bug which caused MTCommentEntry to malfunction in dynamic category archives
  • Templates with no name were uneditable because of lack of link text. Now prints "(no name)"
  • Fixed a problem where MT->version_number would fail if the version was not numeric (as is the case with any beta). Introduced VERSION_ID which holds the full alphanumeric version in addition to VERSION which holds the base numeric version.
  • Fixed a bug that caused dynamic publishing to fail after a change in site URL,
  • MTSubCategories now obeys sort_order attribute on dynamic pages.
  • If a category name has no Roman alphabetic characters, it is replaced by a string such as cat-145.
  • Dropped all unique constraints within the DBMS to fix a number of discrepencies across platforms.
  • The weblog's timezone is now displayed on the weblog's "View Activity Log" screen to clarify the difference between the system activity log which is in GMT.
  • Fixed a bug which could produce 404s under dynamic publishing if the Site URL of the blog is changed
  • Fixed a bug where an ampersand in the category label would cause a double-underscore in dirification
  • Fixed a bug causing double-encoding of ampersands in category labels in power edit mode
  • Fixed an issue with some mod_perl setups which would return empty pages in the admin UI
  • Fixed a bug which caused TrackBacks to be ignored in import
  • Fixed an issue with mod_perl where the weblog name would disappear after saving the general settings page (core config in 3.17)
  • Fixed an issue with category editing where TrackBack pings could not be turned off once they were turned on
  • Fixed documentation in App.pm to indicate that a relative AltTemplatePath (like all relative paths in mt-config.cgi) is relative to the the MT config file and not to the tmpl directory.
  • Fixed a bug with handling outrageous dates (the year 3000) on authors and entries listings.
  • Fixed a bug where MTDate’s output differs in dynamic and static publishing if a date language have never been specified.
  • Fixed a bug that prevented the mt.cfg directive CommentSessionTimeout affecting the length of the user session.
  • Fixed a bug preventing the moving of categories out from under a parent category
  • Fixed a bug where comment author link redirects would operate even if a comment was held for moderation leading to potential phishing attacks with the redirect link.
  • Fixed a Firefox display bug that prevented hierarchical display of categories in entry screen dropdown
  • Fixed a bug where MTArchiveCount returns empty value in dynamic archive templates
  • Fixed a bug for MTArchiveCount on archive templates when outside of entries tag.
  • Fixed a bug where on some versions of IE, after maximizing the QuickPost window, the entry text appeared wider than the window itself, obscuring the scrollbar.
  • Fixed a bug where HTML in category labels and entry title was not being escaped
  • Fixed a bug in nofollow: "Character class syntax [: :] is reserved for future extensions"
  • Fixed a bug where TrackBack autodiscovery would happen on every entry->save operation (e.g. during import)
  • Fixed a bug where a dying callback on log->save would lead to infinite recursion
  • MTComments with lastn not supported in Dynamic Pages
  • Fixed a number of instances where the "Go Back" button in error pages didn't navigate control to previous page
  • Template cache in database is now updated on rebuilds when using linked templates
  • Fixed a bug preventing use of all MTCategory* tags in static Category Archive Template
  • Entries tag now supports the new category path selection syntax. For example, <MTEntries category="Parent/Child">. If you have spaces, you use square brackets, as in <MTEntries category="[Parent Category]/[Child Category]">
  • Dirification of category names such as "Sam & Dave" (space-ampersand-space) is now consistent on dyanmic and static publishing
  • Using show_email="1" for EntryAuthorLink and CommentAuthorLink now works in static templates
  • Fixed a bug preventing CommentSessionTimeout from affecting expiration of session
  • MTArchiveCount no longer returns an empty value in dynamic archive templates
  • Printing of disabled archive list now consistent between static/dynamic publishing
  • Fixed a bug in dirify routine which failed if DefaultLanguage wasn't specified in a case-sensitive manner (e.g. utf-8 vs UTF-8)
  • &lt;MTComments&gt; with lastn attribute no longer produces an error message on dynamic pages.
  • &lt;MTComments lastn="2" sort\_order="ascend"&gt; now behaves the same in dynamic and static publishing
  • Fixed bugs which caused many MT*Categories tags behavior to differ between dynamic and static publishing
  • Auto-link URLs now works regardless of Allow HTML setting
  • Fixed a bug under mod_perl which cause the "Weblog name" field to be blanked out after saving weblog config.
  • MTEntryIfExtended now evaluates correctly in search templates
  • Fixed a bug which caused the wrong version of the Creative Commons license to be provided upon initial selection.

For complete details, please see the full release notes.

For complete details, please see the full release notes.

For complete details, please see the full release notes.

For complete details, please see the full release notes.

For complete details, please see the full release notes.
Six Apart
Makers of weblog software and services for individuals, organizations and businesses.
This website is powered by Movable Type.