Thoughts on branding, design, writing and life by Kevin Potts. Established 2003.

Textpattern 4.0.7 is Awesome

The recently released Textpattern 4.0.7 is a monster, game-changing upgrade, introducing several core new features that exponentially expand the power of the system. Here are some of the best bits.

Let’s get right to the point. Textpattern 4.0.7 kicks ass — more ass than any version in the 4.0.x series. The improvements are lengthy and substantial. When version 4 was initially released, I wrote about how it was finally suitable for client projects, and I meant it — the interface and featureset had evolved to a point where I could comfortably transition a website into the hands of a client. But that was for basic websites; usually little more than a one- or two-level navigation, a few bells and whistles, and the occasional inline PHP to duct tape some code together.

This release changes the game. After a few iterative releases that gave us some additional tags and some noodling under the hood, 4.0.7 is the platform on which I can confidently build complex websites, because so much work has gone into improving the engines that run it. For a long time, I felt as if I were driving a Nissan Sentra on the autobahn — sure it can keep up, but only at painful RPMs and funny smells coming from the engine. Textpattern 4.0.7 feels like a brand new Jaguar with a V12. Let’s review some of the juicy bits that make my motor purr:

  • The new tag parsing engine may be the crown jewel. Now there is unlimited capacity for nesting conditionals, and Textpattern tags can now use other tags as attribute values. This is huge. A game changer. It is easier than ever to use conditionals to display precisely the correct template based articles, sections and categories.
  • The <txp:variable /> tag is a good addition. This allows you to define small variables in a template, and then call their values later in a form or article. Lately I have been adding all of my variables to a single form called “variables”, and then calling that form in the beginning of the page template, with <txp:output_form form="variables" />.
  • There are a few new tags (such as txp:if_keywords>) and a few new enhancements to existing tags. One of my favorite upgrades is the ability to define the output form for the <txp:section_list /> tag, which serves up all kinds of options in rendering navigation structures. I wrote about one tactic for creating a section and article navigation on TXP Tips using this new feature.
  • Articles can now have an expiration date. This is especially valuable for event-based content that is only relevant for a short period of time.
  • Although the actual native functionality of the search tag remains unchanged, there has been significant tinkering under the hood, and the new plugin wet_haystack allows for searching inside all content associated with an article — not just the body and title. This is a massive improvement that, to this point, has gone largely unsung.

Everyone who reads this website knows I am a big fan doe-eyed fanboy of Textpattern, the ultimate light-weight CMS. Part of this comes from the fact that I’ve used it for years, but most of that comes from having tried comparable software (ExpressionEngine, Wordpress) as well as some monster systems (working on SDL Tridion right now), and everytime I come back to TXP, a dozen roses in one hand, an “I’m sorry” card in the other, apologizing for ever flirting with those other systems.

, , ,

commentary + criticism


wrote the following on Wednesday December 24, 2008

Nice article Kevin. I’d be interested to hear how you use the @variable@ tag for later output. Textpattern is the best!


wrote the following on Wednesday December 24, 2008

Nice words!

Long long time ago, I’ve also flirted with the beast I already was in love with TXP.

There is a little mistake:

the ability to define the output form for the txp:section tag,

You mean the txp:section_list tag.

So far, this has been the best TXP update ever. And the future looks bright too.


wrote the following on Wednesday December 24, 2008

@ Jonathan — you may want to check out the article Use of new tag if_variable to replace chh_if_data for an example of using the variable tag.

@ Maniquí — Good catch. Fixed.


wrote the following on Thursday December 25, 2008

Hi Kevin – thanks for the article link, but I wrote the article..!!

What interests me is your own usage with output forms. Looking to learn other methods that might be different from my own, and I am just getting started with the @variable@ tag…


wrote the following on Friday January 2, 2009

Jonathan —

Sorry I did not make the connection. My bad. My usage is not that complicated — but really varied, so it’s hard to give a concise answer. Any specific tactics or instances for which you’re looking for more detail?


wrote the following on Saturday January 3, 2009

Not really – just looking at new ways of doing things, and of course any tips that I can add to TXP Tips.

BTW – which plugin are you using for live comment preview while typing the comment? Its very nice.


wrote the following on Monday January 5, 2009

Wow, this is great news! I was about ready to give up on TXP, like breaking up with your first love.. So happy I don’t have to :)


wrote the following on Thursday January 8, 2009

Jonathan — nhn_livecommentpreview drives the live comment feedback.

David Simmer

wrote the following on Saturday January 10, 2009

Agreed – the site I just finished made extensive use of nested conditionals, tags as attribute values, and expiration dates. 4.0.7 was a perfect pre-Christmas present.


wrote the following on Thursday January 22, 2009

is nhn_livecommentpreview work in 4.0.7 ?

thanks ??