The Customized Sign In Templates plugin enables MT4 sites to customize the commenter sign in and registration screens. MT4 include built-in support for commenter registration and login. By default, the screens where commenters login and register are system templates that bear the Movable Type logo -- they can't easily be customized to reflect the look and feel of your site. This plugin makes it easier to customize these screens.

Before and After Screensnaps

Live Demo

Try it out now on my MT4 Test Blog. Click here and then click the sign in link to post a comment.

How it Works

When someone clicks the "sign in" (or to sign up) link for a particular blog, the plugin looks for template modules in that blog with the following names:

  • Member Login
  • Member Signup
  • Member Signup Thanks

If the module is not found, the system default will be displayed (same as without the plugin). If a match is found, the template module will be used instead of the system default.

Note that these template modules are special, because they are a hybrid of an "application template" and a "blog template". What this means is that you will see some different template tags, some that begin with <mtapp:. Its best not to mess with those too much, unless you really know what you are doing.

Template Sets

As a separate download, I have created two template sets to get you started:

  • System Default Sign In Templates - these are identical to the ones that ship with MT, but installing this set (using the Template Installer plugin) will create Template Modules in your blog, so you can start customizing from there.
  • Blog Style Sign In Templates - This set has already been customized to use your blog's style, header, and footer.


  • MT4


Download and extract the zip file. Upload the contents of the 'plugins' folder to the 'plugins' directory of your Movable Type installation.
For each blog that you want to customize, install template Modules to be used. Download the template sets and install them using Template Installer. (Advanced users can create these manually, but they must be named "Member Login", "Member Signup", and "Member Signup Thanks".)

Get Customized Sign In Templates

Commercial License - $97.00

Bonus: Those who purchase a commercial license will subsequently receive a version that enables customization of the password recovery screens. For technical reasons, this part was not as easy to accomplish, but I will create a solution and make it available to those who buy a license.

Personal License - Free

Customized Sign In Templates is free for personal, non-commercial use.

Download Now

Download Now
Downloads: 345

Template Sets (both are the same zip file):
Download Now

Membership required, please sign-in or register:

As always, comments and suggestions are welcome.

I have created Google Sitemaps template for Movable Type 4 (MT4). This index template can help your site get fully indexed by Google and other search engines. The sitemap template will include the following pages:

  • All entry pages
  • All monthly pages
  • All category pages
  • All category-monthly pages (new in MT4)
  • All author pages (new in MT4)
  • All author-monthly pages (new in MT4)
  • All tag pages

Note: Due to an apparent bug in MT4, I wasn't able to get a listing of "Pages" (new in MT4) to work. I will update the template when that bug gets fixed.

You can install the template using the Template Installer plugin. Note that this template is set to NOT publish automatically when index templates get rebuilt. For performance reasons, you should leave that option unchecked. This means that from time to time you should open the template and choose "Save & Publish".

Download Now:

Download Now
Downloads: 662

Membership required, please sign-in or register:

Designed to be used with the Template Installer plugin, Template Exporter is a plugin for Movable Type that enables you to easily export your blog templates in a way that can be shared, distribute, or even sold to to others.


The easist way to describe how Template Exporter works is to show you. The first video below shows how you can export all of a blog templates:

And the the following video shows how you can export only selected templates:

Potential Uses of Template Exporter

This plugin can be put to use in several ways:

  • To create a "backup" of their templates, which can be re-installed later if desired.
  • To copy a set of template from one blog (or installation) to another (some call this "template portability").
  • To share your templates with friends, or post them for download on your blog.
  • To package and sell your customized template designs.
  • To deploy a common template design to multiple blogs in an MT installation.
  • To distribute blog Widgets.
  • To distribute blog templates with MT plugins, providing easy installation.

How it Works (if you care)

Template Exporter provides two main functions:

  • It extracts your templates and saves them in files named according to the template_identifier or template_name, such as main_index.mtml. Each template gets stored in its own file. (Technical note: if a template has an "identifier" field defined in the database, then it will be used for the file name. If not, a "dirified" version of the template name will be used, so "Main Index" will become "main_index".)
  • It automagically creates a YAML file named config.yaml, which defined the configuration information for template set. This includes things like the type and name of the template, and for index templates, the output file and "rebuild with indexes" setting. For example of a Template Exporter config.yaml file, click here.

These files are then saved in their own directory inside a "template_exporter" subdirectory of your blog. You can then use FTP or other means to download the directory and files from there, and subsequent shares the exported template or use with Template Installer to install them on another blog or installation.


  • MT4+


  1. Download and extract the zip file and upload the contents of the 'plugins' folder to the 'plugins' directory of your MT installation.
  2. Go the blog you want, then Design > Templates then choose the "Export Templates" link from the lower right. (Or, to export only selected templates, check the boxes of the templates you want, then choose "Export Template(s)" from the "more actions" drop-down box, then click "Go".)
  3. Give the template set a name, using only letters, numbers, and spaces, and then click Continue.

Get Template Exporter

Commercial License - $97

Comments and suggestions are welcome.

Template Installer is a plugin for Movable Type that makes it easy to install new template sets for your blogs. Combined with Template Exporter plugin, this makes is very easy:

  • For bloggers to share templates / widgets with others
  • For designers to package, sell, and distribute template sets.
  • For companies to deploy template sets to company blogs

Currently, sharing templates requires a lot of cutting and pasting, a very time consuming process. Using Template Installer it takes only a few clicks to install a partial or complete template set in your blog.


The following screencast shows how easy it is to install new templates using Template Installer. In this example, the user chooses to install the "Default Templates", which is handy when you want to revert back to the defaults. The same process would be used to install a completly new set of templates. Click on the video below to watch:

As you can see, it is very quick and easy. As you can see from the last screen, Template Installer will back up your existing templates if they have been customized from the MT defaults.

The missing step from the above example is to upload the desired template set to the /plugins/TemplateInstaller/template_sets directory. No need to edit any files or settings. Once you have uploaded the set, it will appear as an option when you click "Install Templates" from the right side of the Manage Templates screen.


  • MT4+
  • Template Refresh plugin (included with MT4)


  1. Download and extract the zip file, and upload the contents of 'plugins' folder to the 'plugins' directory of your Movable Type installation.
  2. Go to Design > Templates and then choose the "Install Templates" link from the lower right of the page.
  3. Choose a template set from the drop-down box, then click continue.
  4. View the results, then click "return to templates", and you are done.

Included Template Sets

The current version of Template Installer includes 3 template sets:

  • Default Templates - These are the default templates that come with MT4. While you can also use the Template Refresh plugin to re-install these, Template Installer provides easy access to do so. This set is also a good example set to see how it works.
  • Default Templates with Prefix Notation - A version of the default templates that use the new prefix notation. For example, <MTEntries> becomes <mt:Entries>, and so on. This template set will have the same output in your published blog as the default set, only the notation used is different. Note that the tags in this are not complete lowercases (it used mt:EntryTitle and not mt:entrytitle) Thank you to Marleen Zachte for creating this set and giving permission for its inclusion with this plugin!
  • Page Template Only - This set will install the MT4 default "Page" template, as well as the included "Page Detail" module. This set will be useful for those upgrading from previous version of MT, since the Page template is not automatically installed on existing blogs, during the MT4 upgrade.
  • 2 Column Layout Header - This set provides a replacement to the "Header" template module. The default MT4 templates use a 3-column layout. If you want to eaily change your blog to a 2-column layout, just install this template set.
  • Template Installer Widget - The set includes a widget template that you can use with the MT Widget Manager to show your support and spread the word about Template Installer. It is also a good example of how Template Installer can be used to distribute and install blog widgets.

Want more template sets?

Template Installer is new, so there are currently not many template sets available. If you have template sets that you would like to share, I will post a link to them here. Please contact me using the contact link in the menu above. You should also check and post your template sets to the following page on the MT wiki: Template Sets for MT4.

Get Template Installer

Template Installer is free to MT Hacks members for commercial or non-commercial use:

Download Now:

Download Now
Downloads: 4773

Membership required, please sign-in or register:

A Feature for Plugin Developers

For certain plugins, it makes sense to distribute custom template or widgets along with the plugin code. In the past, I included a special template installer routine to help users install such templates. In future, I will be use Template Installer for this purpose, and you can too. Rather than ask users to upload your template set to the Template Installer directory and ask them to install the set, I have include a "side door" feature that can be used instead. Using this approach, the templates are stored in a sub-directory of your plugin. Then you can simply present a link to your users to install the templates. The link would look something like this:

<a href="javascript:void(0)" onclick="return openDialog(false, 'install_blog_templates', 'template_path=$your_template_path&set=$your_set_name&blog_id=$blog_id &magic_token=$magic_token&return_args=$your_return_args')">Install Templates</a>

Of course, you will likely use template tags to form this url, but the key things are to make it open a dialog, to set the "template_path" parameter to the path to your template files (relative to the mt root directory), the "set" parameter to name of your set, and you can also set the "return_args" to return the user to your plugin screen after the templates have been installed. When users click this link, they will bypass the "choose a template set" screen and your templates will be installed immediately.

How do I Export Templates for use with Template Installer?

While you could do it manually, and it wouldn't be too hard, you probably want to use the sister plugin, Template Exporter, which automates the process in a single click.

As always, thoughts and suggestions appreciated.

Visitor Stats is a plugin for Movable Type 4.0 that displays visitor and page view statistics on your MT Dashboard.

It looks like this:

Visitor Stats also provides a "stats counter" tag (and widget) that you can place on your site to display your stats.

Visitor and View Stats

