A new Open Source project has been launched today called Open Melody, which is a fork of Movable Type Open Source. Open Melody has been created by the MT developer community in order to take the product to the next level.

Why fork Movable Type? The Open Melody FAQs explain, "The community created Melody out a shared passion for Movable Type and a shared desire to see it flourish as a platform. We felt that the best and quickest way to achieve that goal was to create a product in which the community was inherently entrusted with a greater degree of control over its direction, communication channels and roadmap, and rewarded with more transparency and a greater sense of belonging."

In the spirit of being driven by the community, the current state of Open Melody is very similar to the latest version of MT. Going forward, features will be added and changes will be made in accordance with the community collaboration. So its too early to say what Melody will look like, and how it will be different from MT. Time will tell.

Why This is a Good Thing

Over two years ago, Six Apart, the creator of Movable Type open sourced the code for the core Movable Type application. While its was an exciting and bold move, the announcement and product naming choices were confusing to many -- the differences between Movable Type Open Source and the Movable Type Commercial product and closed source add-ons sold by Six Apart weren't easy to grasp, and some even disputed the newly open source nature of core application.

Bottom line is that the core of MT has been open source for 2 years, so what are the reasons and potential benefits of a separate branch of the application, why do we need Melody? In my opinion, the key benefit is that Melody will be developed completely by the community, with no direct ties to a commercial for-profit enterprise. While core MT has been open source licensed, the product planning process and much (but not all) of the discussion, prioritization, and release planning and scheduling were closed to those outside of Six Apart. Six Apart also acted as a gatekeeper to code contributions, with final say over what made into the final product. Both of these may be common for open source projects lead by commercial entities, and are fair enough -- Six Apart is a business and like any business they can and should make decisions based on the commercial interests of the company. But for the community of developers, consultants, and users, this didn't feel very open, at least in my opinion. The feature roadmap was being driven internally at Six Apart, not in a collaborative way with the community at large. [This is not to say that Six Apart did not listen to feature suggestions of the community -- many of the features added to the product were in response to community requests] The reality, I think, is that the internal business objectives that informed the development and product planning process are not fully aligned with the objectives of the broader community. This is an unavoidable reality, there is no right or wrong here, only different contexts and thus different perspectives and goals. For these reasons, I think many developers and end-users shied away from Movable Type -- despite the open source license, the product was controlled by a single for-profit company, and the ability of the external community to contribute and collaborate was limited.

Open Melody changes that dynamic. The core code becomes freed from the business concerns and objectives, thus enabling it to evolve in a way that is fully aligned with objectives and desires of the community. This means that roadmap planning, feature discussions, and development will all be completely open and collaborative. I hope that this will help attract more developers to the project and lead to faster release cycles and richer features that users want to see. With Open Melody, everyone wins: users, developers, community, the product, and even Movable Type and Six Apart. Its going to exciting to see how Melody evolves.

Current User of Movable Type?

If you are a current user of MT, you may be wondering what this means for you, should you switch when the time comes, or stay with MT? Today, there is a single, easy answer: wait and see. Melody is just getting started and it will probably be at least 6 months before a stable release is ready. So sit back and wtach how it evolves -- or better yet, contribute! Even if you are not a programmer, you can contribute by offering feature suggestions, etc. Another important thing to keep in mind is that a goal of Melody is to maintain compatibility with MT, so you should be able to switch back and forth, and use the same plugins and themes with either.

Melody and MT Hacks

I believe in the goals behind Melody and I hope it will be successful. I plan to contribute however I can, while at the same continuing to support the Movable Type platform. My goal is that plugins from MT Hacks will be supported on both platforms, which is aligned with Melody's objective of compatibility with MT. So if you use plugins by MT Hacks and you decide to move to Melody in future, you can continue to use the same plugins, and if you continue with MT, you can also keep using the same plugins. Of course, like any core MT upgrade, sometimes plugin updates are required, but those should work on both platforms.

Visitor Stats is a plugin for Movable Type 4+ that displays visitor and page view statistics for your MT sites. Visitor Stats Pro provides even more statistics and widgets (details below).

Visitor Stats looks like this:

New Features in Visitor Stats 1.6

  • Support for MT 4.1
  • Some template tags now supported under MT's PHP-dynamic publishing system (<MTVisitorStatsTracker>, <MTVisitorStatsCounter>, <MTEntryStats>, and <MTPageStats>)
  • Option to build dashboard stats via scheduled for better performance (Pro)
  • Code optimized for better overall performance

Visitor Stats Pro

Additional features included with Visitor Stats Pro:

  • Blog Widget for displaying a ranked list of "Most Read Entries"
  • Entry Stats graph that displays entry pages views by date.
  • List of Recent Visitors and Views on the admin Dashboard (including IP address, username, referrer and keywords).
  • Dashboard widgets for displaying top search engine keywords and referrers.
  • Detailed Entry Stats screen with graph, top keywords used to find the entry, and a list with details of each page view for that entry.
  • Many new template tags for displaying stats on the published pages for your blog.
  • See details about Visitor Stats Pro below

Visitor Stats also provides a "stats counter" tag (and widget) that you can place on your site to display your stats. Note: you can visit the MT4 Test Blog to to see some of the Visitor Stats (and Pro) publishing widgets and tags in action.

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.

Visitor Stats - Template Tags

Visitor Stats provides 4 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">
  • New! - <MTEntryStats> - Used within an entry context, this displays the total number of views for that entry.
  • New! - <MTStatsImageURL> - The URL to the small stats image ( that looks like ).There is one optional argument:
    • type - the type of stats that you want to graph, which either be "visit" or "view". The default is "view". Example: <MTStatsImageURL type="visit">

Visitor Stats Pro Features

Visitor Stats Pro includes additional stats and provides ways to view visitor and view stats in more detail, helping you understand the traffic to your sites. Where are readers coming from? What search keywords are they using in search engines to find your site? What entries are they reading? Which entries get the most views? Visitor Stats Pro helps you answer these questions and more.

Display a List of the Most Popular Entries

Visitor Stats Pro includes a widget that you can use to display a ranked list of the "Most Read Entries" in your blog sidebar, showing readers which entries are the most popular. You can also create customized most readlists by category, tag, etc. Examples include "Most Read Entries in this Category", or a "related entries" section that lists that the most read entries with the same tags as the current entry. This is a powerful feature with many possibilities.

