10 August 2022
Textpattern version 4.8.8 is now available (security release).
Upgrading to Textpattern 4.8.8
Textpattern 4.8.8 can be upgraded to (or installed) using any of Installatron's products. Use Installatron's optional Automatic Update feature to automatically apply Textpattern updates as new versions are released, or use Installatron's Clone feature to duplicate an existing Textpattern install to test the 4.8.8 upgrade prior to applying it live. Get started managing your Textpattern installations with Installatron
What's New in Textpattern 4.8.8
- Maintenance release with support for PHP 8.1, security enhancements, general improvements and bug fixes.
- Security: Fix reported cross-site scripting issue relating to article preview CSRF token (many thanks, Paul Ritchie at Pentest Limited).
- Fixed: More robust numeric searches.
- Fixed: Improved query efficiency of category operations.
- Fixed: Required parameters after optional in tag builder (thanks, phiw13).
- Fixed: Admin-side pagination when sorting by non-unique values.
- Added: PHP 8.1 support.
- Added: Natural search mode.
- Added: Random form selection.
- Added: Support for AVIF image format, on PHP 8.1 or higher.
- Added: Global 'limit', 'offset' and 'sort' attributes.
- Added: 'url_title' attribute to <txp:article[_custom] />.
- Added: 'range' attribute to <txp:article_image />.
- Added: 'date' and 'time' attributes to <txp:if_expired />.
- Added: 'calendar' attribute to <txp:posted /> and similar tags.
- Added: Substring extraction via 'escape' attribute.
- Added: <txp:items_count /> tag.
- Added: Expanded conditional 'match' attribute with comparison operators.
- Added: 'UTC' is now a permitted time zone.
- Added: Custom date formats.
- Changed: <txp:category_list /> with 'children' >1 attribute behaviour.
- Changed: Global 'escape' attribute operates at the items level in lists.
- Changed: Multi-site plugins directory defaults to site/admin/plugins.
- Accessibility: Additional 'aria-label' attributes for some internal links.
- Internal: Removed FOUND_ROWS() which is deprecated in MySQL 8.0.17.
- Internal: Prefer is_readable() and is_file() to file_exists().
- Developer: Added plugin lifecycle events 'upgraded' and 'downgraded'.
- Developer: Export new article IDs on duplicate.
- PrismJS 1.26.0.