- 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
- 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
- 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
- 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
- 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
- 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
- Revamped the template listing screens providing much better information
- 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
- 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).
- 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,
- 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
- 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
- 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..."
- Many, many fixes which improve MT's mod_perl compatibility and performance
- 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
- 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
<MTIfNonEmpty tag="MTGetVar" name="myvar">
Tag is evaluating properly
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
- 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.)
- 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
- 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
- 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
- Fixed a bug which caused MTCommentEntry to malfunction in dynamic category
- 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
- Fixed a bug that caused dynamic publishing to fail after a change in site
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Fixed a bug for MTArchiveCount on archive templates when outside of entries
- 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
- Fixed a bug where HTML in category labels and entry title was not being
- Fixed a bug in nofollow: "Character class syntax [: :] is reserved for future
- 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
- Fixed a bug preventing use of all MTCategory* tags in static Category Archive
- 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
- MTArchiveCount no longer returns an empty value in dynamic archive templates
- Printing of disabled archive list now consistent between static/dynamic
- 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)
- <MTComments> with lastn attribute no longer produces an error message
on dynamic pages.
- <MTComments lastn="2" sort\_order="ascend"> 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.
- Once an entry or category has been set to receive TrackBack pings, disabling
pings for it through the UI will not actually refuse pings to that item but
will suppress display of those pings.
- Rebuilds will fail silently after saving an entry if a problem exists in
your templates (for example, mismatched tags or a missing include module). An
error will be shown, however, upon manual rebuild using the "Rebuild Site" functionality.
- The nofollow plugin will cause a spurious warning for users with older versions
of Perl upon running mt-check.cgi, mt-testbg.cgi or any of the mt-upgrade scripts.
This warning can be safely ignored.
- Upon originally selecting a Creative Commons license, version 1.0 of the
licenses are provided. Upon subsequent edit, version 2.0 licenses are provided.
- Movable Type can't be used with DBD::Pg 1.4 because of a bug in that version
of the database driver.
- Plugins that need to save configuration data cannot be used with the DBI::postgres
driver (mt_plugindata.data column has incorrect type).
- When using MySQL 4.1, "modified" date strings will be mangled--for example,
the output of the <MTEntryModifiedDate> tag is incorrect.
- When a template is linked to a file, changes to the file are not written
to the database until the user views the template and hits the "Save" button.
As a result, when using dynamic pages, changes to the file are not reflected
on the dynamic pages until the user saves the template.
- Categories are shown without hierarchy in the "Assign Multiple Categories..."
- It is impossible to create two categories with the same name, even if they
have different parents (on MySQL, PostgreSQL, or SQLite).
- The recently_commented_on attribute to MTEntries may not function correctly
when the MTEntries block is nested in a constraining block such as MTSubCategories.
- It is impossible to produce files with no file extension by using the "File
extension for archive files" box.
- When a thumbnail is generated for a GIF image with animation, the thumbnail
- Under Windows XP (with IIS), the TrackBack URL that is displayed by <MTEntryTrackBackLink>
does not work without further server configuration. For instructions, see "Configuring
TrackBack on IIS Servers" in the TRACKBACK section of the Movable Type manual.
- Better error checking disallows blank names in new categories, but they
are still allowed when you edit and save an previously existing category.
- If a post contains the URL of a large binary file (such as an image or a
music file) and TrackBack auto-discovery is on, saving the post may fail.
- If an error occurs while run-periodic-tasks is running, an entry may be
put into "Published" status but not rebuilt.
- On some versions of IE, after "maximizing" the QuickPost window, the entry
text are may appear wider than the window itself, obscuring the scrollbar.
- When importing or exporting a weblog, unique IDs in Atom feeds may change.
- <MTComments> with lastn attribute produces an error message on dynamic pages.
- When a reader submits the "Mail This Entry" form, no confirmation is displayed.
- Clicking "Go Back" in a pop-up rebuilding window only re-tries the last
group of pages upon which a rebuild was attempted, rather than taking the user
back to a previous choice. On full-page error messages, "Go Back" does return
the user to the screen where the action was taken.
- After the first weblog, additional weblogs have category archives off by
default, even though the default templates have category archives listed on
the main index.
- TrackBack pings received from a site using a different character encoding
are displayed incorrectly.
- <MTEntryBasename> isn't yet supported in dynamic templates.
- <MTCalendarCellNumber> isn't yet supported in dynamic templates.
- The new "locale" attribute for <MTBlogLanguage> returns a value in dynamic
templates that is inconsistent with its return value on static templates.
- 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)
- Made several important improvements with regards to application authentication
- Fixed ``Send Notifications'' feature for multiple recipients.
- Fixed a bug where comment notifications weren't being sent for some moderated
- 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
- 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.
- Fixed a bug with TypeKey authentication under IE when blog is published
- 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
- 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
- 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.
- After updating the weblog archive configuration, the user is now prompted
- 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.
- 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.
- Fixed bugs which caused <MTArchiveCategory> and <MTCommentOrderNumber> to
- Fixed a bug which caused <MTArchiveDate> to produce nothing when used inside
- <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
- 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.
- 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''
- 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.
- 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)
- 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
- Closed an exploit that allowed an attacker to send mail to an arbitrary
- Disallow any email addresses that contain newline characters.
- MT::Mail now converts newlines in mail headers to simple spaces.
- 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.
- 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.
- > and < Comment previews no longer show in the text-entry area.
- Scheduled posting would only post one of many new entries on an archive
- 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).
- 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.