A year to the day since the arrival of Textpattern 4.7.3, Team Textpattern is proud to announce the release of Textpattern CMS 4.8.0, available for immediate download.

Although Textpattern 4.8.0 is a minor release in terms of its version number, over 800 changes have been made to Textpattern’s code to add new functionality, enhance existing features, resolve some issues from previous Textpattern releases and lay more foundations for extending the capabilities of Textpattern in future.

Textpattern’s no-nonsense tag system has received some impressive improvements and new arrivals. We’ll tell you more about these changes in blog posts, including examples of how our users are harnessing the power of Textpattern to achieve amazing things, so please stay tuned.

An integral part of the Textpattern ecosystem is our user community. The value and strength of developers, administrators, designers, and end users working together to build on Textpattern is incalculable. Whether it’s help with troubleshooting, advice & feedback, translating, or elegant code poetry that deserves to be shared, it’s the power of community behind Textpattern that drives it forward.

Thank you to everyone who contributed to this release with code for new functionality, reporting & resolving bugs, providing & improving language translations and overall improvements to the code, documentation and the wealth of information in the Textpattern ecosystem. We’re grateful to everyone who continues to help with their expertise, time, attention, words, signal boosting, evangelism and other activities.

Download

You can download Textpattern from textpattern.com using the following links, or from the GitHub repository directly. Please take a moment to ‘star’ Textpattern’s repositories on GitHub.

Whether you download from textpattern.com or GitHub, the respective file contents are identical. To take full advantage of Textpattern’s multi-site capabilities, please download the .tar.gz archive as it includes the multi-site scaffold.

File download

textpattern-4.8.0.zip

Zip format.
File size 1868 kB | Created | SHA256 checksum a1326a8127c9d357f4605a38c8b43a5fbf828231db67f245cc00c95d73dda279
File download

textpattern-4.8.0.tar.gz

Gzip format.
File size 1603 kB | Created | SHA256 checksum 3049b64f5e49401b10059690ed67e6f59a48ebb4bfe23648f5e2a6f70895378c

The Textpattern demo has been updated to offer Textpattern 4.8.0 test drives in complete safety. The demo sites are rebuilt every few hours using the Textpattern auto-installer.

System requirements

Textpattern 4.8 requires a minimum of PHP 5.5 as part of the system requirements, though a vendor-supported PHP version is highly recommended (PHP 7.3 and PHP 7.4 have active and ongoing support at the time of writing).

It also requires the SimpleXML extension to be installed. Most servers have this built in already so you should be good to go with your host’s PHP.

Installation and upgrade

As with any Textpattern release, please ensure you log out of the admin side prior to upgrade, perform and verify a full site backup (database and files, including any uploads), and refer to the README.txt file in the download archives for detailed instructions.

What’s new in this release?

The Textpattern 4.8.0 HISTORY.txt outlines changes for this and previous Textpattern releases. We recommend you read the list of changes to understand how this may affect your current site, especially if you’re upgrading from older versions.

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 is regularly updated with examples, explanations and background information.

The list of changes include, in no particular order:

System requirements

  • Minimum system requirements increased to PHP 5.5 with SimpleXML. Added support for PHP 7.4.