Visitor Stats tracks two key statistics for your blog:

  • Visits - A visit represents a real person who visited your blog. Even if the person views 20 pages of your site, it only counts as one visit (per day).
  • Views - Also known as page views, a view represents the viewing of a single web page on your site. If the person views 20 pages, it counts as 20 views. If a person refreshes the same page several times, each time counts a view.

How it Works

Visitor Stats tracks visitor and view information and records that information directly into your Movable Type database. After placing a single template tag in your templates, Visitors Stats will begin recording stats automatically using a combination of JavaScript and PHP (note that you do not need to enable MT's dynamic publishing feature). Then, when you view the admin dashboard for your blog, you will "Visitors" and "Views" tabs on the Blog Stats widget, which will display a graph of your stats (see image above). On the System Overview dashboard, you will see aggregate graphs of your stats for all blogs on the system.

Template Tags

Visitor Stats provides 2 template tags:

  • <MTVisitorStatsTracker> - Place this tag before the </head> tag in every template where you want to track stats. Only place one of these per template.
  • <MTVisitorStatsCounter> - This tag will display the total number of visitors or views for your blog, just like a web stats counter. There is one optional argument:
    • type - the type of stats that you want to count, which either be "visit" or "view". The default is "view". Example: <MTVisitorStatsCounter type="visit">



  1. Download and extract the zip file, then upload the contents of the 'plugins' directory into the 'plugins' directory of your Movable Type installation (often /cgi-bin/mt/plugins/).
  2. Login to MT and you should be redirected to an "Upgrade" screen that will update your database automatically.
  3. For each blog that you want to track, go to Preferences > Plugins and then click on "Visitor Stats" and then click on "Settings". Now click the link labeled "Click here to install the Visitor Stats templates".
  4. Now go to Design > Templates and insert the <MTVisitorStatsTracker> tag before the </head> tag for all templates that you want to track. Note that if you are using the new MT4 default templates, then you only have to do this in one place: click on "Template Modules" from the right side of the page and open the "Header" template module and insert the <MTVisitorStatsTracker> before the </head> tag and then save the module.
  5. Now Publish (rebuild) all your files.
  6. (Optional) Add the <MTVisitorStatsCounter> tag to your templates or use Widget Manger to add the "Visitor Stats" widget to your sidebar.

Get Visitor Stats

Visitor Stats is free to members of MT Hacks.

Download Now

Download Now
Downloads: 2027

Membership required, please sign-in or register:

Want More Features? Visitor Stats Pro is Coming Soon!

Visitor Stats Pro will be a premium version of the plugin with more stats and many cool features. While it will include some of the typical web stats metrics, the focus of Visitor Stats Pro will be on providing meaningful stats about Movable Type items such as entries and authors.

Here are some of the potential features:

  • Visitor and View stats on a per entry basis, so you can see how popular your entries are.
  • Stats on a per author basis. If you have a blog with multiple authors, see which authors are generating the most traffic.
  • Template tags and widget to display a list of "Most Read" entries.
  • Drill-down into statistics. See a list of recent visitors. See which visitors are registered commenters. View the traffic history for a single visitor or registered commenter, see how they navigate through your site and which pages they viewed.
  • View referrer information to see where visitors are coming from (the page they were on prior to arriving on your site).
  • Search engines and keywords.
  • And more...

Do you have some ideas for features? If so, please reply to this entry and submit those ideas. Suggestions are appreciated.

When Visitor Stats Pro is released, I will send out an email to MT Hacks members. So if you haven't already done so, register now.

Fast Search is a PHP plugin for Movable Type. This means that Fast Search uses Movable Type's dynamic PHP-based publishing system to display search results. However, you can continue to use static publishing for all of your indexes and archives. Fast Search is fast in part because it uses mySQL fulltext indexing -- basically this means that a search index will be created for the entries in your database, making searches much faster. Like the built-in search, Fast Search logs searches to the Movable Type Activity log.

New Features in Version 2.1

Fast Search v2.1 provides support for Movable Type 4.0 (MT4). Note that version 2.1 will not work with versions prior to MT4 -- if you are not yet running MT4, then you can download version 2.07 below, which works with MT 3.2 and MT 3.3x. Fast Search 2.1 contains no new features, it provides the same features for MT4.

Tag Searches with Fast Search

Fast Search supports tag search. A tag search will display a list of all entries with a specific tag. Of course, tag searches have the same pagination features as regular searches, enabling you to browse multiple pages of tag search results. Tag search results are always sorted with the most recent entries listed first. Tag searches can done on a single blog (default), or across multiple blogs.

Tag Search Links. If you are using tags, you are probably displaying a list of tags with each entry. Each of those tags are linked to a search results page that displays all the entries with that tag. Since those links point to the built-in mt-search.cgi script -- Fast Search includes a new version of the <MTTagSearchLink> tag that points to the Fast Search script. This happens automatically, you don't have to edit your templates -- just enable Fast Search, install the Fast Search template, then rebuild your pages -- the tag links will be automatically updated.

Clean Tag Search URLs

You can use nice looking tag search URLs such as:

This feature requires editing your .htaccess file and a minor edit to the Dynamic Bootstrapping template. This feature is only available to those who purchase a license or for personal users for $33. More info on getting clean tag URLs below.

Better Relevancy

By tweaking the fulltext queries, I have managed to improve the relevancy ranking significantly. To test this out, you should do a few searches (in fulltext mode) before you upgrade to Fast Search 2.0/2.1 -- note the results and their relevancy -- then upgrade and do the same searches. You should see much more relevant results at the top of the search results. Please post your feedback on this by replying to this entry.

Search all Blogs Easier

In the previous versions of Fast Search, it was possible to search across all blogs on a system, but you had to specify each of them separated by commas. This is fine if you have a few blogs, but what if you have 50? 100? 500? Version 2.0 makes this easier by allowing the special "all" keyword to indicate that you want to search all blogs (example <MTSearchResults blogs="all"> or in the URL/form: ?query=books&blogs=all). A time-saver for large MT installations and blog networks.

Include PHP in your Search Results Template

This not a new feature, but it deserves highlighting. Many sites use PHP on most of their pages for various reasons (for example, to include content such as headers/footer and advertising blocks). The problem is that you can't use PHP on the "built-in" search results pages, because they are dislayed by a (Perl) CGI script. This can make it challenging to maintain your site in a consistent manner. You can avoid such problem with Fast Search -- since it is powered by PHP, you can include blocks of PHP code in the search results template. (Note: there is a small requirement that you need to use <?php to start each block, using simply <? won't work.)

