Team Textpattern is pleased to announce the release of Textpattern 4.9.0, available for immediate download.
Overview
Textpattern 4.9.0 is a feature release with support for PHP 8.5 & MySQL 8.4, new features, security enhancements, improvements and bug fixes. In semantic versioning terms, Textpattern 4.9.0 is a minor release; in Textpattern terms we consider this a ‘big’ release.
As with all Textpattern upgrades, please refer to the current Textpattern system requirements and ensure you have known-good backups of your site files and database, including all uploaded content such as images & files. Before you make any changes, please refer to the accompanying release notes in HISTORY.txt to ensure you understand what has changed in this release, along with any releases that may have been skipped. You can check your current Textpattern version from the bottom of any page on the admin-side.
Thank you to everyone who contributed to this release with reporting & resolving bugs, providing & improving language translations and overall improvements to the Textpattern ecosystem. We’re grateful to all contributors offering us their expertise, time, attention, words, donations, signal boosting, evangelism, cheerleading and all other activities that fuel our project.
Textpattern’s infrastructure and continued development is kindly supported by DigitalOcean, 1Password and BrowserStack. We are grateful for their ongoing involvement & support for Textpattern, and our global community of authors, publishers, designers and administrators. Thank you!
There is no spyware, adware, user tracking or other junk in Textpattern. We work hard to keep Textpattern fast, nimble, secure and ready for pretty much anything you can throw at it. You can show your appreciation by sponsoring Textpattern on GitHub or supporting Textpattern on Open Collective. Alternatively, you can donate to Team Textpattern with PayPal.
We have a friendly forum for a Textpattern sites showcase – tell us what you’ve made with Textpattern, we’d love to hear from you. Even a ‘hello!’ or ‘thanks!’ helps us to gauge how far Textpattern has travelled, so don’t be a stranger.
System requirements
Textpattern 4.9 requires a minimum of PHP 5.6 as part of the system requirements, though using a vendor-supported PHP version is highly recommended. There are notable performance gains with modern PHP versions, as well as security considerations.
Download Textpattern 4.9.0
You can download Textpattern 4.9.0 from textpattern.com or GitHub. Both locations provide the same compressed archive files, along with checksums for validating your download.
Textpattern 4.9.0 is available as a .zip archive intended for single-site instances. Most Textpattern administrators will find this archive format appropriate for their needs.
Textpattern administrators wishing to use Textpattern’s multi-site capabilities or having a preference for a UNIX/Linux-centric archive format can download either the .tar.gz or .tar.xz archive as they include the necessary extra multi-site support files and symbolic links.
From Textpattern 4.9.0, we offer a .tar.xz archive for further byte savings. The XZ compression format’s storage algorithm provides a considerably smaller download than the .tar.gz archive. The unpacked contents of the .tar.xz archive are identical to the .tar.gz archive’s unpacked contents.
From textpattern.com
You can download Textpattern 4.9.0 from textpattern.com using the following links,
File download
File download
File download
From GitHub
Install
Please refer to the Textpattern INSTALL.txt for a comprehensive walkthrough. This file is included in the Textpattern archive and linked here for your convenience.
Upgrade
We have a forum thread dedicated to Textpattern 4.9.0 feedback. We gather field reports from fellow Textpattern administrators and users that may assist or guide you with upgrading.
Please refer to the Textpattern UPGRADE.txt for the upgrade procedure. This file is included in the Textpattern archive and linked here for your convenience.
As with any software update, please ensure you verify working backups of Textpattern sites you are upgrading before undertaking any modifications. This includes the Textpattern database and files, plus any file and/or image uploads.
The vast majority of Textpattern upgrades are smooth sailing and occur without incident, but on the rare occasion something does go astray it’s preferable to safely restore the known-good version from your full site backup and troubleshoot any issues while your site continues to be available on the prior version.
What’s new in Textpattern 4.9.0?
We have made more than 2,000 changes to the Textpattern core codebase since the release of Textpattern 4.8.8 in 2022. This represents a considerable amount of time spent & care taken to ensure our CMS thrives on new releases of MySQL & PHP, as well as maintaining support for older MySQL & PHP releases.
We have paid particular attention to ensure Textpattern’s compatibility with the recently-released PHP 8.5.0, as well as previous PHP releases made after the release of Textpattern 4.8.8 (i.e. PHP 8.4 & PHP 8.3).
We are confident that Textpattern works well on modern MySQL & PHP, and we will continue to work towards patch releases of Textpattern 4.9 to provide compatibility with PHP’s annual release cadence and MySQL’s next Long Term Support (LTS) release scheduled for mid-2026.
The Textpattern HISTORY.txt outlines changes for this and all previous Textpattern releases, along with their respective release dates. We recommend you read the list of changes to understand how this may affect your current sites, especially if you’re upgrading from older versions. Please note that while upgrades from very old releases of Textpattern are possible, you may need to perform a multi-stage upgrade.
If you require clarification on any aspect of the release notes, we recommend you seek advice before starting a site upgrade. The Textpattern support forum is an excellent place to start, and the Textpattern user documentation provides examples, explanations and background information.
The following lists are cherry-picked items from the @HISTORY.txt@ to provide an overview for interested parties.
Headlines
- Feature release with support for PHP 8.5, security and functionality enhancements, general improvements, bug fixes.
- Security: Fix reported cross-site scripting issue relating to article preview CSRF token (many thanks, Paul Ritchie at Pentest Limited).
- Mail: Support for SMTP for sending emails via third-party systems to improve deliverability. Industry-standard PHPMailer also available internally.
- Plugins: Full plugin creation and editing now available, including pophelp support. Plugins can be updated directly from the admin panel when new versions are available from plugins.textpattern.com. Zip, Template (.php), and .txt plugin types are supported, with improvements in Textpack handling, and verification to prevent tampering during installation.
- Sandboxed article previews: Write panel offers previews for each field or the whole article, with or without tag parsing. Either snapshot or continuous (live) previews are available.
- Dynamic thumbnails: Only display images at sizes you need by using a
width,heightorcropattribute in image/thumbnail tags to securely render an image at that resolution, and cache it for future use. Dynamic admin-side thumbnails are also supported, with dimensions governed by Admin-Theme Preferences. Supports most modern image formats, including SVG. - Pending articles can now be display on sites to offer collaborative workflows.
- Themes are more self-contained and can include Textpacks and Preferences, as well as their own checksums.
Admin-side
- ‘Sticky’ Save buttons on all admin panels.
- Panel upgrades to expose additional info (image and file sizes, dates, etc) and to permit individual asset deletion.
- Pre-fight Diagnostics now collapses if you’ve read it, and reopens automatically if something changes.
- Language panel improvements, including In-use languages cannot be deleted.
- New Mail and Admin Theme prefs areas. A few new preferences scattered throughout.
Tags
<txp:date />tag.<txp:if_article_status />tag.<txp:if_items_count />tag.- Added
parentattribute to<txp:category />. - Added
inlinevalue toformatattribute of<txp:css />. - Added
aliasattribute to<txp:evaluate />. - Ability to serve files via
typeattribute to<txp:file_download />. - Added
excludeattribute to<txp:file_download_list />and<txp:linklist />. - Site production status values to
processattribute of<txp:hide />. - Added
levelattribute to<txp:if_category />. - Added
match,separatorattribute capability to<txp:if_yield />. - Added
exclude,monthandtimeattributes to<txp:images />. - Added
langattribute to<txp:page_url />. - Added
targetattribute to<txp:popup />. - Added
filterattribute to<txp:section_list />and<txp:if_section />. - Added global
variableattribute. - Added global
offsetattribute can be set by URL parameters. - Tag-related: Self-closing tag output for html5 doctype to silence validators.
Plugins
- Plugins import Textpack strings correctly.
- Compiled plugins can be uploaded via ‘Browse…’ feature.
- Compatible plugin upgrades directly from the Plugins panel.
- Create and install new plugins directly from the Plugins panel.
- Plugin multi-edit option: revert to last installed code content.
- All plugin metadata exposed in the Plugin Edit panel.
Internal tweaks
- Field size increases (up to 16MB Page templates, 1023-character descriptions) and checks.
- Content dates are now virtually limitless, extending prior to (as far back as 1 AD) and beyond the UNIX epochs.
- Many system-wide constants are overridable from config.php (a.k.a. “administrator preferences”).
- RPC functionality improvements and metaWeblog.newMediaObject support.
Developers
- Concurrent logins for testing.
- Panel-level callbacks on the Users, Articles and Images panels, allowing for finer-grained and deeper customisation.
- New UI library, written from the ground up.
- Many new callbacks and hook points, including new lifecycle ‘loaded’ step.
Feedback
We are particularly interested in feedback on these areas:
- User experience with dynamic thumbnails.
- User experience with Textpattern on PHP 8.5 compared to previous versions of PHP.
- Compatibility and usability with end-of-life’d PHP releases, factoring in the Textpattern system requirements.
- Usability of the new tag attributes (refer to the Textpattern HISTORY.txt for details).
- Any unexpected issues appearing in the front-side of your Textpattern sites.
- Any unexpected issues shown in admin-side Diagnostics.
We have a dedicated support forum thread for Textpattern 4.9.0 feedback where Textpattern users, experts & developers gather and address feedback. We are grateful for all feedback, even a short confirmation that your upgrade(s) completed as expected is appreciated.
We maintain Textpattern issues at GitHub if you would like further insight into where we’re heading with this release and future work.
Further notes
If you find anything not working correctly or wish to propose improvements, please file a report on GitHub. There are templates for feature requests and bug reports.
Textpattern Demo
The Textpattern demo has been updated to offer Textpattern test drives. The demo sites are rebuilt every few hours using the Textpattern auto-installer.
We hope you enjoy this release and it serves you, your sites and clients well!
Thank you for your interest in Textpattern!
