Textpattern is a free and open source content management system (CMS) that is powerful and easy to use. Its unique framework and workflow makes it easy for designers or software developers to quickly build dynamic, database driven websites.
Although Textpattern’s default installation provides a lot of useful features, it doesn’t try to be everything for everybody. Instead, it has an intelligent PHP based plugin system that allows programmers to write their own add-on code to enhance its functionality.
After using Textpattern extensively for personal and client websites, I was able to create the essential plugin list for Textpattern. This list contains what I consider to be the most important and useful third-party add-ons that don’t come with the default installation.
1. zem_contact_reborn — Form Emailer Plugin for Textpattern
For some reason, Textpattern doesn’t ship with a good form mailer. Thankfully, there’s zem_contact_reborn. It’s a feature rich form mailer that provides the following options:
- Arbitrary text fields can be specified, with min/max/required settings for validation.
- Email address validation, including a check for a valid MX record (Unix only).
- Safe escaping of input data.
- UTF-8 safe.
- Accessible form layout, including <label>, <legend> and <fieldset> tags.
- Various classes and ids to allow easy styling of all parts of the form.
- A separate language plug-in to enable easy localization.
- Spam prevention API (used by Tranquillo’s pap_contact_cleaner plugin).
2. SimplePie RSS Parser Plugin for Textpattern
Have you ever wanted to display a list of your most recently dugg websites from Digg? How about a list of recently listened to songs from Last.fm? The SimplePie Plugin for Textpattern makes parsing RSS feeds incredibly simple. Not only that, it caches the results to ensure your website remains snappy when people visit it. Its main features include:
- RSS 0.9x, 1.0, and 2.0
- Atom 0.3 and Atom 1.0
- A handful of namespaces including Dublin Core
- Function names that focus on the data you want to grab, regardless of the feed type
- Serialized caching system
- One-click subscribing to several online aggregators
- One-click bookmarking to several social bookmarking sites
- Embedded (or non-embedded — your choice) feed enclosures (Podcasting, Videocasting)
- Ultra-liberal Feed Locator (Auto-Discovery on crack)
- Image hotlink bypassing (just like the desktop aggregators)
- Support for 98 character sets
- Support for PHP 4.3.0+, 5.0.3+
- Reasonable support for non-well-formed feeds
- Automatically strips potentially dangerous tags and attributes
- Limited support for ad stripping from feeds.
3. hak_tinymce — tinyMCE Plugin for Textpattern
The default rich text editor (RTE) for textpattern isn’t so rich. It uses Textile, which is loved by some and hated by many. Since Textile lacks an intuitive interface — the user has to learn Textile markup — it can be difficult for many users to get used to. Fortunately, there’s a tinyMCE plugin called hak_tinymce.
hak_tinymce provides a true RTE that includes support for pasting from Microsoft Word and the ability to insert tables or raw HTML. Even better, it includes a feature that is usually a fee based add-on for tinyMCE — an insert/edit image tool that works perfectly with Textpattern.
4. md_versions — Article Version Control Plugin for Textpattern
Textpattern is a multiuser (multi-author) CMS. It allows the admin to create multiple users for the content of a website. One of the biggest problems with a multiuser CMS is that eventually one of the users will overwrite content they shouldn’t have. And in many cases, a user may edit and save changes to a page, only to regret the changes they made.
md_versions solves the dilemma of a multiuser environment. md_versions allows users to save (backup) multiple versions of any article. If the user ever needs to revert to an older version, they simply search for it and restore it.
5. asy_sitemap — Google Sitemap Plugin for Textpattern
As any good Webmaster knows, having a Google Sitemap is a prudent step to take for any website that they’re managing. A Google Sitemap allows Google to be aware of pages on a website that they may have missed during their bot crawl. asy_sitemap automates the process of creating a Google Sitemap. You can set the plugin to automatically update the sitemap anytime an article is edited and you can make the sitemap compressed with gzip to conserve bandwidth.
6. stw_category_tree — Category Hierarchy Plugin for Textpattern
In Textpattern, categories lack a very important feature, hierarchy. Hierarchy was left out on purpose, mostly for philosophical reasons by the creators of Textpattern. However, in some cases, that philosophical approach ends up limiting how a Web designer would like to display categories (usually for navigation menus).
stw_category_tree displays category links in a hierarchical structure, along with an optional content count. It also includes a few useful hiding and showing options.
7. etz_crumbs — Breadcrumb Navigation Plugin for Textpattern
Similar to categories, Textpattern’s breadcrumb function lacks some features and controls that Web designers desire. etz_crumbs is a navigational aid for bread crumbs and it allows you to control the following functionality:
- Show an item to “home”
- Display current section
- Use category 1 or 2 for crumbs
- Show the article title in the breadcrumbs
- Custom title for link to home
- Separator between sections and categories, etc.
- Expand nested categories
8. sgb_url_handler — Custom URL Scheme Plugin for Textpattern
One of my favorite things about Textpattern is how it handles URLs. In general, they’re clean and SEO friendly if you set them up correctly in the Preferences. However, in some cases, Textpattern can make it difficult to create the URL scheme that you want. sgb_url_handler offers a plethora of URL options.
It supports the following formats:
- example.com/year/month/day/title (although this appears to be broken in RC3)
Additionally, this plugin supports the following trigger words: