Help us test the release candidate for the upcoming 4.0.8 release
The final, official 4.0.8 release is scheduled for mid-January 2009, unless unexpected problems or errors arise.
We’re looking for people who like to help us make sure that we didn’t miss any regressions or introduce new bugs. We would like to get feedback on clean installations and updates from older versions.
Make sure that if you use this release candidate, you also update to the final 4.0.8 version when it is released.
Download
Discuss
Post your feedback in this forum thread.
Notes
The included HISTORY.txt file already lists most of the important changes since 4.0.7. If we missed something, let us know.
The download advertises itself as 4.0.7 (r3060) in diagnostics, because we haven’t yet bumped the version number.
Posted 10 days ago by Robert Wetzlmayr
Ladies and gentlemen, please welcome on stage: Textpattern 4.0.7!
We are happy to announce that Textpattern 4.0.7 is finally ready for public consumption.
During long and – sometimes – laborious months since the last release in February, we added new features and enhanced existing capabilities, but nevertheless we expect upgrades from any previous version to be seamless and smooth. As usual, the download package contains a README.txt file which outlines the simple upgrade procedure.
Changes are numerous, so let’s focus on a few highlights here:
Enhancements
- Unlimited nested template tags, and tags as attributes to other tags have made it into the Textpattern core as part of the new tag parser.
- Many of the list-producing tags like
<txp:section_list>,<txp:article>, or<txp:recent_comments>accept a form or use any contained markup as a stencil for their output. - More consistent layout across many admin side pages.
- As some plugins depend on the sequence of their execution with respect to all other plugins, plugin authors and site administrators can assign a load order to determine which plugins run first.
New features
- WYSIWYG preview for all articles, even those in “draft” or “hidden” state.
- Textpattern 4.0.7 comes with an XML-RPC server out of the box, which replaces the separate download needed previously. There’s a bunch of desktop blogging client software which use this as a socket to tap into the Textpattern backend.
- Articles can be tagged with an optional expiry timestamp, so they’d either vanish from the public site completely, or transform their appearance once a future date has passed by.
- The communication channel from Textpattern to the database server can employ optional SSL encryption.
Oh, and there were some bug fixes, too.
The commit log keeps all the details if you are inclined to read some PHP gibberish. A bulleted list in HISTORY.txt has the definite record of all noteworthy changes, so we refrain from repeating every single item here…
Head over to the download page to grasp your own copy, and join the discussion at the forum. Many thanks to all who contributed one way or the other!
Posted 39 days ago by Robert Wetzlmayr · Comment [59]
Help us test the release candidate for the upcoming 4.0.7 release
The final, official 4.0.7 release is scheduled for next week, unless unexpected problems or errors arise.
We’re looking for people who like to help us make sure that we didn’t miss any regressions or introduce new bugs. We would like to get feedback on clean installations and updates from older versions.
Make sure that if you use this release candidate, you also update to the final 4.0.7 version when it is released.
Download
Discuss
Post your feedback in this forum thread.
Notes
The included HISTORY.txt file already lists most of the important changes since 4.0.6. If we missed something, let us know.
The download advertises itself as 4.0.6 (r29xx) in diagnostics, because we haven’t yet bumped the version number.
This checklist covers some of the larger changes to pay attention to (You do not need to submit your results, just use it as a guideline).
Posted 48 days ago by Robert Wetzlmayr
So, you’d like to stick a “Best Before” label on those articles?
As almost nothing is made to last forever, articles may carry an expiry date/time in the upcoming Textpattern 4.0.7 release.
Various hacks and plugins have catered for this requirement in the past, with each of those having their own issues: They’d either hide articles in webfeeds up to the expiry date or on the contrary publish expired articles through feeds even past the expiry date, or mangle the article’s data itself.
With Textpattern 4.0.7, an additional timestamp designates an article’s expected shelf life:

Related tags
A few new template tags will complement this feature:
<txp:expires />mimicks the behaviour and attribute set of<txp:posted /><txp:if_expires>...<txp:else />...</txp:if_expires>: Checks for the mere presence of an expiry date.<txp:if_expired>...<txp:else />...</txp:if_expired>: Checks if the current article is past its expiry date.
Preferences
One additional preference setting dubbed “Publish expired articles” changes the way how Textpattern handles expired articles.
If set to “Yes”, articles will stay visible to the public even after their expiry time has elapsed. At first glance, this might look a bit nonsensical, but this is where <txp:if_expired> has its chance to chime in and render a slice of conditional markup for past gigs, training courses, announcements, whatever – without ripping out precious pages from the search engines’ indexes.
Setting “Publish expired articles” to “No” results in a snippy ‘410 Gone’ response when an expired article is requested. As for all of Textpattern’s 4xx responses, you can craft a page template named ‘error_410’ to customize the looks of that response page.
Posted 57 days ago by Robert Wetzlmayr · Comment [19]
Spoilt for CMS Choice
Mike from “Capsize Designs” shares his experiences from choosing a content management system for their most recent project. Capsize Designs chose Textpattern from a short-list containing Drupal, ExpressionEngine, SilverStripe, Textpattern, and WordPress – and this is why:
It had the simplicity we wanted, the templating engine of ExpressionEngine (basically), the CMS tools we needed, the flexibility everyone wants, it was perfect. And unlike SilverStripe, it worked.
BTW: Has CamelCasing ProductNames been “The New Black” of the pre-2000 era?
Posted 139 days ago by Robert Wetzlmayr · Comment [9]
Jon Hicks ponders on Expression Engine vs Textpattern
Jon Hicks, renowned connoisseur of cheese and creator of fine visuals, shares his thoughts on content management systems and weighs the pros and cons of Expression Engine vs Textpattern:
The upshot is, that for a lot of client sites, EE is wonderful (if you can put up with the admin side) – especially sites that need members, forums and all that jazz. The thing is, if a site doesn’t need those things, it’s less pain and more pleasure to use TXP.
If you happen to crave for the details which cause this summary verdict, hop over to Jon’s journal.
Posted 194 days ago by Robert Wetzlmayr · Comment [2]
Textpattern 4.0.7 Outlook: Dissecting the New Page Template
In the upcoming Textpattern 4.0.7 release, the default page template will contain a sample two-level navigation menu with the first level built by a list of sections while the second level menu is run by a list of article titles within the active section.
This is how the snippet looks like:
<txp:section_list default_title='<txp:text item="home" />' include_default="1" wraptag="ul" break="li">
<txp:if_section name='<txp:section />'>»</txp:if_section>
<txp:section link="1" title="1" />
<txp:if_section name='<txp:section />'>
<txp:article_custom section='<txp:section />' wraptag="ul" break="li">
<txp:if_article_id>›</txp:if_article_id>
<txp:permlink><txp:title /></txp:permlink>
</txp:article_custom>
</txp:if_section>
</txp:section_list>
As most of the stock pages’ code, this isn’t meant to be of utter beauty or a means to all ends, but rather as a live example of how one could take advantage of a few tags’ capabilities.
Dissecting the menu shows the application of features new to Textpattern 4.0.7:
- Container capabilities for a wider range of tags
- Tags as attributes
- Context sensitive behaviour of the
<txp:section />tag
Container capabilities
With Textpattern 4.0.7, most of the intrinsic tags which produce list of site elements like articles, categories, links, or sections can either act as a container tag or receive a form attribute as a boilerplate for a single item’s markup:
<txp:article />,<txp:article_custom /><txp:section_list /><txp:recent_comments />- …and some more. In the final release,
HISTORY.txtwill contain a definite list of all affected tags.
The menu’s first level uses <txp:section_list>...</txp:section_list> to produce an UL element with links to all listed sections.
Context sensitivity
The next line compares the current section name with the section from the page’s URL to conditionally place a little indicator arrow next to the active link:
<txp:if_section name='<txp:section />'>»</txp:if_section>
Single quotes around <txp:section /> are used to force attribute parsing and thus feed the actual section name into <txp:if_section>.
Now we finally link to the menu item:
<txp:section link="1" title="1" />
NB: <txp:section /> is part of a section list, so context sensitivity applies here as well, and the menu link will point to the list’s current section.
Ubiquitous break and wraptag attributes
Enter level two.
The second menu level applies the principles of the first level on an article list built by <txp:article_custom> with its newly acquired container tag powers. <txp:if_article_id> checks for the “current” article match and prepends a tiny angle to indicate the active choice.
<txp:if_section name='<txp:section />'>
<txp:article_custom section='<txp:section />' wraptag="ul" break="li">
<txp:if_article_id>›</txp:if_article_id>
<txp:permlink><txp:title /></txp:permlink>
</txp:article_custom>
</txp:if_section>
Benefits and disadvantages
As these new opportunities pile up, so do performance considerations.
Inline markup embraced by container tags is technically equivalent to a separate form passed into a tag as an attribute, and all upgraded tags will accept both methods for specifying their output markup.
During laboratory tests, Ruud found no significant differences between both methods: The performance cost of loading a form is approximately equivalent to the additional parsing time required for inline markup, so you can adopt the most appropriate method and needn’t care about speed implications.
Posted 196 days ago by Robert Wetzlmayr
Tag parser - part 2: speed
Most, if not all changes in the parser affect its speed. Generally speaking, more features means lower speed, but optimizing other parts of the parser can compensate this. In this second article about the new parser in TXP 4.0.7, I’ll discuss the various changes to the parser, the impact they have on parsing speed and how you can optimize templates for speed.
Posted 225 days ago by Ruud van Melick
Tag parser - part 1: new features
For those that just went… “Tag what?!”, the tag parser is the part of TXP that interprets the TXP tags in your carefully crafted forms and pages.
This is the first of two articles discussing the parser changes in the upcoming TXP 4.0.7 version (no, not next week/month). The second article will discuss parsing speed.
Posted 225 days ago by Ruud van Melick
Lessons learnt: When choosing repository names, it’s all about branding
There’s one thing that any software developer, experienced or noob, would tell you: The real difficulties in software design aren’t buried deeply inside an Algorithm Bible/Quran/Torah/{insert your manifest of choice here}.
The really hard part is “How should I name this thing?”
So, when we moved our repository over to the Google server farms, we chose the most appropriate name that was available then. The other name, as much as it would have fit our project better, was taken, unsurprisingly.
But, to our delight, the owner of textpattern.googlecode.com noticed this quirks within days and invited us there. And so the Textpattern code repository had to move once again. Branding, you know?
Sorry for all the inconvenience. Really. And thanks to Stallon Selvan for transferring this spot to us.
Posted 230 days ago by Robert Wetzlmayr
Older ·