Tags and attributes

  • Changed: <txp:newer /> and <txp:older /> tags support pagination ranges.
  • Changed: Non-searchable sections can be omitted from <txp:section_list> output with valueless ‘exclude’ attribute.
  • Changed: Author’s real name is available in <txp:page_url />.
  • Changed: Custom fields support from/to filtering.
  • Changed: <txp:evaluate /> removes empty items from lists.
  • Added: <txp:if_request /> tag for checking server, URL, POST and cookie variables.
  • Added: <txp:pages /> tag for enhanced pagination schemes.
  • Added: ‘item’ attribute to <txp:yield /> tag.
  • Added: ‘title’ attribute to image tags.
  • Added: ‘class’ attribute to comment form tags.
  • Added: ‘match’ and ‘separator’ attributes to <txp:if_variable /> tag.
  • Added: ‘pg’, ‘total’ and ‘limit’ attributes to <txp:newer /> and <txp:older /> tags.
  • Added: Support for id ranges in some tags and admin fields.
  • Added: Custom field aliases and URL filters via valueless attributes.
  • Added: Global ‘evaluate’, ‘replace’ and ‘yield’ attributes. Evaluate can execute contained content in arbitrary order.
  • Added: Ability to trim lists when using valueless ‘trim’ attribute.
  • Fixed: <txp:category_list> ‘sort’ attribute respects ‘categories’ attribute instead of requiring sort=”“ override.
  • Fixed: <txp:recent_articles /> only uses default link without form/container.

Security

  • Support for native PHP password hashing.
  • Improved password handling when using MySQL 8+.

Efficiency and performance

  • Performance optimizations via cacheing and preloading frequent content.
  • Tag parser tweaks for secondpass handler.

Admin side

  • Dark Mode support in Hive admin theme.
  • Scroll to top on list panels during navigation.
  • Consistent Edit step search behaviour on Plugins and Links panels.
  • Text/HTML tabs now in popup dialog, with optional live preview.
  • Hive and Classic admin themes now support 3 column layouts.
  • Option to disable auto-expanding text areas in Hive admin themes via config.php file. See Hive theme’s README.txt file for instructions.
  • Links have an editable publish time and date.
  • Warning to admin panels if JavaScript is unavailable.
  • Removed obsolete ‘No widowed words’ preference setting. If this feature is needed it can be implemented directly with <txp:title /> tag.
  • Link to phpinfo() in Diagnostics panel.
  • Use locale on admin side.
  • Localization of pre-flight diagnostic upgrade messages.
  • Fixed undefined variable warnings thrown via compact().

Front side content

  • Pageless sections for content snippets and creative article flows.
  • Per-section article link format override.
  • ‘breadcrumb/title’ article link format.
  • ‘section/category/title’ article link format.

Accessibility

  • Improved indication of required form fields.
  • Honour ‘prefers-reduced-motion’ in official themes.
  • Target WCAG 2.0 AAA contrast levels in official themes.
  • Improved ARIA experience.
  • Improved keyboard-only access experience.

Internationalization

  • Support for Bengali language translation.
  • Support for Khmer language translation.
  • Support for Norwegian Nynorsk language translation.
  • Support for Welsh language translation.

File system

  • Refined scope of root .htaccess, and restricted directory listing in /files/ and /textpattern/ with their respective .htaccess.
  • Plugins cached and loaded from disk to avoid eval().

Designers and developers

  • Dedicated live/dev theme switching.
  • Plugins can be uploaded with .php and .zip extensions.
  • Upload order and file totals sent when batch uploading files.
  • Some txplib_misc.php functions moved to txplib_admin.php.
  • PHP magic_quotes_gpc, magic_quotes_runtime, safe_mode and register_globals support removed.
  • Title accessible to plugins in Atom/RSS.
  • Merge headers on demand.
  • Tags can be registered with custom attributes/parameters.
  • Multiple forms can be fetched at once.
  • txp.article > neighbour.criteria callback on Write panel.

File under “Miscellaneous”

  • Improved performance of syndication feed handling for sections.
  • Random generator supports random_bytes and doesn’t throw errors.
  • Support for HTTP status 451 (Unavailable For Legal Reasons).
  • index.php correctly included in css.php.
  • Removed some deprecated functions from long ago.

Software libraries

  • Textile 3.7.6.
  • jQuery 3.4.1.
  • PrismJS 1.19.0.
  • jQuery File Upload 10.8.0.

Further notes

If you find anything not working correctly or wish to propose enhancements, please report them on GitHub, stating the affected version(s) and any salient information. There are templates for feature requests and bug reports.

We hope you enjoy this release and it serves you, your sites and clients well!