What Search Method is Best?

For most cases, "Fulltext" will be the fastest search method. This is the same method used in version 1.0. There are some cases in which you might two options:

  • Non-Fulltext. Technically speaking this method used a LIKE %query% syntax. If you don't know what that means, don't worry about, just read on.
  • Fallback. The Fallback method is a combination method. FastSearch will first try a fulltext search, and if that returns no results, then it will try a Non-Fulltext search.

Non-Fulltext and Fallback are capable of some types of searches that you can't do with mySQL. You might want to use Non-Fulltext or Fallback to:

  1. search multi-byte languages such as Arabic and Japanese.
  2. search words shorter than 3 characters (such as "MTV")
  3. search partial words
  4. search a mySQL database that does not support Fulltext searching

Template Tags

Version 2.0 / 2.1 of FastSearch is designed to easily replace the existing search functionality in Movable Type, but with added features. For example, if you are currently using customized search templates, you can use them with Fast Search, with very few changes in most cases. Many Fast Search template tags have the same names as their CGI counterparts:

  • <MTSearchString> - The search string (query) being searched.
  • <MTSearchResults> - A container tag that displays search results. Arguments include (all are optional):
    • lastn - restricts the search to n results. (example <MTSearchResults lastn="10"> ) The lastn argument, like all arguments for MTSearchResults, can also be specified in the URL (...&lastn=10) or POSTed from a search form)
    • offset - used in coordination with lastn, starts M entries from the start of the list. (example <MTSearchResults lastn="10" offset="10"> will display results 11-20)
    • order - must be either 'date' or 'relevance', the default is 'relevance'. (example $lt;MTSearchResults order="date"> will provide similar results as the CGI search)
    • category - must be a valid category ID for the current blog - restricts the search results to entries from this category.
    • google_highlight - if specified, search words will be highlighted. (example <MTSearchResults google_highlight="1"> )
    • query - the search string (text) to be searched. In normal use, you would NOT include this argument as part of the <MTSearchResults> tag, rather, it would be specified as a URL paramter (example ...query=search+phrase) or POSTed from a search form.
    • new - tag - the tag to be searched. In normal use, you would NOT include this argument as part of the <MTSearchResults> tag, rather, it would be include as a URL parameter (example ...tag=books) as part of a Tag Search Link.
    • blogs - a comma-separated list of blog_ids if you want to search more than one blog. This argument is optional, if excluded, only the current blog will be searched. Example usage: <MTSearchResults blogs="1,3,8">new - Set blogs equal to "all" to search every blog on the sytem.
  • <MTBlogResultHeader> - this is container tag that displays content before the search results.
  • <MTBlogResultFooter> - this is container tag that displays content below the search results.
  • <MTNoSearchResults> - A container tag that displays its content only if zero results are found. Note that this tag must be used after a <MTSearchResults> container.
  • <MTNoSearch> - A container conditional tag that displays its content only if no search phrase was specified. new - Now supports the use of <MTElse> inside this container.
  • <MTSearchCount> - The number of search results displayed on the current search results page. This tag should be used with a <MTBlogResultHeader> or <MTBlogResultFooter> container.
  • <MTSearchFirst> - The number of the first search result on the current page. This tag should be used with a <MTBlogResultHeader> or <MTBlogResultFooter>container.
  • <MTSearchLast> - The number of the last search result on the current page. This tag should be used with a <MTBlogResultHeader> or <MTBlogResultFooter>container.
  • <MTSearchIfNextPage> - A conditional tag that displays its content if there is a subsequent page of search results. This tag should be used with a <MTBlogResultHeader> or <MTBlogResultFooter>container.
  • <MTSearchNextPageLink> - Output a URL to the next page of search results. This tag should be used within <MTSearchIfNextPage> tags.
  • new - <MTSearchIfPreviousPage> - A conditional tag that displays its content if there is a previous page of search results. This tag should be used with a <MTBlogResultHeader> or <MTBlogResultFooter>container.
  • new - <MTSearchPreviousPageLink> - Output a URL to the previous page of search results. This tag should be used within <MTSearchIfNextPage> tags.
  • <MTSearchTotalResults> - The total number of matching results in the database.
  • <MTSearchPages> - A container tag that can display links to multiple pages of search results. Optional arguments include:
    • max - the maximum number of page links to display on each page. Example: <MTSearchPages max="20">
    • glue - a text string that seperates each page. For example, if you wanted to display 1 - 2 - 3 - 4, you could use <MTSearchPages glue=" - ">
  • <MTSearchPageNumber> - Displays the page number of each search results page. This must be used within a <MTSearchPages> container.
  • <MTSearchPageLink> - Displays the URL to each search results page. This must be used within a <MTSearchPages> container.
  • <MTSearchIfCurrentPage> - A conditional tag that only displays its contents if the page number is the same as the current page - you would normally use this is you wanted to highlight the current page in the list of page numbers, etc. This must be used within a <MTSearchPages> container.
  • new - <MTIfStraightSearch> - A conditional tag that only displays its contents if the search is a normal search and not a tag search.
  • new - <MTIfTagSearch> - A conditional tag that only displays its contents if the search is a tag search and not a normal search.
  • new - <MTFastSearchScript> - This tag displays the filename of your Fast Search script. You can use this in your search forms as shown below. Note: for this tag to work, you should not rename your Fast Search template -- it should laways be named "Fast Search". This tag works in both static and dynamic templates.
  • replacement - <MTTagSearchLink> - This tag overrides the built-in tag of the same name (this automatic, not need to edit templates or anything). The new version of the tag is "smart" -- if Fast Search is enabled for a blog, it will link to the tag search results using the Fast Search script -- if not, it will use the built-in search script. This tag has the following optional argument:
    • tag_dir - Use this argument to specify a "directory" name for your tag search URLs. Note: This feature is only available to personal users who make a donation OR those who buy a commercial license.

