All Versions
Latest Version
Avg Release Cycle
89 days
Latest Release
1292 days ago

Changelog History
Page 1

  • v4.8.4 Changes

    November 29, 2020

    πŸš€ Textpattern CMS maintenance release 4.8.4.


    • πŸ‘Œ Support for PHP 8.0

    πŸ’» User interface (UI) and user experience (UX)

    • πŸ›  Fixed: Write panel JS error when override forms were switched off (thanks, GugUser).
    • πŸ›  Fixed: Default publishing section is not updated on section delete/rename.
    • βž• Added: Additional public-side language strings, primarily for themes.
    • πŸ”„ Changed: Override forms can be of any type, not just article. See prefs.
    • πŸ”„ Changed: Admin-side theme name references are appended with the theme version number.
    • πŸ”„ Changed: Improved keyboard focus within responsive tables (to allow scrolling via arrow keys).

    🏷 Tags

    • βž• Added: Tags syntax extension to allow for custom processing order.
    • βž• Added: β€˜fields’ attribute to .

    Internationalisation (i18n)

    • βž• Added: Latest translations. Thank you to all translators for your hard work.

    Libraries and other internals

    • PrismJS 1.22.0.
  • v4.8.3 Changes

    September 13, 2020

    πŸš€ Textpattern CMS maintenance release 4.8.3. Changes:

    πŸ”Œ Plugins

    • πŸ›  Fixed: A bug in 4.8.2 that can break some legacy plugins (thanks, Yiannis).

    πŸ’» User interface (UI) and user experience (UX)

    • πŸ›  Fixed: Improved upgrade path for Textpattern prior to version 4.5.0.
    • πŸ›  Fixed: Correctly label β€˜Allow commenter images in comments’ pref.
    • πŸ›  Fixed: Reload private prefs on preferences save (thanks, phiw13).
    • πŸ›  Fixed: More notifications on list panels if there were no assets recorded.
    • βž• Added: Instantly refresh admin theme on change.


    • πŸ’… Changed: Theme styles are now optional.

    🏷 Tags

    • βž• Added: β€˜loading’ attribute for <txp:article_image />, <txp:image /> and <txp:thumbnail /> tags.

    Internationalisation (i18n)

    • βž• Added: Latest translations. Thank you to all translators for your hard work.

    Libraries and other internals

    • PrismJS 1.21.0.
  • v4.8.2 Changes

    July 29, 2020

    πŸš€ Textpattern CMS maintenance release 4.8.2. Changes:

    🏷 Tags

    • πŸ›  Fixed: <txp:if_yield> 'else' container returning 1 instead of contents (thanks, Vienuolis).
    • πŸ”„ Changed: Matching categories in <txp:article_custom> now performs AND. Use match="Category" for previous OR behaviour.
    • πŸ”„ Changed: 'searchall="0"' attribute filters by section.
    • βž• Added: valueless 'replace' attribute filters out duplicates.
    • βž• Added: 'size' attribute to <txp:images> tag to filter by aspect ratio.

    πŸ’» UI and UX

    • πŸ›  Fixed: Multi-edit rearmed correctly after async saves on Forms panel.
    • πŸ›  Fixed: Sanitize custom field labels on Write panel (thanks, luuthehienhbit).
    • πŸ›  Fixed: Notification on list panels if there were no assets recorded.
    • πŸ›  Fixed: Incorrect search label for 'name' on Links panel.
    • πŸ›  Fixed: Override forms on Write panel stay in step with live Theme/Section (thanks, cara-tm).
    • πŸ›  Fixed: Image/thumb uploaders default to image types (thanks, Adi).
    • πŸ”„ Changed: Comments made by logged-in authors don't go through moderation.
    • πŸ”„ Changed: Category links in breadcrumb permlink mode.
    • πŸ”„ Changed: Multi-edit only active when checkboxes are selected.

    πŸ‘ Language support & i18n

    • πŸ›  Fixed: Update language list when deleting/switching to prevent stale entries.
    • πŸ›  Fixed: Language errors when using article preview (thanks, Destry and jakob).
    • πŸ›  Fixed: Date/time format when switching front-end language.
    • πŸ”„ Changed: When logging in, chosen login language is used as admin language.
    • πŸ”„ Changed: Password reset/welcome/activation and comment notification emails sent in author language.
    • βž• Added: Language selector on login and User Edit panels (if >1 installed).
    • βž• Added: Latest translations. Thank you to all translators for your hard work.

    Database and server-related internals

    • πŸ›  Fixed: Date tags return -1 in some server setups (thanks, the blue dragon).
    • πŸ›  Fixed: Removed TRADITIONAL sql_mode for a smoother upgrade (thanks, Adi).
    • πŸ›  Fixed: Plugin panel uses the tempdir pref correctly.
    • Added: Support for table_collation variable in config.php to affect safe_create() calls, when used in tandem with dbcharset.

    πŸ”Œ Plugins

    • πŸ›  Fixed: Plugins loaded from cache show correct Textpack menu labels instead of untranslated strings.
    • πŸ›  Fixed: Plugin auto-TOC strips out heading markup (thanks, Adi).
    • Developer: New 'pre' pretext callback.
    • πŸ”Œ Developer: Plugins can alter $pretext.
    • Developer: Add ability to filter strings in Lang->getPack() and extract().
    • Developer: getIfElse() function returns 'else' part of <txp:if_yield else />, and may be used as an EvalElse() replacement.
  • v4.8.1 Changes

    May 31, 2020

    πŸš€ Textpattern CMS maintenance release 4.8.1

    πŸ’» UI and UX

    • ⚑️ Changed: Improved pophelp for update check status on Diagnostics panel.
    • πŸ”„ Changed: Tag builder includes new 4.8.x attributes where possible.
    • πŸ”„ Changed: Lazy load images within Images list on supported browsers.


    • πŸ’… Changed: Dedicated '*' option when altering theme/page/style to leave assets as they are.
    • πŸ›  Fixed: Development and live assets are kept in sync when renamed.
    • πŸ›  Fixed: When setting development assets/themes, link to both live and dev assets even if they share a name.


    • πŸ”„ Changed: Multi-assign pageless (live) sections.
    • πŸ”„ Changed: Improved handling of yyyy/mm/dd article permlinks. Single-digit months and days permitted, and /section/yyyy/mm/dd will limit articles to the given section.
    • πŸ”„ Changed: Use noopener on target="_blank" links.
    • πŸ›  Fixed: Default value of permlink_format on new installs. Thanks, cara-tm.
    • πŸ›  Fixed: Multi-site index.php correctly included in multi-site css.php.

    🏷 Tags

    • πŸ”„ Changed: Support <txp:else /> in shortcodes.
    • βž• Added: showalways attribute for <txp:pages /> tag.

    πŸ‘ Language support

    • βž• Added: Latest translations. Thank you to all translators for your hard work.

    Libraries and internal workings

    • πŸ”„ Changed: Optimised language loading.
    • βž• Added: Support for InnoDB database engine.
    • πŸ›  Fixed: RPC errors when altering content from remote editors.
    • πŸ›  Fixed: Fall back on partial language identifier if code is not found.
    • πŸ›  Fixed: Strings loaded from plugin cache no longer break those already loaded. Thanks, David.
    • jQuery 3.5.1.
    • PrismJS 1.20.0.
    • jQuery File Upload 10.29.0.
  • v4.8.0 Changes

    February 25, 2020

    Textpattern CMS 4.8.0

    • πŸ”„ Changed: Minimum system requirements increased to PHP 5.5.
    • πŸ”„ Changed: <txp:newer /> and <txp:older /> tags support pagination ranges.
    • πŸ”„ Changed: Author's real name is available in <txp:page_url>.
    • πŸ”„ Changed: Refined scope of root .htaccess, and restricted directory listing in /files/ and /textpattern/ with their respective .htaccess.
    • πŸ”„ Changed: Non-searchable sections can be omitted from <txp:section_list> output with valueless 'exclude' attribute.
    • πŸ”„ Changed: Consistent Edit step search behaviour on Plugins and Links panels.
    • πŸ”„ Changed: Text/HTML tabs now in popup dialog, with optional live preview.
    • πŸ”„ Changed: Tag parser tweaks for secondpass handler.
    • πŸ”„ Changed: Plugins cached and loaded from disk to avoid eval().
    • πŸ”„ Changed: Custom fields support from/to filtering.
    • πŸ”„ Changed: <txp:evaluate /> removes empty items from lists.
    • πŸ”„ Changed: Scroll to top on list panels during navigation.
    • πŸ”„ Changed: Random generator supports random_bytes and doesn't throw errors.
    • 🐎 Changed: Improved performance of syndication feed handling for sections.
    • ⚑️ Changed: Check for updates throttle reduced to 1hr from 24hrs.
    • βž• Added: Global public theme switcher.
    • βž• Added: Dedicated live/dev theme switching.
    • βž• Added: Support for PHP 7.4.
    • βž• 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: 'month' and 'time' attributes to <txp:file_download_list /> and <txp:linklist> tags.
    • βž• 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: Support for HTTP status 451 (Unavailable For Legal Reasons).
    • βž• Added: Support for native PHP password hashing.
    • βž• Added: Dark Mode support in Hive admin theme.
    • βž• Added: Pageless sections for content snippets and creative article flows.
    • βž• Added: Per-section article link format override.
    • βž• Added: 'breadcrumb/title' article link format.
    • βž• Added: 'section/category/title' article link format.
    • βž• Added: Links have an editable publish time and date.
    • βž• Added: Category searching to a specified depth.
    • βž• 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.
    • βž• Added: Link to phpinfo() in Diagnostics panel.
    • βž• Added: Configuration file generated during setup can be downloaded.
    • βž• Added: Support for Bengali language translation.
    • βž• Added: Support for Khmer language translation.
    • βž• Added: Support for Norwegian Nynorsk language translation.
    • βž• Added: Support for Welsh language translation.
    • βž• Added: Latest translations. Thanks to all Crowdin translators for their work.
    • βž• Added: Hive and Classic admin themes now support 3 column layouts.
    • βž• Added: Option to disable auto-expanding text areas in Hive admin themes via config.php file. See Hive theme's README.txt file for instructions.
    • βž• Added: Warning to admin panels if JavaScript is unavailable.
    • βž• Added: Support for SSL MySQL connections in config.php.
    • βœ‚ Removed: Obsolete 'No widowed words' preference setting. If this feature is needed it can be implemented directly with <txp:title /> tag.
    • βœ‚ Removed: Some deprecated functions from long ago.
    • πŸ›  Fixed: index.php correctly included in css.php.
    • πŸ›  Fixed: 3 undefined routing-related indexes.
    • πŸ›  Fixed: Article preview (txpreview) is not cached.
    • πŸ›  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.
    • πŸ›  Fixed: Use locale on admin side.
    • πŸ›  Fixed: Localization of pre-flight diagnostic upgrade messages.
    • πŸ›  Fixed: Undefined variable warnings thrown via compact().
    • πŸ›  Fixed: Password handling when using MySQL 8+.
    • πŸ›  Fixed: nbsp on French opening quote broke Textile in some cases.
    • πŸ›  Fixed: Incorrect acronym tag in welcome article.
    • Accessibility: Improved indication of required form fields.
    • Accessibility: Honour 'prefers-reduced-motion' in official themes.
    • Accessibility: Target WCAG 2.0 AAA contrast levels in official themes.
    • Accessibility: Improved ARIA experience.
    • Accessibility: Improved keyboard-only access experience.
    • πŸ”Œ Developer: Plugins can be uploaded with .php and .zip extensions.
    • Developer: Upload order and file totals sent when batch uploading files.
    • 🚚 Developer: Some txplib_misc.php functions moved to txplib_admin.php.
    • Developer: PHP magic_quotes_gpc, magic_quotes_runtime, safe_mode and register_globals support removed.
    • πŸ”Œ Developer: Title accessible to plugins in Atom/RSS.
    • πŸ”€ Developer: Merge headers on demand.
    • Developer: Tags can be registered with custom attributes/parameters.
    • Developer: Multiple forms can be fetched at once.
    • Developer: txp.article > neighbour.criteria callback on Write panel.
    • πŸ”Œ Developer: Please register plugin tags or they will not work in future.
    • 🐎 Performance optimizations via cacheing and preloading frequent content.
    • πŸš€ Textile 3.7.6. See for full list of changes in this release (thanks, gocom).
    • jQuery 3.4.1.
    • PrismJS 1.19.0.
    • jQuery File Upload 10.8.0.
  • v4.8.0-beta.3 Changes

    February 14, 2020

    Third beta of Textpattern CMS. Changes since beta.2:

    • πŸ›  Fix viewport width overflow on small devices (thanks, Myusername, phiw13).
    • 🐎 Permit multiple forms to be fetched from the database at once for performance improvements.
    • πŸ‘Œ Improve pagination flexibility, introduce limit attribute to <txp:newer> and <txp:older> tags, and add the <txp:pages> tag.
    • Enable <txp:evaluate> and the evaluate attribute to execute content in arbitrary order.
    • πŸ›  Fix international character usage in section/category/title and breadcrumb/title permlink schemes (thanks, phiw13).
    • πŸ›  Fix plugin warnings issued when directory isn't writeable (thanks, phiw13).
    • πŸ›  Fix ID range selection (thanks, Mikulas).
    • πŸ›  Fix <txp:output_form> error being thrown (thanks, Summer).
    • πŸ›  Fix incorrect <acronym/> vs <abbr/> tag in welcome article (thanks, colak).
    • βž• Add JavaScript warning to admin side if it's disabled (thanks, cara-tm).
    • Accessibility improvements for screen readers and keyboard-only page navigation.
    • 🌐 Latest translations and pophelp: thank you to all contributors via Crowdin.
    • UglifyJS v3.7.7.
  • v4.8.0-beta.2 Changes

    January 28, 2020

    Notable changes since first beta:

    • Developer preview pref toggles all preview ability.
    • πŸ‘‰ Tweak Sections panel:
      Development assets now appear below any live assets.
      Change theme/page/style's Live checkbox is now off by default.
      🍱 Development assets are now searchable.
    • πŸ‘‰ Show dev themes in use on Themes panel.
    • Only show In use pill and Assign section link if more than one theme is present (thanks, phiw13).
    • πŸ‘Œ Improve asset deletion/renaming to avoid orphaned content (thanks, phiw13)
    • Support for pageless sections. This allows content snippets and creative article flows to be constructed (e.g. parent/child articles stitched together via custom fields) while not exposing pageless content directly via a URL.
    • πŸ‘Œ Improve section/category URL scheme (thanks, colak).
    • Breadcrumb URL scheme: cat1+cat2 is now cat1/cat2 (thanks, colak).
    • πŸ‘Œ Improve category matching and exclusion filters (thanks, colak).
    • βͺ Restore 4.7 <txp:header> defaults (thanks, Myusername).
    • πŸ†• New <txp:if_request /> tag for checking server, URL, POST and cookie variables.
    • βž• Added global replace attribute to swap out content that has been removed by the trim attribute.
    • βž• Added 'match' and 'separator' attributes to <txp:if_variable /> tag.
    • βž• Added 'pg' and 'total' attributes to <txp:newer /> and <txp:older /> tags.
    • πŸ”— Links have an editable publish time and date on the Links panel (thanks, code365).
    • πŸ‘ Hive and Classic admin themes now support 3 column layouts.
    • πŸ”Œ Warn if plugin directory is not writable in Diagnostics and Plugins panels (thanks, Destry).
    • πŸ‘Œ Support for Bengali, Khmer, Nynorsk and Welsh languages.
    • 🌐 Latest translations: thank you to all contributors via Crowdin.
    • βͺ Reverted enforced plugin tag registration for another version (or two).
  • v4.8.0-beta Changes

    December 21, 2019

    πŸš€ Beta release of Textpattern 4.8.0. Please see HISTORY.txt for a full list of changes that will appear in the 4.8.0 stable release.

    πŸš€ As this is a beta, code may change between this and the final 4.8.0 stable release. As such, it is not recommended for production use. If you do, back up your existing database and filesystem before upgrading.

    πŸš€ Please report any issues here, stating the beta version that you are using. Further beta releases may be required prior to 4.8.0 stable release, depending on issues reported.

    Thank you and have fun!

  • v4.7.3 Changes

    February 25, 2019

    πŸš€ Textpattern CMS maintenance release v4.7.3 introduces the following feature enhancements, changes and fixes:

    πŸ”‹ Features

    • <txp:yield /> values are available in external forms too.
    • πŸ‘ Indicator for WebP support in Diagnostics panel.
    • 🌐 Latest language translations.
    • 🌐 Complete Italian inline help translation. Many thanks to Giampiero Mellea for all their work.
    • Introduce L10n/Lang->languageList() to get language tuples.

    πŸ”„ Changes

    • Permit falling back on pophelp in 'lang' database table.
    • 'Show password' on Users panel displays both passwords.
    • βœ… Latest version of Textile (3.7.1).

    πŸ›  Fixes

    • 🍱 'Export to disk' checkbox state inconsistencies for new assets.
    • Logout issue in Classic admin theme.
    • A bug when PHP mbstring extension is disabled.
    • Prevent Alt+S from triggering save (thanks, o10154016).
    • Language .ini files trump old .txt files.
  • v4.7.2 Changes

    December 20, 2018

    πŸš€ Textpattern CMS maintenance release v4.7.2 introduces the following feature enhancements, changes and fixes:

    πŸ”‹ Features

    • 🌐 Latest translations and languages, including help texts for Czech, French and Italian. Many thanks to all translators.
    • 0️⃣ Global 'trim', 'default' and 'wrapform' attributes.
    • Global 'escape="ordinal|spell|url"' attribute values.
    • 'aria_label' and 'placeholder' attributes on comment input fields.
    • 'breakform' attribute in <txp:article(_custom) /> tag.
    • βœ… 'test' attribute in <txp:if_different /> tag.
    • 'context' attribute in <txp:link_to_next />, <txp:link_to_prev />, <txp:page_url /> and <txp:permlink /> tags.
    • 'context' and 'format' attributes in <txp:output_form /> tag.
    • 'add', 'reset', 'separator' and 'output' attributes in <txp:variable /> tag.
    • Custom form media (MIME) types, served as 'flat' files if needed.
    • πŸ’… Option to export form/page/style to disk on save.
    • Custom functions can be registered for use in <txp:evaluate /> tag.

    πŸ”„ Changes

    • <txp:search_input /> can be used as a container tag, and also accepts 'aria_label' and 'placeholder' attributes.
    • 0️⃣ More robust search routes within default public-side theme.
    • Improved upgrade route where MySQL NO_ZERO_DATE is set.
    • ✨ Enhanced password manager compatibility on login and user details pages.
    • Extended fallback to 'C' locale in some situations.
    • 0️⃣ Partially translated inline help files use fallback language (by default: English) where localized help items are not present.
    • Hive admin theme login panel now displays link to public site.
    • Simplified Classic admin theme login panel layout.
    • Fine-grained development theme preview.
    • More customizable Atom/RSS feeds via 'atom_head', 'rss_head' and 'feed_filter' callbacks.
    • Deleting an article deletes any associated comments.
    • πŸ’… Forms, Pages and Styles accept pre-4.7 names for editing, but must be sanitized prior to saving.
    • Some emoji are preserved in automatically-generated article URL titles.
    • Article text blocks starting with a Textpattern tag are not Textile'd.
    • File data is available on 'file_download' callback.
    • Article lists can be split by 'breakby' form value.
    • 0️⃣ Expanded media items within default public-side theme.
    • βœ… Latest versions of Textile (3.7.0) and jQuery File Upload (9.28.0)

    πŸ›  Fixes

    • A bug with <txp:link_to_[next|prev] /> tags in 'month' URL mode.
    • A bug with <txp:related_articles /> tag.
    • <txp:search_input /> will always respect its 'form' attribute setting, if set.
    • A bug with the global 'not' attribute.
    • Multibyte characters are correctly obfuscated by <txp:email />.
    • πŸ“œ Unparsed strings in a few places.