Detailed Stats for Each Entry

In the MT4 admin interface, Visitor Stats Pro displays detailed view stats for each entry. On the entry screen, an Entry Views graph can display the traffic history for that entry:

(The graph on the edit entry screen can be hidden with a single click, or disabled in the plugin settings, for those who don't want to the graph to appear on this screen)

On the right side of the Edit Entry screen, the number of views for that entry will be displayed, and you can click the link for Detailed Stats:

The same graph also appears on the Detailed Stats screen for each entry (just click the "More Stats" link from the main entry screen), plus a list of top keywords for that entry, and a detailed list of the pages views for that entry:

As you can see from the image above, in addition to displaying the IP address for each Visitor (just to left of this image), Visitor Stats Pro will also identify visitors and views by registered users on your system. This includes both local MT authenticated users, as well as TypeKey, Vox, Livejournal, or other OpenID users. This provides valuable information about the traffic stats of your signed-in users. You can even filter the list of page views by dragging the sliders on the graph -- just choose a date range, then click the link that appears. The "From" column shows the URL that the visitor came from before arriving on your site.

More Dashboard Stats

Visitor Stats Pro provides even more stats on the MT4 admin dashboard. This includes a summary of recent visitors and views, along with detail about each. This is similar to the "Recent Entries" and "Recent Comments" displayed when you click the respective tab on the Blog Stats widget:

Top Keywords and Referrers Dashboard Widgets

Visitor Stats Pro includes two new widgets that you can optionally display on your admin dashboard. The "Top Keywords" widget will display a list of the top search engine keywords used to find your blog:

And the "Top Referrers" widget will display a list of the top referrer URLs for your visitors, so you can see where your traffic is coming from:

Many Visitor Stats Pro Template Tags

Visitor Stats Pro includes many new template tags that you can use to display your blog stats on your published pages, blog sidebar, etc. In addition to display lists of "most viewed entries" as described above, you can display lists of top keywords, top referrers, recent visitors, and recent page views. If fact there are so many new template tags, that I won't discuss them in detail here -- I will soon post a separate article that describes the tags with some example template code.

Requirements

Installation or Upgrade

Note: If you are upgrading from version 1.5x, you do not need to reinstall the templates, as they have not changed in version 1.6.

  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. (Pro Version Only) Upload the contents of the 'extlib' directory into the 'extlib' directory of your Movable Type installation (often /cgi-bin/mt/extlib/).
  3. (Pro Version Only) Upload the contents of the 'mt-static' directory into the 'mt-static' directory used by your Movable Type installation.
  4. Login to MT and you should be redirected to an "Upgrade" screen that will update your database automatically.
  5. 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". Note: Even if you are upgrading from a previous version, you should re-install the templates.
  6. 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. Note: If you are upgrading from a previous version of Visitor Stats, you can skip this step.
  7. Now Publish (rebuild) all your files.
  8. (Optional) Add the <MTVisitorStatsCounter> tag to your templates or use Widget Manger to add the "Visitor Stats Counter" widget to your sidebar. Pro users can add the "Most Read Entries" widget and start using the many new templates tags.

Get Visitor Stats Pro

Commercial License - $97

Non Commercial Use License - $33

Get Visitor Stats

Visitor Stats (Basic Version) is free to members of MT Hacks.

Download Now

Download Now
Downloads: 2100

Membership required, please sign-in or register:

Potential Future Features

Visitor Stats Pro was a much larger effort than I anticipated. As such, there are still a number of interesting features that may be added in the future. Future features will be determining largely by the requests of Visitor Stats Pro license holders. Here are some of the potential features:

  • Stats on a per author basis. If you have a blog with multiple authors, see which authors are generating the most traffic.
  • Drill-down into statistics. View the traffic history for a single visitor or registered commenter, see how they navigate through your site and which pages they viewed.
  • Geographical stats. See what country, region and city your visitors are coming from.
  • Recommended entries based on common viewing stats. For example "people who read this entry also read these entries..."
  • And more...

As always, suggestions, comments, and questions are appreciated.

A Note on the Small Stats Graphs

The small stats graphs included with this version of Visitor Stats are called Sparklines and were inspired by the SparkStats plugin for Wordpress. The sparkline graphs used by the Visitor Stats plugin are powered by the sparkline web service provided by bitworking.org. The plugin stores a copy of the image on your blog, and updates the image a maximum of once per hour (note that that stats image only updates when the page is published, either manually or automatically when someone posts a comment, etc.). Credit goes to those sites discussed above for their cool work with Sparklines.

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.

New in Version 1.1

  • Support for the new "Template Sets" feature in MT 4.1. Starting with MT 4.1, when you create a new blog, you can choose from multiple template sets to use. Template Exporter v1.1 enables you to export your current templates into sets that you can chose when creating new blogs, in a very easy way. More info on this feature below.
  • The code has been optimized to improve performance.

Note: templates exported with version 1.1 of Template Exporter cannot be install with older version of the Template Installer plugin, you will need Template Installer v1.1 (or higher).

Also note that version 1.1 can be used with both MT 4.01 and MT 4.1.

Screencasts

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.

Using Template Exporter with the MT 4.1 Template Sets Feature

Movable Type 4.1 includes a feature called Templatee Sets that enables you to choose a template set when you create a new blog. Template Exporter supports this template set format, so you can export your favorite template set and use it as one of the template set choices. No code or plugin creation required. Just use these easy steps:

  1. Go to the Templates area for the blog you want.
  2. Choose the "Export Templates" link from the "Actions" menu on the right side of the page.
  3. Give the new set a name and export it.
  4. Now take the exported set (including the folder that contains the set - for example, if you named it "Cool Style Templates" then the folder would be 'cool_style_templates') and move it into the 'plugins' directory.
  5. Create a new blog and your set will be among the options!

Requirements

  • MT4+

Installation

  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

Personal License - $33

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.

New in Version 1.1

Update 1/25/08 13:15 EST:Due to an error on my part, the download link was pointing to the old version for the previous 24 hours. This is now fixed. Please use the download link below to get the new version.
  • Version 1.1 of Template Installer now includes support for MT 4.1. You can use this version with either MT 4.01 or MT 4.1.
  • The code has also been optimized to reduce CPU / memory usage, thus improving performance.
  • No new features have been added.

Note: Template Installer v1.1 can be used to install templates that have been exported using any version of Template Exporter. Templates exported by the new Template Exporter v1.1 cannot be installed with older versions of Template Installer, you'll need version 1.1 for those.

Screencast

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.

Requirements

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

Installation

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

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.

Cache Block is a plugin for Movable Type that can dramatically speed up publishing by caching blocks of built template code. Cache Block is very flexible, enabling you to cache an entire page, a small template snippet, a template module, a sidebar widget, and entire sidebar, etc. Each block can be set to expire after a certain duration -- some blocks you may want to cache for 5 minutes, others for hours, or even days. When used wisely, the result is significantly faster publishing times and faster comment-posting.

Cache Block on ReadWriteWeb

ReadWriteWeb is a very popular technology blog with many entries and comments. And with over 130 front page Diggs and counting, ReadWriteWeb gets a lot of traffic. With the goal of speeding up publishing and comment posting, I recently implemented Cache Block on ReadWriteWeb. Combined with other optimizations, Cache Block helped to significantly improve publishing speed and now comments post much faster. This is one example of Cache Block being used on a live, busy site.

How It Works

For each page that is published by Movable Type, a large number of template tags are evaluated by the system, which often requires many database lookups. The Cache Block plugin strives to reduce those database lookups by caching groups of template code that has already been evaluated. For example, suppose you decided to cache your entire sidebar. The first time MT publishes that sidebar, it will do many database lookups to generate lists of recent entries, comments, lists of archives and tags, etc. After that, the Cache Block plugin will take all of that sidebar HTML and save it in the cache. The next time MT needs to publish your sidebar, it will find it in the cache, so it will skip the evaluation and related database lookups for the entire sidebar, and simply fetch the pre-built sidebar from the cache. This can speed up the process a lot. Imagine if you are trying to publish a 1000 page site, and each of those pages includes the sidebar!

Behind the scenes, Cache Block checks to see if memcached is available and enabled. If it is, CacheBlock will stores blocks using memcached, which is very fast. BUT, you don't need to have memcached! If memcached is not available, Cache Block will simply store the block in the database. As such, it will still require a database lookup to retrieve it from the cache, but you can save dozens or even hundreds of database lookups by caching significant segments of built template code, by replacing them with a single lookup to the cache. Even without memcached, Cache Block can dramatically speed up publishing.

Template Tags

Cache Block has just one template tag:

  • <MTCacheBlock> - This container tag should be wrapped around the block that you want to cache. Everything between the opening <:MTCacheBlock> and the closing </MTCacheBlock> will be saved as a single block in the cache. There are several arguments for this tag:
    • key - (Required) The key argument represents the cache key, a unique identifier for the cache block. Each block should have unique key. Note that keys are not namespaced on a per-blog basis -- meaning that a key of "foo" used in one blog will overwrite a key of "foo" on another blog.
    • expiry - (Required) The number of minutes that the block will be stored in the cache. Longer expiry times will result in more speed improvements, but the ideal expiry depends greatly on the content being cached and the volume of activity of your site.
    • refresh - (Optional) This argument is designed for temporary use only. Adding refresh=1 will force an update of the cache. In other words, with this argument, blocks will never be fetched from the cache. This argument is useful when you are making design changes to your templates, and you want to refresh the cache block so that you can view your changes on your site. After your template editing is complete, remember to remove the refresh=1 from all MTCacheBlock tags, so you can once again reap the benefits of the cache.

Cache Block Expiry

For Cache Block stored in the database, blocks are expired by a scheduled task that is set to run once per minute, at most. To ensure timely expiry of cache blocks, I strongly recommend that you set up a cron job to run the /tools/run-periodic-tasks script on a regular frequency that is consistent with your caching strategy. Click here for more information about scheduled tasks and setting up a cron job.

Cache Block Pro

Cache Block Pro includes the same powerful caching features, and adds powerful administration tools to facilitate further optimization and management of your Cache Blocks. Features include:

  • Flush Entire Cache - This useful function provides a quick way to flush your entire cache. Normally, you wouldn't want to do this, but during a redesign of your site, this one can come in handy.
  • Cache Blocks Widget - When you are editing a template, this widget will appear on the right side of the page, listing the Cache Blocks used by the template. When possible, listed blocks will have a "flush" link next to them so you can flush a single block easily. You can also click on the linked names of the blocks to view the contents of the Cache Block.
  • View All Cache Blocks - Use this feature to view a list of all Cache Blocks on the system, including the expiry date of each. Note that this feature is not currently available if you are using memcached.
  • Edit Cache Block - Manually edit the contents of specific Cache Blocks and change the expiry dates as desired.
  • View Rendered Block - From the Edit Cache Block screen, you can view the rendered HTML of the block. Instead of view the built HTML source, this will display thye block as it would be shown in the browser (in most cases, without applying your external styles)

Requirements

  • MT3.3+

Note: The Pro features described above require MT4.01 or higher.

Installation

  1. Upload the contents of the 'plugins' folder to the 'plugins' directory of your MT installation (usually /cgi-bin/mt/plugins/)
  2. Start using the >MTCacheBlock> tag in your templates, as described above.

Click here for Cache Block Examples.

Get Cache Block Pro

Commercial License for 1 to 10 blogs - $97

Blog Network License for 10+ blogs - $249

Personal License for 1 to 4 blogs - $33

Get Cache Block

Cache Block is free for personal or evaluation use.

Download Now

Download Now
Downloads: 399

Membership required, please sign-in or register:

As always, comments, questions, and suggestions are welcome.

Template Inheritance is a plugin for Movable Type that enables you to link templates together in a way that one template inherits its template code from another template. One example is when you have two or more blogs in your MT system, and you want to use the same design or template layout for each blog. Using the Template Inheritance plugin, you can effectively use one blog's templates as master templates that control the templates of the other blogs. So if you have 3 blogs on a company site with same look and feel, this can save you a lot of time manually updating the templates of each blog every time you make a change. Another way to think of it is sharing templates between several blogs. You can link all the templates in one blog to another, or selectively choose which templates should be inherited (including template modules).

New Features in Template Inheritance Pro 2.0

There two new features:

  • Support for MT4
  • A powerful "Inherit all Templates" feature that enables you to quickly link all of the template of blog, in a single step. This function even goes a step further -- if the "parent blog" has templates that don't exist in the "child blog", then those templates will be automatically created and then linked, so that they are inherited from the parent blog. In short, this will effectively copy all the template from Blog A to Blog B, and then link them so that when you make changes to templates in Blog A, the changes are made automatically in Blog B.

Background

I have wanted a plugin like this for years, the ability to share template code between multiple blogs. For a long time, MT has included a "Link this template to a file" feature in which you could link a template to an actual file on your server. I used to link multiple templates to the same file, effectively (and indirectly) sharing the template code between different blogs. While this works, it has its problems. At times in the past, there we MT bugs that prevented templates from being updated from the file - but I think those are fixed now. The other main problem is that you have to be very careful when editing a template, remembering that it may be shared with other blogs, etc. The Template Inheritance plugin is an improvement over the file linking method, addressing the key issues with file-based linking.

Features

For any specific template, you can assign another template on the system from which to inherit template code. For example you could decide that you want template "B" to inherits its template code from template "A".

It may be helpful to think of "A" as the parent template and "B" as the "child" template -- the child inherits its template code from its parent. When template becomes linked to parent template, the child's template code will immediately be replaced by the template code of the parent, and will be derive its template code from the parent from that point forward. You won't be able to edit the child template after the link is made (the template code is greyed-out and the field is disabled) -- instead, you will see a link to the parent template, and you can then edit the parent template.

Editing the parent template will automatically update all of its children templates. Of course, you need to rebuild the appropriate pages on each blog for template changes to be reflected on your blogs. You remove remove inheritance (break the link with the parent) at any time. When you remove inheritance from a child template, it becomes independent from that point forward, and you can now customize it independently of the parent template.

Or, you can use the "Inherit all Templates" function to link all of a blog's templates to those of another blog. This is major time saver when you have multiple blogs that you want to use the same layout and design. Simply create and customize the templates on a "master blog" then link the other blogs quickly.

Notes:

  • Only system administrators (sometimes called superusers) can create inheritance links.

  • You must enable the plugin for each blog before you can create inheritance links (blogs to have "child" templates need to be enabled, not those containing the "parent" templates)

  • A template cannot be both a child and a parent. If you try to assign inheritance from a template that is a child of another template, it will work -- but the plugin will make the link directly the ultimate parent. This makes it easier to manage, as you won't have to trace template linkages through several generations to find the "master" template.

  • When a parent template is deleted, each of its children immediately become independent (orphaned, if you will).

  • When first assigning inheritance to a template, the child template's code is replaced by that of the new parent. BE CAREFUL, there is no undo, the child's former template code will be gone. This is also true when using "Inherit All Templates". Just to be safe, it may be a good idea to back up the old template code beforehand, in case you decide to revert back.

Requirements

  • MT 3.3+

Note: the "Inherit all Templates" feature is currently available only on MT4. If you are interested in using this feature with MT3.3x, please let me know.

Great for Blog Networks

While Template Inheritance can be used in many different scenarios, it is a great fit for blog networks. Networks of blogs on the same MT system often have similar (or identical) design or template code. Sometimes only certain things are the same, such as a common header / footer, stylesheet, sidebar, advertising blocks, etc. Using this plugin to link up those common template elements, you can save a lot time managing the templates of the network. If you have a blog network and this sounds interesting, please contact me. I can help implement this for you, customize the plugin to meet your specific needs, etc.

Instructions

  1. Extract the contents of the zip file and upload the contents of the 'plugins' directory into the 'plugins' directory of your MT installation
  2. Login to MT (or hit Main Menu, if you are already logged in). You should now see and upgrade screen that will install a table for Template Inheritance.
  3. Browse to the blog you want, then go to the plugin settings to enable the plugin.
  4. Browse to the template you want, then click the "Click here to inherit code from another template" link.
  5. Enter the template ID of the desired parent in the prompt box, hit OK.
  6. The template is now linked to the parent. Rebuild to see the results on your site.
  7. (Pro Version only) Or use the "inherit all blogs" feature to link an entire blog.

Get Template Inheritance

Template Inheritance is free for personal use on up to 3 blogs.

Donations are appreciated:

Download Now

Download Now
Downloads: 171

Membership required, please sign-in or register:

Template Inheritance Pro is only available with a license:

Commercial License (4-10 blogs): $97

Blog Network License (10+ blogs): $249

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

User Profiles is a plugin for Movable Type 4 that extends the user profiles in MT4. Version 1.0 adds the ability to user profile images (sometimes called avatars) from within the MT4 interface:

Profile images are just the first step for the User Profiles plugin. Look forward to more profile features in the near future.

How it Works

From admin MT4 interface, users can add a profile image by editing their profile. (System admins can perform this task for any user on the system):

Users will the be prompted to upload a profile image:

Square images are recommended, but if the uploaded photo is not a square, the plugin will automatically crop the image to make it a square.

After saving the profile image, the image will appear in the user profile:

Finally, the <MTAuthorImageURL> and <MTCommenterImageURL> tags can be used to display the user's profile image on your published blog pages.

Note: In version 1.0, authenticated commenters cannot upload their own profile images -- only users will access to the MT4 admin area can upload photos. In the next version, commenters will be able to upload profile images as well.

Profile images are stored as Assets within Movable Type. This means that these images can also be used in other ways, such as inserting them into entries. Movable Type will keep the full size image (cropped to square, if necessary) and create thumbnails when using the tags described below. Each profile image is tagged with 'profileimage'.

Template Tags

Version 1.0 of User Profiles includes 4 new template tags:

  • <MTAuthorImageURL> - This displays the url to a thumbnail of the author's profile image. There is one optional argument:
    • size - the size in pixels of square thumbnail, default is 50 pixels (each side)
  • <IfMTAuthorImage> - This conditional tag displays its contents if the author has uploaded a profile image.
  • <MTAuthorImageURL> - This displays the url to a thumbnail of the commenter's profile image. There is one optional argument:
    • size - the size in pixels of square thumbnail, default is 50 pixels (each side)
  • <IfMTCommenterImage> - This conditional tag displays its contents if the commenter has a profile image. Note: if you posted a comment on your own blog (while signed in), your profile image will be displayed using this tag.

Example: In your "Entry Metadata" template module, your could add the following:

<MTIfAuthorImage><img src="<MTAuthorImageURL size="50">" align="left" /> </MTIfAuthorImage>

This would display the author's profile image, if they have one in their profile.

Similarly, in your "Comment Detail" module, you could add:

<MTIfCommenterImage><img src="<MTCommenterImageURL size="50">" align="left" /> </MTIfCommenterImage>

Both example above can be seen in action on the MT4 Test Blog.

Installation

  1. Download the zip file and upload the contents of the 'plugins' folder to the 'plugins' directory of your MT installation.
  2. Go to the blog you want, then to Preferences > Plugins. Then choose User Profiles, then Settings. Entry the path for uploading profile images, then save.
  3. Upload a profile image from your profile. (Tip: the quickest way to get to your profile is to click the "Hi Username!" link in the very top right of the page.) Click the link to add a profile image and follow the steps as shown above.
  4. Edit your templates to display profile images, as described in the Template Tags section above.

Get User Profiles

User Profiles v1.0 is free for both commercial and non-commercial use. (Note that future versions will have additional features and may not free for commercial use.)

Download Now

Download Now
Downloads: 543

Membership required, please sign-in or register:

Upcoming Features

This is just the beginning for the User Profiles plugin. Potential future features include:

  • Enabling commenters to upload photos
  • Public user profile pages listing profile information, plus recent entries and comments.
  • Extended profiles (fields for birth date, hometown, etc.)
  • Importing photos from other services, if possible.
  • And more - please make feature suggestions in the comments of this entry

The Customized Email Templates plugin enables MT4 sites to customize email notification templates on per blog basis. Using the familiar MT4 template management screens, you can easily customize the emails that get sent out by the system. For example, you could change the order of comment fields, remove unwanted items, or add new pieces of information to suit your needs.

How it Works

When MT is ready to send an email, the plugin looks for template modules in that blog with the same names as the default system filename. The key names are:

  • new-comment.tmpl
  • new-ping.tmpl

If the module is not found, the system default will be used (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 a lot of <mt:var tags, which are variables that are set by the system. In addition to these tags, you can also use normal <MTCommentXXX, <MTCommenter and <MTEntryXXX tags when customizing these templates.

Template Sets

As a separate download, I have created a template set to get you started: This template set includes template modules for both comment notifications (new-comment.tmpl) and trackback notifications (new-ping.tmpl). Remember, it is important not to rename these modules.

These templates are virtually identical to the system defaults, but I have included two enhancements to the new-comment.tmpl template:

  • If the comment was made by a authenticated commenter, the Auth type will be shown after their name. For example, it would show "Commenter name: Bob Sakamano (Vox)".
  • I have modified the "View comment" URL so that it includes the anchor #comment-<mt:CommentID>. These means that when you click the link, it will go directly to that comment on the page, rather than to the very top of the page. This is handy for sites that get a lot of comments, and you have scroll all the way down to view the new comment and/or reply.

Requirements

Installation

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 as described above.)

Get Customized Email Templates

Commercial License - $97.00

Personal License - Free

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

Download Now

Download Now
Downloads: 191

Template Set:
Download Now

Membership required, please sign-in or register:

As always, comments and suggestions are welcome.

Entry To Page Converter is a plugin for Movable Type 4 that enables you to convert Entries into Pages.

Pages are a new feature in MT4 that you can use to create pages that are not really 'entries'. In previous versions of Movable Type, many people used entries for such pages. Now that MT4 has "pages", you can use this plugin to easily convert those old entries into pages. By the way, you can also do the reverse, convert Pages into Entries.

How it Works

On the Entry listing screen, you can select the entries that you want to convert by checking the boxes. Then simply choose "Convert to Page(s)" from the "more actions..." dropdown menu and click "Go". The Entries will immediately be converted to Pages. During the conversion process, the entry is automatically removed from any categories it may have been in, since Pages don't use categories. After the conversion process, you will be redirected to a "Batch Edit" screen for your new pages. Using this screen, you can quickly add Pages to Folders and other minor edits, then hit save. It's that easy.

Requirements

  • MT4.0+

Installation

  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 go to the entry listing for the blog you want.
  3. Select the entries that you want to convert by checking the checkboxes.
  4. Choose "Convert to Page(s)" more the "more actions..." dropdown box and click "Go"
  5. (Optional) Add the new pages to Folders and make other edits, then save.
  6. Rebuild your site.

Get Entry to Page Converter

Commercial License - $25

Visitor Stats is free for non-commercial use, to members of MT Hacks.

Download Now

Download Now
Downloads: 224

Membership required, please sign-in or register:

Comments and Suggestions are welcome, please post a comment.

Visitor Stats is a plugin for Movable Type 4.0 that displays visitor and page view statistics for MT4 blogs. New! Visitor Stats Pro provides even more statistics and widgets (details below).

Visitor Stats looks like this:

New Features in Visitor Stats 1.5

  • Stats Counter widget now includes mini graph
  • Several bugs and warnings fixed.
  • Stats are now reported in the time zone for each blog
  • New template tag for displaying the number of times an entry has been viewed

Announcing Visitor Stats Pro

This is the first release of the "Pro" version of this plugin. Additonal features included with Visitor Stats Pro:

  • Blog Widget for displaying a ranked list of "Most Read Entries"
  • Entry Stats graph that displays entry pages views by date.
  • List of Recent Visitors and Views on the admin Dashboard (including IP address, username, referrer and keywords).
  • Dashboard widgets for displaying top search engine keywords and referrers.
  • Detailed Entry Stats screen with graph, top keywords used to find the entry, and a list with details of each page view for that entry.
  • Many new template tags for displaying stats on the published pages for your blog.
  • See details about Visitor Stats Pro below

Visitor Stats also provides a "stats counter" tag (and widget) that you can place on your site to display your stats. Note: you can visit the MT4 Test Blog to to see some of the Visitor Stats (and Pro) publishing widgets and tags in action.

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.

Visitor Stats - Template Tags

Visitor Stats provides 4 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">
  • New! - <MTEntryStats> - Used within an entry context, this displays the total number of views for that entry.
  • New! - <MTStatsImageURL> - The URL to the small stats image ( that looks like ).There is one optional argument:
    • type - the type of stats that you want to graph, which either be "visit" or "view". The default is "view". Example: <MTStatsImageURL type="visit">

Visitor Stats Pro Features

Visitor Stats Pro includes additional stats and provides ways to view visitor and view stats in more detail, helping you understand the traffic to your sites. Where are readers coming from? What search keywords are they using in search engines to find your site? What entries are they reading? Which entries get the most views? Visitor Stats Pro helps you answer these questions and more.

Display a List of the Most Popular Entries

Visitor Stats Pro includes a widget that you can use to display a ranked list of the "Most Read Entries" in your blog sidebar, showing readers which entries are the most popular. You can also create customized most readlists by category, tag, etc. Examples include "Most Read Entries in this Category", or a "related entries" section that lists that the most read entries with the same tags as the current entry. This is a powerful feature with many possibilities.

Detailed Stats for Each Entry

In the MT4 admin interface, Visitor Stats Pro displays detailed view stats for each entry. On the entry screen, an Entry Views graph can display the traffic history for that entry:

(The graph on the edit entry screen can be hidden with a single click, or disabled in the plugin settings, for those who don't want to the graph to appear on this screen)

The same graph also appears on the Detailed Stats screen for each entry (just click the "More Stats" link from the main entry screen), plus a list of top keywords for that entry, and a detailed list of the pages views for that entry:

As you can see from the image above, in addition to displaying the IP address for each Visitor (just to left of this image), Visitor Stats Pro will also identify visitors and views by registered users on your system. This includes both local MT authenticated users, as well as TypeKey, Vox, Livejournal, or other OpenID users. This provides valuable information about the traffic stats of your signed-in users. You can even filter the list of page views by dragging the sliders on the graph -- just choose a date range, then click the link that appears. The "From" column shows the URL that the visitor came from before arriving on your site.

More Dashboard Stats

Visitor Stats Pro provides even more stats on the MT4 admin dashboard. This includes a summary of recent visitors and views, along with detail about each. This is similar to the "Recent Entries" and "Recent Comments" displayed when you click the respective tab on the Blog Stats widget:

Top Keywords and Referrers Dashboard Widgets

Visitor Stats Pro includes two new widgets that you can optionally display on your admin dashboard. The "Top Keywords" widget will display a list of the top search engine keywords used to find your blog:

And the "Top Referrers" widget will display a list of the top referrer URLs for your visitors, so you can see where your traffic is coming from:

Many Visitor Stats Pro Template Tags

Visitor Stats Pro includes many new template tags that you can use to display your blog stats on your published pages, blog sidebar, etc. In addition to display lists of "most viewed entries" as described above, you can display lists of top keywords, top referrers, recent visitors, and recent page views. If fact there are so many new template tags, that I won't discuss them in detail here -- I will soon post a separate article that describes the tags with some example template code.

Requirements

Installation or Upgrade

  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. (Pro Version Only) Upload the contents of the 'extlib' directory into the 'extlib' directory of your Movable Type installation (often /cgi-bin/mt/extlib/).
  3. Login to MT and you should be redirected to an "Upgrade" screen that will update your database automatically.
  4. 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". Note: Even if you are upgrading from a previous version, you should re-install the templates.
  5. 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. Note: If you are upgrading from a previous version of Visitor Stats, you can skip this step.
  6. Now Publish (rebuild) all your files.
  7. (Optional) Add the <MTVisitorStatsCounter> tag to your templates or use Widget Manger to add the "Visitor Stats Counter" widget to your sidebar. Pro users can add the "Most Read Entries" widget and start using the many new templates tags.

Get Visitor Stats Pro

Commercial License - $97

Non Commercial Use License - $33

Get Visitor Stats

Visitor Stats (Basic Version) is free to members of MT Hacks.

Download Now

Download Now
Downloads: 2100

Membership required, please sign-in or register:

Potential Future Features

Visitor Stats Pro was a much larger effort than I anticipated. As such, there are still a number of interesting features that may be added in the future. Future features will be determining largely by the requests of Visitor Stats Pro license holders. Here are some of the potential features:

  • Stats on a per author basis. If you have a blog with multiple authors, see which authors are generating the most traffic.
  • Drill-down into statistics. View the traffic history for a single visitor or registered commenter, see how they navigate through your site and which pages they viewed.
  • Geographical stats. See what country, region and city your visitors are coming from.
  • Recommended entries based on common viewing stats. For example "people who read this entry also read these entries..."
  • PHP versions of template tags to support MT's dynamic publishing system.
  • And more...

As always, suggestions, comments, and questions are appreciated.

A Note on the Small Stats Graphs

The small stats graphs included with this version of Visitor Stats are called Sparklines and were inspired by the SparkStats plugin for Wordpress. The sparkline graphs used by the Visitor Stats plugin are powered by the sparkline web service provided by bitworking.org. The plugin stores a copy of the image on your blog, and updates the image a maximum of once per hour (note that that stats image only updates when the page is published, either manually or automatically when someone posts a comment, etc.). Credit goes to those sites discussed above for their cool work with Sparklines.

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.

Screencasts

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.

Requirements

  • MT4+

Installation

  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.

Screencast

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.

Requirements

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

Installation

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

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">

Requirements

Installation

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

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.

Template Inheritance is a plugin for Movable Type that enables you to link templates together in a way that one template inherits its template code from another template. One example is when you have two or more blogs in your MT system, and you want to use the same design or template layout for each blog. Using the Template Inheritance plugin, you can effectively use one blog's templates as master templates that control the templates of the other blogs. So if you have 3 blogs on a company site with same look and feel, this can save you a lot of time manually updating the templates of each blog every time you make a change. Another way to think of it is sharing templates between several blogs. You can link all the templates in one blog to another, or selectively choose which templates should be inherited (including template modules).

I have wanted a plugin like this for years, the ability to share template code between multiple blogs. For a long time, MT has included a "Link this template to a file" feature in which you could link a template to an actual file on your server. I used to link multiple templates to the same file, effectively (and indirectly) sharing the template code between different blogs. While this works, it has its problems. At times in the past, there we MT bugs that prevented templates from being updated from the file - but I think those are fixed now. The other main problem is that you have to be very careful when editing a template, remembering that it may be shared with other blogs, etc. The Template Inheritance plugin is an improvement over the file linking method, addressing the key issues with file-based linking.

Features

For any specific template, you can assign another template on the system from which to inherit template code. For example you could decide that you want template "B" to inherits its template code from template "A".

It may be helpful to think of "A" as the parent template and "B" as the "child" template -- the child inherits its template code from its parent. When template becomes linked to parent template, the child's template code will immediately be replaced by the template code of the parent, and will be derive its template code from the parent from that point forward. You won't be able to edit the child template after the link is made (the template code is greyed-out and the field is disabled) -- instead, you will see a link to the parent template, and you can then edit the parent template.

Editing the parent template will automatically update all of its children templates. Of course, you need to rebuild the appropriate pages on each blog for template changes to be reflected on your blogs. You remove remove inheritance (break the link with the parent) at any time. When you remove inheritance from a child template, it becomes independent from that point forward, and you can now customize it independently of the parent template.

Notes:

  • Only system administrators (sometimes called superusers) can create inheritance links.

  • You must enable the plugin for each blog before you can create inheritance links (blogs to have "child" templates need to be enabled, not those containing the "parent" templates)

  • A template cannot be both a child and a parent. If you try to assign inheritance from a template that is a child of another template, it will work -- but the plugin will make the link directly the ultimate parent. This makes it easier to manage, as you won't have to trace template linkages through several generations to find the "master" template.

  • When a parent template is deleted, each of its children immediately become independent (orphaned, if you will).

  • When first assigning inheritance to a template, the child template's code is replaced by that of the new parent. BE CAREFUL, there is no undo, the child's former template code will be gone. Just to be safe, it may be a good idea to back up the old template code beforehand, in case you decide to revert back.

Requirements

  • MT 3.3+

Great for Blog Networks

While Template Inheritance can be used in many different scenarios, it is a great fit for blog networks. Networks of blogs on the same MT system often have similar (or identical) design or template code. Sometimes only certain things are the same, such as a common header / footer, stylesheet, sidebar, advertising blocks, etc. Using this plugin to link up those common template elements, you can save a lot time managing the templates of the network. If you have a blog network and this sounds interested, please contact me. I can help implement this for you, customize the plugin to meet your specific needs, etc.

Instructions

  1. Extract the contents of the zip file and upload the contents of the 'plugins' directory into the 'plugins' directory of your MT installation
  2. Login to MT (or hit Main Menu, if you are already logged in). You should now see and upgrade screen that will install a table for Template Inheritance.
  3. Browse to the blog you want, then go to the plugin settings to enable the plugin.
  4. Browse to the template you want, then click the "Click here to inherit code from another template" link.
  5. Enter the template ID of the desired parent in the prompt box, hit OK.
  6. The template is now linked to the parent. Rebuild to see the results on your site.

Get Template Inheritance

Template Inheritance is free for personal use on up to 3 blogs.

Donations are appreciated:

Download Now

Download Now
Downloads: 171

Membership required, please sign-in or register:

Commercial License (4-10 blogs): $97

Blog Network License (10+ blogs): $249

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

Add Category is a simple MT Plugin that enables you to select multiple entries and add them to one or more categories at the same time. This can be a timesaver if you want to add a bunch of entries to the same category -- using this plugin you can avoid opening up each entry, adding the category, saving the entry, etc.

This screen snap says it all:

Instructions:

  1. Download the zip file and expand it.
  2. Upload the content of the 'plugins' directory into the 'plugins' directory within your MT install.
  3. Go to an Entry Listing screen for the blog you want.
  4. Select one or more entries by checking the boxes on the left-hand side.
  5. Choose "Add to Categories..." from the drop-down box on the top-right of the entry listing.
  6. Enter the names or category IDs of one or more categories. If you enter more that one category, separate each with commas. Then hit the okay button.
  7. Rebuild the entries.

Notes:

  • If you have more than one category with the same name in the same blog (rare, but it does happen), then you should use category ID numbers to make sure the entries get added to the intended category.
  • If an entry is not assigned to any categories, the plugin will assign the first category you specify as the primary category.
  • If you specify a category that does not exist, the plugin will display an error message. You should create the categories first.
  • This plugin cannot be used to change the primary category.
  • This plugin cannot be used to remove categories from entries (perhaps in a future version).

Get Add Category

Add Category is not free, but you can try before you buy. The license cost is only $7.

Download Now

Download Now
Downloads: 238

Membership required, please sign-in or register:

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.

Download Now

Click here to download MT Plugin Network v1.0

Membership required, please sign-in or register:

Instructions

Unzip the PluginNetwork.zip 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.

In the near future, many of the free plugins released by MT Hacks will 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, as I will be posting all future 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 mtpluginnetwork.com.

This plugin enables you to trust commenters on you blog -- without requiring them to login via TypeKey or other authentication service.

The plugin enables you to trust commenters based on a combination of three things:

  1. the commenter's name
  2. the commenter's email address
  3. the IP Address(es) used by the commenter

The last item is important, as it vastly reduced the possibility of "spoofing" -- someone lese posing as the trusted commenter. For each Name/Email combination, you can trust multiple IP Addresses.

How it works

  • You can trust a commenter from a specific IP address with a single click. When viewing the comment in the MT admin interface, click the "Trust this commenter from this IP address" link that appears under "Plugin Actions" below the comment fields.
  • When you trust a commenter in this manner, the plugin will create a commenter record in your database (similar to the way this happens when someone posts a comment using TypeKey). In addition, the commenter is granted permission to post again from the same IP address.
  • If the commenter already exists in your database, their permissions are simply updated to include the new IP address, if necessary.
  • The next time the commenter posts a comment on your blog (from a listed IP address), the plugin will recognize them as trusted. Behind the scenes, a cookie is placed on the commenter's computer (again, very similar to the TypeKey cookie). Furthermore, the comment gets posted in "trusted" status, which means that the junk filters are bypassed for this commenter (for example).
  • The next time the commenter posts a comment, they will not have to enter their name and email address. Once again this is similar to TypeKey, the commenter will be greeted as if they have signed in via TypeKey. (The cookie is used to identify the commenter).
  • When recognized trusted commenters post comments, a green "check mark" icon will appear beside their name (same icon as trusted TypeKey commenters).
  • After a commenter is trusted, he or she will appear in the "Commenters" section of the MT admin interface for that blog, along with the number of comments posted, etc. You can also "untrust" or "ban" these commenters as well.
  • Commenters can continue to sign-in via TypeKey, if desired. When using this plugin, you can accept trusted comments from both types of trusted commenters.

Benefits

This plugin attempt to provide the benefit of Movable Type's trusted commenters feature, without requiring commenters to register and sign-in via TypeKey. While I think TypeKey authentication is a great idea, I have come to learn (from experience) that many people do not want to use it, for reasons that I don't fully understand. As an example, read the comments on this Pharyngula entry, in which the author announces that TypeKey is no longer required.

Another key benefit is the ability to trust commenters so that they will be able to bypass the junk filters. With spam getting worse, many of use (like me) have very aggressive spam filters False positives do happen, and it can be frustrating for commenters when their legit comments get moderated or junked. In this way, Trusted Commenters can act as part of your anti-spam portfolio (effectively a "whitelist" of commenters).

Instructions:

1. Download the plugin and expand the zip file.

2. Upload the "TrustedCommenters" folder to your "plugins" directory within your MT installation.

3. Start trusting commenters from the view/edit comment screen with MT. Click the "Trust this commenter from this IP address" link that appears under "Plugin Actions".

4. (optional) Go to your settings and enable authentication. (Go to Settings>Feeback>Authentication Status). This is not necessary but it will enable the commenter "greeting" and alleviate the need for commenters to enter their name and email address. Alternatively, this can be enabled manually without enabling authentication, as I have done on this site, by ensuring that the proper javascript and CSS elements are present.

Download Trusted Commenters

Non-commercial use - FREE

Commercial use - $97.00

Download Now

TrustedCommenters.zip

Membership required, please sign-in or register:

I have been using Trusted Commenters on Mars Rover Blog and Seinfeld Blog for about a month, and it is going quite well.

As always feedback is appreciated.

Download Now

FormatList v1.4

Membership required, please sign-in or register:

This is a minor update to FormatList that provides no new functionality. Version 1.4 includes updated button images ( and ) that match the new buttons in Movable Type 3.31. (Thank you to demonsurfer for help with these images!)

Requirements: Movable Type 3.3 or higher

For more information about FormatList, click here.

Previous versions of FormatList will not work with Movable Type 3.3 (or later). The new version (1.2) will only work with MT 3.3 or later.

FormatList no longer requires the BigPAPI plugin.

Download Now

FormatListv1.2.zip

Membership required, please sign-in or register:

If you want to use FormatList with MT 3.2, please download:

FormatList1.1forMT3.2.zip

Membership required, please sign-in or register:

FormatList adds list buttons to the toolbar, in the MT admin entry screens. For more information, click here.

Note: with this version, I have not updated the button images to reflect the new sizes that are used by MT 3.3, so you may notice a slight difference in size, compared to the new 3.3 toolbar buttons.

New in version 1.1: I fixed a bug that was preventing the list buttons from working in the "Extended Entry" field. The features remain the same, as described below.

FormatList is a plugin for Movable Type that makes it easy to create bulleted or numbered lists when creating or editing entries.

FormatList adds the following two button to the formatting toolbar that appears just above the "Entry Body" and "Extended Entry" fields:

To create a bulleted list:

  • Enter the list of items, hitting enter after each line (you can leave blank lines in between list items if desired)
  • Select (highlight) the list
  • Click the button

To create a numbered list:

  1. Enter the list of items, hitting enter after each line (you can leave blank lines in between list items if desired)
  2. Select (highlight) the list
  3. Click the button

Requirements:

  • BigPAPI Plugin (For convenience, I have included this plugin in the FormatList download) (more about BigPAPI)
  • Movable Type 3.16 and higher (I think....currently tested with MT 3.2 only)

Download Now

New in version 1.1: I fixed a bug that was preventing the list buttons from working in the "Extended Entry" field. The features remain the same, as described below.

FormatList is a plugin for Movable Type that makes it easy to create bulleted or numbered lists when creating or editing entries.

FormatList adds the following two button to the formatting toolbar that appears just above the "Entry Body" and "Extended Entry" fields:

To create a bulleted list:

  • Enter the list of items, hitting enter after each line (you can leave blank lines in between list items if desired)
  • Select (highlight) the list
  • Click the button

To create a numbered list:

  1. Enter the list of items, hitting enter after each line (you can leave blank lines in between list items if desired)
  2. Select (highlight) the list
  3. Click the button

Requirements:

  • BigPAPI Plugin (For convenience, I have included this plugin in the FormatList download) (more about BigPAPI)
  • Movable Type 3.16 and higher (I think....currently tested with MT 3.2 only)

Download Now

FormatList.zip

Installation Instructions:

  1. Download and expand the zip file
  2. Upload the contents of the 'plugins' folder to the 'plugins' folder of you MT installation (there are two files, FormatList.pl and BigPAPI.pl)
  3. Upload the contents of the' images' folder to the 'images' folder within the 'mt-static' folder. This is the location of the images and docs for MT, for most people it will likely be in '/mt-static/images' (outside your cgi-bin).

I hope others find this as helpful as I do. I created this plugin becuase it was quite tedious to create list manually, and this plugin makes it really quick and easy.

Note: As you would expect, each of the lists above was created using FormatList ;)

FormatList is a plugin for Movable Type that makes it easy to create bulleted or numbered lists when creating or editing entries.

FormatList adds the following two button to the formatting toolbar that appears just above the "Entry Body" and "Extended Entry" fields:

To create a bulleted list:

  • Enter the list of items, hitting enter after each line (you can leave blank lines in between list items if desired)
  • Select (highlight) the list
  • Click the button

To create a numbered list:

  1. Enter the list of items, hitting enter after each line (you can leave blank lines in between list items if desired)
  2. Select (highlight) the list
  3. Click the button

Requirements:

  • BigPAPI Plugin (For convenience, I have included this plugin in the FormatList download) (more about BigPAPI)
  • Movable Type 3.16 and higher (I think....currently tested with MT 3.2 only)

Download Now

FormatList.zip

Membership required, please sign-in or register:

Installation Instructions:

  1. Download and expand the zip file
  2. Upload the contents of the 'plugins' folder to the 'plugins' folder of you MT installation (there are two files, FormatList.pl and BigPAPI.pl)
  3. Upload the contents of the' images' folder to the 'images' folder within the 'mt-static' folder. This is the location of the images and docs for MT, for most people it will likely be in '/mt-static/images' (outside your cgi-bin).

I hope others find this as helpful as I do. I created this plugin becuase it was quite tedious to create list manually, and this plugin makes it really quick and easy.

Note: As you would expect, each of the lists above was created using FormatList ;)