Note: the new default Fast Search template includes pre-formatted template code that displays Google-style search results page links.

As you may have noticed, some of the tags above are identical to the ones used for the existing CGI-based search results. This is by design, so you will easily be able to cut-and-paste your existing search template code into the Fast Search template, though some minor modifications may be required.

Working Examples:

Here are some working examples you can try. Feel free to try additional search queries and note the speed that searches are performed.

  • Tag search results on MT Hacks. Example tags: spam cms.
  • Mars Rover Blog has over 5,000 entries. Example search: "water on mars". Note that this example shows the default FastSearch template, which is very similar to the default search results template in MT 3.2.
  • Seinfeld Blog has over 8,000 entries, 180 of which consist of the episode descriptions and scripts of all 180 episodes. Fast Search powers the Seinfeld Script Search, which is restricted to a single category containing the episodes. Example search: 'bubble boy'


  • Movable Type 3.2 or 3.3 (Fast Search v2.07)
  • Movable Type 4.0 (Fast Search v2.1)
  • mySQL


  1. Download the plugin and expand the zip file.
  2. Upload the contents of the 'plugins' folder to the 'plugins' directory of your MT installation (usually something like /cgi-bin/mt/plugins).
  3. Version 2.07 for MT3.2 and 3.3 only: Upload the contents of the 'php' folder to the 'php' directory (usually something like /cgi-bin/mt/php)
  4. Login to the MT admin interface. If you already logged in, choose 'Main Menu'
  5. If your are running MT 3.3 or 4.0, you should be redirected to an 'Upgrade' screen at this point. The Fast Search upgrade process will update your database to add a fulltext index to the table in your database where entries are stored. Note that this may take some time if you have many entries, and this will add to the overall size of your database. Note: If you are installing FastSearch for the first time and you don not see an upgrade sceen, then you should follow Step 6: go the the plugin settings and click the link to create the Fast Search index.
  6. If you are running MT 3.2, you will not see the upgrade screen (as it is a 3.3 feature), so you need to create the index by browsing to the 'Plugin Settings' of a blog where you want to use Fast Search. Choose the 'Plugins' then find 'Fast Search' and choose 'Settings'. Now click the link in bold that says "Click here to create or rebuild the FastSearch fulltext index". Again, this may take some time, please be patient. After the index has been created, hit the Back button.
  7. Now browse to the 'Publishing' settings for the blog, and scroll down to the Setting called "Dynamic Publishing". If the first option, "Build all templates statically", is selected, you should change this setting to "Set each template's Build Options separately" and click "Save Changes" at the bottom of the screen. Otherwise, you don't need to make any changes here.(Note that change this setting will create an .htaccess file in the root path of the blog. Normally you won't notice this and everything will work fine, but if you have an existing.htacces file, you may want to take a look at it to make sure everything looks okay)
  8. If you just changed your Dynamic Publishing settings in the previous step, you should now rebuild all files for this blog by choosing "Rebuild Site" from the left menu, then "Rebuild all Files". Version 2.07 for MT3.2 and 3.3 only: You should also ensure that you have a "Dynamic Site Bootstrapper" (mtview.php) index template and make sure that it gets built, if it hasn't been built previously.
  9. Now return to the Fast Search settings and check the box to enable Fast Search. You may also want to adjust the settings for Maximum Search Results and logging, then click "Save Changes".
  10. Open the Fast Search settings once again and choose "Click here to install the default Fast Search Template." The template will be created and then displayed. This is an dynamic Index template (which can be customized) used to display the search results. (If desired you can also skip this step and create the index template manually, use the template tags as desired, or by cutting and pasting your exisiting search template code)
  11. Upgrading Fast Search

    Follow steps 1 to 3 above, then adjust your Fast Search plugin settings and search template, if desired. If you using Tag Search, you probably want to update your Fast Search template. One way to do this is to rename or delete your existing template, then reinstall the new default template from the plugin settings area.

    After Upgrading to MT4

    After upgrading to MT4 and installing Fast Search 2.1, there is one more thing you may need to do. In MT4, the 'php' folder resides inside /plugins/FastSearch/. But if you installed previous version of Fast Search, you had to upload the 'php' files to /php/plugins directory. Now that you have upgraded to MT4 and Fast Search 2.1, you need to delete those files from /php/plugins.

