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:
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)
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 < 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)
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)