Movable Type 4.3 Release Notes
This version of Movable Type was released July 29, 2009.
An oft-requested feature has been added to the app. We’ve made a variety of new querystring parameters available to mt-search.cgi to provide dynamic pagination for all archive types and from the index. In order to allow for the usage of index or archive templates, we’ve created a new template tag, BuildTemplateId, which provides the template ID for the template you’re editing.
We’re working on putting together a proper guide for this with sample template code, but here are the new parameters: author (takes an ID), category (takes an ID or label), templateid (takes an ID), page (can be used in place of offset), archivetype (takes one of the 14 archive types, listed here), year (format is YYYY), month (format is MM) or day (format is DD). When used with date-based archives, year/month/day corresponds with the start date of the archive.
We’ve added the ability to clone a blog without including the entries/pages, comments, trackbacks and categories (or any combination thereof). You can also edit the blog name, URL or site root during the clonging process.
Passed the "namespace" attribute in addons/Community.pack/lib/MT/Community/Tags.pm to allow for custom namespaces on user profile pages.
Fixed several memory leaks in Serialize.pm and added two new serialization methods (the default stays the same). The two new ones use JSON and Storable formats, but both have caveats. While the Storable format has performance improvements, it does not work with dynamic publishing. The JSON based format does not support scalar or circular references and cannot support multiple references to the same object. We hope to evolve the JSON serialization as the JSON spec changes.
Comments can now be paginated with the addition of a dynamic API request from mt-comments.cgi. The default and community template sets have been updated to use comment pagination by default, while the other template sets now include the new System Template.
There is a new asset manager in the sidebar of the entry edit screen. It will list all assets that are associated with the entry. You can associate assets with an entry without including the asset in the entry body. You can also remove asset associations without removing the link to the asset from the entry body. 100892, 100893, 101548
- When inserting an asset into an entry, whether using the asset manager on the side or the insert asset/image buttons in the RTE, no
<form>tag is wrapped around the asset.
- When an asset is inserted into the image, the asset information is added to the sidebar and it’s asset id is added to the hidden
- When the entry is saved/published, MT uses this information to associate the asset ID to the entry via MT::ObjectAsset.
- Since custom fields still use
<form>tags for their assets, I did not completely remove the code which wraps these tags around stuff in MT::Asset.
We have (finally) removed the form tag that surrounds image assets in the entry body. Hallelujah.
The default setting for SingleCommunity is now ‘1’. This means that cookies will now work across all blogs on your installation (excluding cross-domain). If you have been using your Movable Type install to run each blog as a separate community, you should add ‘SingleCommunity 0’ to your mt-config.cgi file.
We have added two new config directives for controlling the dashboard stats. We have added StatsCacheTTL, which is set in minutes and determines how long before the cached statistics expire (default is 15), and StatsCachePublishing, which determines if stats are published at all. It can be set to ‘Off’ and ‘OnLoad’, with OnLoad being the current behavior as well as the default.
You can now publish entries, templates or comments from the internal search result listings.
The Summary Object framework allows MT’s core codebase and plugins to store arbitrary summary and dependent information in the database, replacing expensive calculation queries with fast primary-key lookups against summary tables. The framework includes a flexible mechanism for invalidating summary objects when the objects on which they depend are modified, and a queued worker class for asynchronously regenerating invalidated summaries.
When a template is saved, this action is now sent to the Activity Log. This feature is useful for finding out who made a particular change.
When changes are made to blog settings, an entry is added to the activity log.
Assets now recognized BMP and TIFF as image formats, which should also fix a common issue seen when importing Wordpress content. (Thanks Su!)
SetVarTemplate is now properly localized so you can pass in variables and the data is not set permanently, only outputted with the provided values. (Thanks Jay!)
Fixed a bug where IncludeBlogs="all" did not work when used in mt-search.cgi querystring.
You can now limit mt:Authors with an ‘id’ (for user ID) or ‘username’ modifier.
Added the ability to test sending from inside the app on the Global general settings page.
You can now set DebugMode from the Global general settings page.
We have made the Date::ObjectDriver RaiseError flag available as a config directive and are setting it to 0 by default. This provides more accurate descriptions of database errors than were previously provided.
You can now set the PerformanceLogging, PerformanceLoggingPath and PerformanceLoggingThreshold config directives from the Global general settings page.
The mt:Else tag now works in mt:Assets blocks. (Thanks Byrne!)
You can now define the "build_type" for an archive template in the config.yaml file for custom template sets. (Thanks Jay!)
Fixed a selector in the jQuery of the Motion template set that was incompatible with jQuery 1.3x. (Thanks Byrne!)
Fixed a bug where custom field template tags could not be used in archive paths.
Blogs where you didn’t have any permissions are displayed in the blog list when you choose which blog to export entries from
Users now only see blogs they have permission to change in the list of clonable blogs.
Fixed a bug where using lastn with mt:Authors always returned one more result than requested (Thanks Byrne!)
Fixed a typo in the TheSchwartz.pm
Fixed a bug that occasionally caused false upgrade notices. (Thanks Mark!)
MT:Entry now only updates a comment count when it would change. Previously, it would update anytime a comment associated with that entry was saved.
Fixed a bug where a fatal error would occur whenever you defined a template tag filter in the config.yaml file. (Thanks Jay!)
Fixed a bug with he any_type filter for mt:Authors, so it now properly returns all users, regardless of their role.
The Cloner functionality was moved to the core, so the plugin is no longer included in the application.
Fixed a bug where the dates for recommended entries in a user’s actionstream did not respect the blog’s timezone, causing it to filter improperly.
When adding an additional blog to your list of favorites in the dropdown, you can now only select blogs that you have access to. This keeps people from potentially having to page through hundreds of blogs they can’t access.
The MT::Blog::clonewithchildren operation now clones each of the individual objects (e.g. MT::Template, MT::Association, etc.) that make up the blog.
Fixed a bug affecting the ‘Entries with comments in the last 7 days’ quickfilter on the entry listings screen. The app would throw an error when DBIRaiseError is set to 1. Changing the sort method fixed this problem.
Non-superusers can now view the global list of all comments that they can access.
Increased the allowed length of a commenter’s email to account for very long authentication emails used in Facebook authentication.
Fixed bug where logical operators for category filtering in mt:Entries would not work in dynamic publishing.
We have fixed the bug that was causing LaunchBackground tasks to fail.
Image asset types (JPEG, PNG and GIF) are now determined based on file compression instead of file extension. This prevents publishing errors when Image::Magick is used to resize improperly labeled images.
When applying a lastn to mt:Comments in the context of an entry, it would always use the 50 most recent comments, even if sort_order was set to ‘ascrend’. mt:Comments will now sort first and filter second.
Improved styling of search pagination in the Community template set when there are dozens of pages.
mt-check.cgi now looks for the optional perl module XML::Parser.
Fixed a bug where a dynamically published template which contains an <mt:EntryTags> template tag retrieves tags for the entry ID in context and also retrieves any tags assigned to an asset which has the same ID number as the entry.
Tag links inside the apps for our packs (e.g. Community) are now being sent to movabletype.org instead of Google.
Archive path specifier %-C now produced dashes instead of underscores.
Fixed a bug where mt-xmlrpc.cgi gave no response or error using Windows IIS.
Fixed an error where viewing a dynamically published weblog page results in a "Page not found" error being displayed if the template which publishes the page has a templateidentifier field value of "NULL" in the mttemplate table in the Movable Type database.
Custom fields template tags cause "You used an ‘[CF Tag Name]’ tag outside of the context of the correct content;" error
Fixed an issue where using a custom field tag occasionally produced an error when previewing or publishing.
- Comment Pagination will not work when using MS-SQL and setting DBIRaiseError to 1 (Bug ID: 101428)
- A bug was introduced no later than MT 4.0 where the registry function exhibits unpredictable behavior when called without a parameter. (Bug ID: 101429)
The full changelog is available in Trac.