The Search Form

If you already have search forms on your blog pages, you need to update them to point to the new Fast Search template. For each template that contains a search form, look for the following (or similar):

<form method="post" action="<$MTCGIPath$><$MTSearchScript$>"

...and change it to:

<form method="post" action="<$MTBlogURL><$MTFastSearchScript$>" the template and repeat this step for every template that has a search form.

If you want to insert a new search form on your site, or completely replace existing forms, you can use the following:

<form method="get" action="<$MTBlogURL$><$MTFastSearchScript$>">
    <label for="query" accesskey="4">Search this blog:</label><br />
    <input id="query" name="query" size="20" />
    <input type="submit" value="Search" />

Or better yet, install the new Fast Search Widget from the plugin settings area, and use WidgetManager to add the widget to your sidebar (you should also remove the existing search widget).

Of course you can also add optional fields to the form such as:

<input type="hidden" name="order" value="date" /> sort the results by date, or....

<input type="hidden" name="category" value="5" /> restrict the search to category_id = 5.

Once you have the search form(s) on you site, rebuild those pages and start searching. You should notice significant speed and resource improvement, especially on blogs with many entries.

Fast Search Settings

Fast Search settings are on a "per blog" basis. To access the settings, browse to the blog you want to use, then choose "Settings", then "Plugins". Look for Fast Search in the list and click the "Show Settings" button.

Get Fast Search

After purchasing a license below, you will be taken directly to a download page with a link to download Fast Search Pro, which includes the "clean tag URLs" feature described above. See the text file included with the download for instructions)

Commercial use - (up to 5 blogs) - $97.00

Fast Search 2.1 for MT4:

Fast Search 2.07 for MT3.2 and 3.3:

Blog Network License - (more than 5 blogs) - $249.00

Fast Search 2.1 for MT4:

Fast Search 2.07 for MT3.2 and 3.3:

Non-commercial use - FREE ( although you must include a

Movable Type search results powered by 
<a href="">Fast Search</a>
link on your search results pages.

If you would like to use the "clean tag URLs" feature described above for non-commercial use, the price is $33:

Fast Search 2.1 for MT4:

Fast Search 2.07 for MT3.2 and 3.3:

Download Now

Fast Search 2.1 for MT4:
Download Now
Downloads: 4725 (since 3/6/07)

Fast Search 2.07 for MT3.2 and 3.3:
Download Now
Downloads: 4725 (since 3/6/07)

Membership required, please sign-in or register:

As always, suggestions and feedback are appreciated. Please reply to this entry.

Note: FastSearch v2.0/2.1 is a suitable replacement for most implementations of the built-in search function in Movable Type. However, there are a few features that Fast Search v2.0/2.1 does not include. Fast Search v2.0/2.1 does not support comment searches, regexp search, case-senstive search, the use of AND and OR operators, and Edit Entry Links). Some of these features may be supported in future versions -- please let me know what features you would like to see.

The Dynamic Menus plugin for Movable Type 4.0 (MT4) hides inactive menu items in the MT4 user interface.

By default, MT4 will display all menu items, even if the user does not have the required permissions to access certain items. The inactive items appear grayed out and are not clickable. Some people, including myself, think it would be better if the inactive menu items did not show up at all: if you don't have permissions to perform certain functions, why should those functions clutter up the interface. In some cases, these unclickable, inactive menu items may cause unwanted user confusion, and it is simpler to only show those function that the user is able to perform. So the Dynamic Menus plugin does exactly this, it hides those inactive menu items completely. So if you agree with my thinking on this, download this plugin!



  • Movable Type 4.0+

Download Now

Download Now
Downloads: 311

Membership required, please sign-in or register:


  1. Download the zip file and upload the contents of the 'plugins' directory to the 'plugins' directory of your MT installation.
  2. You are done. The inactive menu items should be hidden immediately. Note that if you are logged in as a system administrator, you won't notice any difference in the menus, because you have permissions to perform all functions.

Thank you to Movable Type web designer Jesse Gardner for suggesting the 'Dynamic Menus' name, as the name that I came up with was kinda lame.

The Navigation Breadcrumbs plugin for Movable Type 4.0 (MT4) adds navigation "breadcrumbs" to administration interface. These are links at the top of each screen that helps show you where you are in the interface, and provides links to go up one or more levels. Previous versions of Movable Type includes these handy links, but MT4 does not. So if you like those navigation links, use this plugin.



  • Movable Type 4.0+

Download Now

Download Now
Downloads: 348

Membership required, please sign-in or register:


  1. Download the zip file and upload the contents of the 'plugins' directory to the 'plugins' directory of your MT installation.
  2. You are done. The navigation breadcrumbs should start appearing immediately.

MT Plugin Network is a plugin for Movable Type that provides links to the latest plugins and tools, from within the MT administration interface:

MT Plugin Network is collaborative effort by a growing list of plugin developers. When plugin developers release new or updated plugins or tools, they will be added to list of recent MT Plugins and Tools. This way you can quickly and easily stay on top of the latest plugins for Movable Type. Version 1.1 is designed exclusively for Movable Type 4, but version 1.0 is still available for MT3.3.

Download Now

For MT 4.0: Click here to download MT Plugin Network v1.1

For MT 3.3x: Click here to download MT Plugin Network v1.0

Membership required, please sign-in or register:


Unzip the file and upload the contents to your plugins directory within your Movable Type installation (often /cgi-bin/mt/plugins/). After uploading, MT Plugin Network is installed.

Some of the free plugins released by MT Hacks have MT Plugin Network included in the download files. As a condition of the free use of the software, I ask that you also install PluginNetwork. It is a great way to keep up to date on new and updated plugins from MT Hacks (and other plugin providers), as I post updates to the Plugin Network announcements box.

Are you a plugin developer? If you would like to join the MT Plugin Network and include your plugin announcements in the "MT Plugins and Tools" box, please send an email to plugins at

Entry Post is a plugin for Movable Type that enables visitors to your site to submit entries using a form. Visitors do not need a user account and they do not need to login. Similar to posting a comment, they can simply fill in a form and submit.

New features in version 2.0

Entry Post 2.0 contains the following new features:

  • Native Field Support - This means that the EntryPost plugin now manages fields by itself, so you don't need to install CustomFields or any other plugin. You can use Entry Post 2.0 alongside other fields plugins -- there are no known conflicts.
  • Extra Fields - In addition to the standard Name, Email Address, URL, and Image fields, you can now use Entry Post to submit extra fields "on the fly".
  • New Template Tags - New tags make it easier to display information about the poster (and any extra fields) in your blog pages.
  • Support for MT4 - Entry Post two can be used with MT 3.2, 3.3, and now 4.0. tested with MT4 beta5.

I have been using external forms and scripts to do this for several years. Examples include Mars Rover Forum and Seinfeld Forum. These MT-powered forums enable forum members to post new topics (entries) using an external form. Based on this experience, I have converted the entry posting script into a plugin -- and added a bunch of additional features.

Basic Features

  • enable visitors to post entries to your blog
  • new entries can be set to "Published" or "Unpublished" (pending admin/moderator review)
  • supports TypeKey authentication (optional)
  • entries can be scanned against MT's Junk Filters
  • entries can be previewed before posting
  • email notifications of new entry submissions
  • entries can be added to a category (set a default or allow poster to choose)
  • entries can be tagged (default list of tags, or specified by the poster)
  • included default templates include spam-protected form

Advanced Features

  • enable posters to upload an image with the entry
  • other entry fields supported (Extended Entry, Excerpt, Keywords)
  • option to disable rebuilds when an entry is posted
  • option to disable entry creation (makes the form work as a 'contact me' form with email notification turned on.)
  • xml response option
  • support for extra fields defined by you

Try Entry Post Now

I have set up an Entry Post test blog that you can use to submit test entries. You can use one of two forms:

  1. Basic Form (default form installed with Entry Post)
  2. Advanced Form (an example form to demonstrate advanced features)

By using the forms above, you will quickly get an idea of the visitor experience with Entry Post. In its simplest form, it is very similar to posting a comment.

The Administrator Experience

Entry Post has been designed to be easy to install and configure. Simply upload the files, change some file permissions, then configure the plugin via the Plugin Settings for each blog. Required templates are installed with a single click (which can then be customized, if desired).

The settings area for Entry Post looks like this:

By using the above settings, you can configure most of the features of Entry Post.

Template Tags

New in version 2.0, EntryPost includes the following template tags that you can use to display information posted using the plugin:

  • <MTEntryPosterName> - The name of the poster, as submitted in the "Name" field. If the name field it blank, the plugin assumes that the entry was not submitted via Entry Post, and this tag will display the name of the author of the entry. This makes it very easy to update your templates, simply replace the <MTEntryAuthorDisplayName> tag with the <MTEntryPosterName> tag, and it will "just work", regardless whether the netry was posted by an author or posted by a visitor to your blog.
  • <MTEntryPosterEmail> - The email address of the poster, as submitted in the "Email" field. If the "Name" field is blank, this tag outputs the email address of the author. For privacy and anti-spam reasons, I don't recommend using this tag in your templates.
  • <MTEntryPosterURL> - The URL of the poster, as submitted in the "URL" field. If the "Name" field is blank, this tag outputs the URL of the author.
  • <MTEntryPosterIP> - The IP address of the poster. For privacy reasons, I don't recommend using this tag in your templates.
  • <MTEntryPosterImage> - The relative path of the image uploaded by the poster.
  • <MTEntryPosterLink> - Outputs the linked name of the poster. If the "Name" field is blank, it will display the author's linked name. Supports the same arguments as <MTEntryAuthorLink>.
  • <MTEntryPostField> - This tag can be used to to display the value of any extra fields submitted using Entry Post. A single field argument is required, which should inlcude the name of the field, without underscores. For example, <MTEntryPostField field="Favorite Color"> would display the value of the Favorite Color field.

Advanced Use - Adding Extra Fields

Entry Post 2.0 makes it very easy to add extra fields. All you have to do is add the extra fields to the form. First, browse to Templates and then Template Modules and edit the 'EntryPost Form" module. Now add a field to the form in the following format:

<input type="text" name="entrypost_Favorite_Color" />

..and you are done! Note that the "name" argument above must begin with "entrypost_", followed by the name of the field. Use underscores ("_") instead of spaces, if the field name has more than one word. You can add multiple extra fields in this manner, and they will automatically be added to the entries posted, and displayed automatically on the admin Entry screen.


  • MT 3.2+ (Note: The tags and TypeKey login features require MT 3.3+)


  • Under MT 3.2, you will be able to see the Entry Post fields on the entry screen, but you won't be able edit them.
  • Under MT 4.0, the Typkey sign-in feature doesn't work reliably. The next version of Entry Post will focus on support for MT4's native authentication system.


  • Download the zip file and extract the contents.

  • Upload the "EntryPost" directory (and all its sub-directories and files) to your MT 'plugins' directory.

  • Change the file permissions to 755 (CHMOD 755) for the EntryPost/mt-entrypost.cgi and EntryPost/signin.cgi files.

  • Login to MT and go to the 'Settings' area of a blog and choose the 'Plugins' tab. Then click the "Settings" link for EntryPost. You should now see the available settings for EntryPost, as shown above.

  • Enable the plugin by checking the Enable checkbox, choose other settings, and the save the settings.

  • Return to the EntryPost settings and install the templates by clicking the provided link. After the templates have been created, you can customize them, if desired, to suit your needs or match your site design. The primary template is an index template called "EntryPost Submit Page" - this page includes the form to post entries.

  • You will probably now want to provide a link to the Submit Page from your main index. One way to do this is to use the provided "EntryPost Submit Link" widget (using WidgetManager). Alternatively, you can manually create a link such as <a href="<MTEntryPostSubmitPage>">Submit an Entry</a>.

Get Entry Post

Commercial License - $97

If you site or blog is for-profit, a commercial license is required. The license includes all future updates to Entry Post and priority feature requests.

Personal License - $33

For use on a personal site or blog, a personal license is required. The license includes all future updates to Entry Post.

If you would like to use Entry Post on a non-profit or charity site, please contact me.

Live Demo

If you are interested in purchasing EntryPost, but would like to try it first, that can be arranged. To experience the poster side of things, visit the Entry Post test blog using the links provided above. If you would like to login to see the admin interface, please contact me.

As always, feedback, suggestions, and product questions are appreciated. Please reply to this entry.

Note: - While Entry Post 2.0 includes built in support for poster fields and extra fields, it is not intended to be used as a general purpose "extra fields" plugin. Fields can only be added via the external Entry Post form. If you are interested in a general purpose fields plugin, there are several available, including CustomFields and RightFields.