tag:github.com,2008:https://github.com/textpattern/textpattern/releases Release notes from textpattern 2026-02-14T16:59:41Z tag:github.com,2008:Repository/158617/4.9.1 2026-02-14T20:10:51Z v4.9.1 <ul> <li>Maintenance release with security enhancements, general improvements and bug fixes.</li> <li>Security: Resolved access control regression with articles. Many thanks to Federico Frascino.</li> <li>Security: Resolved admin-side XSS vulnerability. Many thanks to Jan Jeffrie Galvez Salloman, aka '0xj4n'.</li> <li>Changed: (Article)Image tags only output dimensions on demand.</li> <li>Changed: <code>&lt;txp:article_image&gt;</code> skips empty images/thumbnails.</li> <li>Changed: Valueless width/height/crop behaviour in (Article)Image tags.</li> <li>Changed: Thumb path now permits virtual/multiple host setups.</li> <li>Changed: Use publisher email and fallback if no/invalid sender is supplied (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jools-r/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jools-r">@jools-r</a> ).</li> <li>Fixed: Fatal error with <code>UNIXTIME()</code> changes in MariaDB 11.8+.</li> <li>Fixed: Dynamic thumbnail MIME detection (thanks, rezozero/ambroisemaupate).</li> <li>Fixed: PHP 5.6 support (thanks, pinalgirkar).</li> <li>Fixed: Show template content even if theme is deleted (thanks, Mark Goodwin).</li> <li>Fixed: Correct admin theme file scaffold for dynamic thumbnails.</li> <li>Fixed: Reintroduce 'No' indicator if thumbnail is missing in Images list panel (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rwetzlmayr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rwetzlmayr">@rwetzlmayr</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/phiw13/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/phiw13">@phiw13</a>).</li> <li>Fixed: Duplicate action only available for existing content.</li> <li>Fixed: Assets created with no timestamp use time of creation, not Unix epoch.</li> <li>Fixed: Internal errors with password reset email sending on PHP 8.5.</li> <li>Added: (Article)Image thumbnails can output any supported format.</li> <li>Vendors: jQuery UI 1.14.2.</li> </ul> Bloke tag:github.com,2008:Repository/158617/4.9.0 2025-12-21T17:40:18Z v4.9.0 <ul> <li>Feature release with support for PHP 8.5, MySQL 8.4, new functionality, security enhancements, improvements, and bug fixes.</li> <li>Changed: Minimum system requirements increased to PHP 5.6 (PHP 8.2+ recommended, preferably with ongoing vendor support).</li> <li>Changed: Minimum system requirements increased to MySQL 5.5 (MySQL 8.0+ recommended, preferably with ongoing vendor support).</li> <li>Fixed: Remove 'br' tags from article image markup where &gt;1 image is supplied (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jools-r/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jools-r">@jools-r</a>).</li> <li>Fixed: Pre+post textfilter callbacks were switched.</li> <li>Fixed: Plugins import Textpack strings correctly.</li> <li>Fixed: Prefs (multi-)select options.</li> <li>Fixed: Improved support for images with EXIF orientation metadata (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jools-r/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jools-r">@jools-r</a>).</li> <li>Fixed: Avoid directory traversal when uploading plugins (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BG1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BG1">@BG1</a>).</li> <li>Fixed: Compiled plugins upload on PHP 5.6.</li> <li>Fixed: Windows-generated .zip plugins installable on UNIX/Linux.</li> <li>Fixed: Restored empty 'height' and 'width' attributes behaviour of <code>&lt;txp:image /&gt;</code>.</li> <li>Fixed: Self-closing tag output for html5 doctype to silence validator (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jools-r/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jools-r">@jools-r</a>).</li> <li>Fixed: Ignore search in individual article mode.</li> <li>Fixed: Take RFC 2616 mail headers setting into account for separator.</li> <li>Fixed: Sandboxed article/body/excerpt preview (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/grozdniyandy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/grozdniyandy">@grozdniyandy</a>).</li> <li>Added: Support for PHP 8.2, PHP 8.3.1+, PHP 8.4, and PHP 8.5.</li> <li>Added: Full article previews directly from the Write panel.</li> <li>Added: Filter articles by image.</li> <li>Added: Admin Theme prefs.</li> <li>Added: Automatic, dynamic thumbnail generation (tags and back-end).</li> <li>Added: SVG image support (thanks, osadl and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jools-r/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jools-r">@jools-r</a>).</li> <li>Added: Activity indicator for extended duration file/image upload processes.</li> <li>Added: Multi-edit for changing author language.</li> <li>Added: In-use asset counters to the Users panel.</li> <li>Added: Reload language packs from disk.</li> <li>Added: Shift+Space shortcut for 'Tab' indent in textareas.</li> <li>Added: Input length tooltip when appropriate.</li> <li>Added: PHPMailer for third-party SMTP delivery. See Admin&gt;Preferences&gt;Mail.</li> <li>Added: <code>&lt;txp:date /&gt;</code> tag.</li> <li>Added: <code>&lt;txp:if_article_status /&gt;</code> tag.</li> <li>Added: <code>&lt;txp:if_items_count /&gt;</code> tag.</li> <li>Added: Global 'variable' attribute.</li> <li>Added: Global 'offset' attribute can be set by URL parameters.</li> <li>Added: 'parent' attribute to <code>&lt;txp:category /&gt;</code>.</li> <li>Added: 'inline' value to 'format' attribute of <code>&lt;txp:css /&gt;</code> (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jools-r/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jools-r">@jools-r</a>).</li> <li>Added: 'alias' attribute to <code>&lt;txp:evaluate /&gt;</code>.</li> <li>Added: Ability to serve files via 'type' attribute to <code>&lt;txp:file_download /&gt;</code>.</li> <li>Added: 'exclude' attribute to <code>&lt;txp:file_download_list /&gt;</code> and <code>&lt;txp:linklist /&gt;</code>.</li> <li>Added: Site production status values to 'process' attribute of <code>&lt;txp:hide /&gt;</code>.</li> <li>Added: 'level' attribute to <code>&lt;txp:if_category /&gt;</code>.</li> <li>Added: 'match', 'separator' attribute capability to <code>&lt;txp:if_yield /&gt;</code>.</li> <li>Added: 'exclude', 'month' and 'time' attributes to <code>&lt;txp:images /&gt;</code>.</li> <li>Added: 'lang' attribute to <code>&lt;txp:page_url /&gt;</code>.</li> <li>Added: 'target' attribute to <code>&lt;txp:popup /&gt;</code>.</li> <li>Added: 'filter' attribute to <code>&lt;txp:section_list /&gt;</code> and <code>&lt;txp:if_section /&gt;</code>.</li> <li>Added: Plugins can be uploaded from a URL by dragging to upload textarea.</li> <li>Added: Plugin compilation directly from the Plugins panel.</li> <li>Added: Plugin export to .zip.</li> <li>Added: Compiled plugins can be uploaded via Browse... feature.</li> <li>Added: Compatible plugin upgrades directly from the Plugins panel.</li> <li>Added: Create and install new plugins directly from the Plugins panel.</li> <li>Added: Plugin multi-edit option: revert to last installed code content.</li> <li>Added: All plugin metadata exposed in the Plugin Edit panel.</li> <li>Added: Latest text translations. Thank you to all our translators.</li> <li>Added: Punjabi, Slovenian and Urdu (Pakistani dialect) language support.</li> <li>Added: Trailing slash URL preference.</li> <li>Added: File download header preference.</li> <li>Added: Option to define a Content Security Policy header for the Textpattern admin-side via <code>config.php</code>.</li> <li>Added: Support for aggregate window functions in compatible MySQL versions.</li> <li>Added: metaWeblog.newMediaObject for image upload over the MovableType API (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Melonking906/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Melonking906">@Melonking906</a>).</li> <li>Changed: Pending articles may be displayed on the site.</li> <li>Changed: Theme page maximum size increased from 64KB to 16MB.</li> <li>Changed: Allow content dates prior to 01-01-1970, and beyond 03:14:07 UTC on 19 Jan 2038. Refer to Epochalypse/Year 2038 problem for info. Adjustments for non-Gregorian (AD) dates are performed.</li> <li>Changed: Display/edit 'modified' date on Files panel.</li> <li>Changed: Refactored article Save panel (thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jools-r/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jools-r">@jools-r</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/phiw13/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/phiw13">@phiw13</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cara-tm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cara-tm">@cara-tm</a>).</li> <li>Changed: File Edit panel has the ability to rename and delete files, and change the download counter value (thanks, adi).</li> <li>Changed: Image Edit panel has the ability to delete images.</li> <li>Changed: Image Edit panel includes published date/time, which can be altered.</li> <li>Changed: Pre-flight check visibility toggle.</li> <li>Changed: In-use languages can not be deleted.</li> <li>Changed: Deprecate <code>&lt;txp:search_result_count /&gt;</code>. Use `&lt;txp:items_count /&gt; instead.</li> <li>Changed: Section-aware default search.</li> <li>Changed: Image tags can take HTML attributes.</li> <li>Changed: Enhancements to 'br' tag HTML5 compliance (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jools-r/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jools-r">@jools-r</a>).</li> <li>Changed: Enhancements to SVG handling relating to non-px dimensions (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jools-r/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jools-r">@jools-r</a>).</li> <li>Changed: Enhancements to 'extension' and 'size' attributes of <code>&lt;txp:images /&gt;</code>.</li> <li>Changed: Enhancements to RPC functionality (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Melonking906/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Melonking906">@Melonking906</a>).</li> <li>Changed: Admin-theme checksums computed independently. Unused admin themes can be deleted and will no longer trigger Diagnostics alert.</li> <li>Changed: Multi-site scaffold optimisations.</li> <li>Changed: Wildcards in file/image/link category queries.</li> <li>Changed: <code>&lt;txp:header /&gt;</code> tag requires 'form' privilege.</li> <li>Changed: Articles may use external URLs directly.</li> <li>Changed: Some language keys renamed to avoid invalid name clashes.</li> <li>Changed: Do not generate empty syndication feeds for feedless sections.</li> <li>Changed: Removed 'noopener' from target="_blank" links (now default behaviour in all supported browsers) (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/phiw13/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/phiw13">@phiw13</a>).</li> <li>Changed: Removed 'aria-label' attributes where 'title' already exists.</li> <li>Changed: Checksums use Tiger-192,3 instead of MD5. Fewer potential clashes.</li> <li>Changed: Allow PHP scripting options off by default, and Diagnostics warning.</li> <li>Changed: Plugins of all types trigger verify step (with improved security).</li> <li>Changed: Extend character set that can be used in tag/attribute names.</li> <li>Changed: Less collision-prone custom fields name processing.</li> <li>Changed: Category &amp; section description field sizes increased to 1023 characters.</li> <li>Changed: Introduce primary keys for all database tables, replacing some old indexes.</li> <li>Developer: Permitted concurrent logins. See Advanced Prefs.</li> <li>Developer: Removed duplicate pluggable_ui callback for article_ui›categories (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jools-r/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jools-r">@jools-r</a>).</li> <li>Developer: Added pophelp support in plugin 'lang' directory.</li> <li>Developer: Articles (list) panel callbacks:<br> articles&gt;fields and articles&gt;from to manipulate the query<br> articles&gt;controls to affect the button area<br> articles_ui&gt;list.row (pluggable_ui) for adding table data<br> articles&gt;steps for plugins to register custom panel-level functionality.</li> <li>Developer: Add pre+post article_submit callbacks on article post/save.</li> <li>Developer: Add getAtts($tag) method for fetching tag attributes.</li> <li>Developer: Reintroduce extend_col_1 markup area on Write panel.</li> <li>Developer: Add lifecycle&gt;loaded callback for plugins run from cache.</li> <li>Developer: Introduce UI class library for building interface components.</li> <li>Developer: Tag registration is now mandatory.</li> <li>Developer: Some of the lesser-used tags are loaded on demand from their class<br> to save memory. Plugins must call them via processTags() function.</li> <li>Developer: Add safe_exists() function to database layer.</li> <li>Developer: Move $thisversion and $txp_is_dev to constants.php.</li> <li>Developer: 'Visitor logs' panel is now bound to the new 'lore' event name<br> (was: 'log') to prevent conflicts with privacy filters.</li> <li>Developer: File upload callbacks (file_uploaded and files_uploaded pre+post).</li> <li>Developer: Activation emails can be skipped via hidden notify="skip" field.</li> <li>Developer: Can add &amp;checksums=1 on Diagnostics panel URL to verify checksums.</li> <li>Vendors: Textile 4.1.4. (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gocom/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gocom">@gocom</a>).</li> <li>Vendors: DOMPurify 3.3.1.</li> <li>Vendors: jQuery 3.7.1.</li> <li>Vendors: jQuery UI 1.14.1.</li> <li>Vendors: PHPMailer 6.12.0.</li> <li>Vendors: PrismJS 1.30.0.</li> <li>Vendors: UglifyJS 3.19.3.</li> </ul> petecooper tag:github.com,2008:Repository/158617/4.9.0-beta.2 2025-03-14T11:40:28Z v4.9.0-beta.2 <ul> <li>Added: Full article previews directly from the Write panel.</li> <li>Added: Site status values to 'process' attribute of <code>&lt;txp:hide /&gt;</code>.</li> <li>Added: 'inline' value to 'format' attribute of <code>&lt;txp:css /&gt;</code> (thanks, jools-r).</li> <li>Added: 'target' attribute to <code>&lt;txp:popup /&gt;</code>.</li> <li>Added: 'match', 'separator' attribute capability to <code>&lt;txp:if_yield /&gt;</code>.</li> <li>Added: Ability to serve files via 'type' attribute to <code>&lt;txp:file_download /&gt;</code>.</li> <li>Added: Plugin compilation directly from the Plugins panel.</li> <li>Changed: Refactored article Save panel (thanks jools-r, phiw13, and cara-tm).</li> <li>Changed: Wildcards in file/image/link category queries.</li> <li>Changed: Enhancements to RPC functionality (thanks, Melonking906).</li> <li>Changed: Multi-site scaffold optimisations.</li> <li>Changed: Pre-flight check visibility toggle.</li> <li>Changed: Articles may use external URLs directly.</li> <li>Changed: A few language keys renamed to avoid invalid name clashes.</li> <li>Developer: Add pre+post article_submit callbacks on article post/save.</li> <li>Developer: Add getAtts($tag) method for fetching tag attributes.</li> <li>Developer: Reintroduce extend_col_1 markup area on Write panel.</li> <li>Developer: Add lifecycle&gt;loaded callback for plugins run from cache.</li> <li>Fixed: Pre+post textfilter callbacks were switched.</li> <li>Fixed: Plugins import Textpack strings properly.</li> <li>Fixed: Prefs (multi-)select options (UI Library).</li> <li>Vendors: DOMPurify 3.2.4.</li> <li>Vendors: jQuery UI 1.14.1.</li> <li>Vendors: PHPMailer 6.9.3.</li> <li>Vendors: PrismJS 1.30.0.</li> <li>Vendors: Textile 4.1.2. (thanks, gocom).</li> <li>Vendors: UglifyJS 3.19.3.</li> </ul> Bloke tag:github.com,2008:Repository/158617/4.9.0-beta.1a 2024-08-13T06:04:23Z v4.9.0-beta.1 <p>First beta release of Textpattern 4.9.0 (beta.1)</p> <ul> <li>Feature release with support for PHP 8.4.0+, new functionality, security enhancements, general improvements and bug fixes.</li> <li>Changed: Minimum system requirements increased to PHP 5.6 (PHP 8.2+ recommended).</li> <li>Changed: Minimum system requirements increased to MySQL 5.5 (MySQL 8.0+ recommended).</li> <li>Changed: Removed 'noopener' from target="_blank" links (now default behaviour in all supported browsers) (thanks, phiw13).</li> <li>Changed: Removed 'aria-label' attributes where 'title' already exists.</li> <li>Changed: Deprecate <code>&lt;txp:search_result_count /&gt;</code>. Use <code>&lt;txp:items_count /&gt;</code> instead.</li> <li>Fixed: Improved support for images with EXIF orientation metadata (thanks, jools-r).</li> <li>Fixed: Avoid directory traversal when uploading plugins (thanks, bg1).</li> <li>Fixed: Compiled plugins upload on PHP 5.</li> <li>Fixed: Windows-generated zip plugins installable on Linux.</li> <li>Fixed: Restored empty 'height' and 'width' attributes behaviour of <code>&lt;txp:image /&gt;</code>.</li> <li>Fixed: Self-closing tag output for html5 doctype to silence validator (thanks, jools-r).</li> <li>Fixed: Ignore search in individual article mode.</li> <li>Fixed: Take rfc2616 mail headers setting into account for separator.</li> <li>Fixed: Sandboxed article/body/excerpt preview (thanks, grozdniyandy).</li> <li>Added: Support for PHP 8.2, PHP 8.3.1+ and PHP 8.4.0+.</li> <li>Added: SVG image support (thanks, osadl and jools-r).</li> <li>Added: Option to define a Content Security Policy header for the Textpattern admin-side via config.php.</li> <li>Added: PHPMailer for third-party SMTP delivery. See Admin&gt;Preferences&gt;Mail.</li> <li>Added: Multi-edit for changing author language.</li> <li>Added: Plugins can be uploaded from a URL by dragging to upload textarea.</li> <li>Added: Compiled plugins can be uploaded via Browse... feature.</li> <li>Added: Compatible plugin upgrades directly from the Plugins panel.</li> <li>Added: Create and install new plugins directly from the Plugins panel.</li> <li>Added: Plugin multi-edit option: revert to last installed code content.</li> <li>Added: All plugin metadata exposed in the Plugin Edit panel.</li> <li>Added: Plugin (zip-only) export feature.</li> <li>Added: Support for aggregate window functions in compatible MySQL versions.</li> <li>Added: Trailing slash URL preference.</li> <li>Added: File download header preference.</li> <li>Added: In-use asset counters to the Users panel.</li> <li>Added: 'filter' attribute to <code>&lt;txp:section_list /&gt;</code> and <code>&lt;txp:if_section /&gt;</code>.</li> <li>Added: 'level' attribute to <code>&lt;txp:if_category /&gt;</code>.</li> <li>Added: Activity indicator for long upload processes.</li> <li>Added: metaWeblog.newMediaObject for image upload over the MovableType API (thanks, Melonking906).</li> <li>Added: Global 'offset' can be set by URL parameters.</li> <li>Added: 'lang' attribute to <code>&lt;txp:page_url /&gt;</code>.</li> <li>Added: <code>&lt;txp:if_items_count /&gt;</code> tag.</li> <li>Added: Reload language packs from disk.</li> <li>Added: Shift+Space shortcut for 'Tab' indent in textareas.</li> <li>Added: Input length tooltip when appropriate.</li> <li>Added: <code>&lt;txp:date /&gt;</code> tag.</li> <li>Added: Global 'variable' attribute.</li> <li>Added: 'alias' attribute to <code>&lt;txp:evaluate /&gt;</code>.</li> <li>Added: 'parent' attribute to <code>&lt;txp:category /&gt;</code>.</li> <li>Changed: Plugins of all types trigger verify step (with improved security).</li> <li>Changed: File Edit panel has the ability to rename and delete files, and change the download counter value (thanks, adi).</li> <li>Changed: Image Edit panel has the ability to delete images.</li> <li>Changed: In-use languages can not be deleted.</li> <li>Changed: Image tags can take HTML attributes.</li> <li>Changed: Less collision-prone custom fields name processing.</li> <li>Changed: Do not generate empty syndication feeds for feedless sections.</li> <li>Changed: Allow PHP scripting options off by default, and Diagnostics warning.</li> <li>Changed: Introduce primary keys for all database tables, replacing some old indexes.</li> <li>Changed: Category &amp; section description field sizes increased to 1023.</li> <li>Changed: <code>&lt;txp:header /&gt;</code> tag requires 'form' privilege.</li> <li>Changed: Section-aware default search.</li> <li>Changed: Extend character set that can be used in tag/attribute names.</li> <li>Developer: Introduce UI class library for building interface components.</li> <li>Developer: Tag registration is now mandatory.</li> <li>Developer: Some of the lesser-used tags are loaded on demand from their class to save memory. Plugins must call them via processTags() function.</li> <li>Developer: Add safe_exists() function to database layer.</li> <li>Developer: Move $thisversion and $txp_is_dev to constants.php.</li> <li>Developer: 'Visitor logs' panel is now bound to the new 'lore' event name (was: 'log') to prevent conflicts with privacy filters.</li> <li>Developer: File upload callbacks (file_uploaded and files_uploaded pre+post).</li> <li>Developer: Activation emails can be skipped via hidden notify="skip" field.</li> <li>Vendors: DOMPurify 3.0.6.</li> <li>Vendors: jQuery 3.7.1.</li> <li>Vendors: jQuery UI 1.13.3.</li> <li>Vendors: PHPMailer 6.9.1.</li> <li>Vendors: PrismJS 1.29.0.</li> <li>Vendors: Textile 4.1.1. (thanks, gocom).</li> <li>Vendors: UglifyJS 3.19.0.</li> </ul> petecooper tag:github.com,2008:Repository/158617/4.9.0-beta.1 2024-08-12T22:10:32Z 4.9.0-beta.1 <p>Merge branch 'release-4.9.0-beta.1' into main</p> Bloke tag:github.com,2008:Repository/158617/4.9.0-beta 2024-08-12T12:05:37Z Merge branch 'release-4.9.0-beta' <h1>Conflicts:</h1> <h1>HISTORY.txt</h1> <h1>INSTALL.txt</h1> <h1>README.txt</h1> <h1>UPGRADE.txt</h1> <h1>package.json</h1> <h1>textpattern/checksums.txt</h1> <h1>textpattern/index.php</h1> <h1>textpattern/textpattern.js</h1> <h1>textpattern/vendors/Textpattern/DB/Data/core.prefs</h1> petecooper tag:github.com,2008:Repository/158617/4.8.8 2022-01-24T13:42:02Z v4.8.8 <ul> <li>Maintenance release with support for PHP 8.1, security enhancements, general improvements and bug fixes.</li> <li>Security: Fix reported cross-site scripting issue relating to article preview CSRF token (many thanks, Paul Ritchie at Pentest Limited).</li> <li>Fixed: More robust numeric searches.</li> <li>Fixed: Improved query efficiency of category operations.</li> <li>Fixed: Required parameters after optional in tag builder (thanks, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/phiw13/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/phiw13">@phiw13</a>).</li> <li>Fixed: Admin-side pagination when sorting by non-unique values.</li> <li>Added: PHP 8.1 support.</li> <li>Added: Natural search mode.</li> <li>Added: Random form selection.</li> <li>Added: Support for AVIF image format, on PHP 8.1 or higher.</li> <li>Added: Global <code>limit</code>, <code>offset</code> and <code>sort</code> attributes.</li> <li>Added: <code>url_title</code> attribute to <code>&lt;txp:article[_custom] /&gt;</code>.</li> <li>Added: <code>range</code> attribute to <code>&lt;txp:article_image /&gt;</code>.</li> <li>Added: <code>date</code> and <code>time</code> attributes to <code>&lt;txp:if_expired /&gt;</code>.</li> <li>Added: <code>calendar</code> attribute to <code>&lt;txp:posted /&gt;</code> and similar tags.</li> <li>Added: Substring extraction via <code>escape</code> attribute.</li> <li>Added: <code>&lt;txp:items_count /&gt;</code> tag.</li> <li>Added: Expanded conditional <code>match</code> attribute with comparison operators.</li> <li>Added: <code>UTC</code> is now a permitted time zone.</li> <li>Added: Custom date formats.</li> <li>Changed: <code>&lt;txp:category_list /&gt;</code> with <code>children</code> &gt;1 attribute behaviour.</li> <li>Changed: Global <code>escape</code> attribute operates at the items level in lists.</li> <li>Changed: Multi-site plugins directory defaults to <code>site/admin/plugins</code>.</li> <li>Accessibility: Additional <code>aria-label</code> attributes for some internal links.</li> <li>Internal: Removed <code>FOUND_ROWS()</code> which is deprecated in MySQL 8.0.17.</li> <li>Internal: Prefer <code>is_readable()</code> and <code>is_file()</code> to <code>file_exists()</code>.</li> <li>Developer: Added plugin lifecycle events <code>upgraded</code> and <code>downgraded</code>.</li> <li>Developer: Export new article IDs on duplicate.</li> <li>PrismJS 1.26.0.</li> </ul> petecooper tag:github.com,2008:Repository/158617/4.8.8-beta.1 2022-01-01T14:05:56Z v4.8.8-beta.1 <p>First beta release of Textpattern 4.8.8 (aka <code>Textpattern 4.8.8-beta.1</code>).</p> <ul> <li>Maintenance release with support for PHP 8.1, security enhancements, general<br> improvements and bug fixes.</li> <li>Security: to be advised (many thanks, Paul Ritchie at Pentest Limited).</li> <li>Fixed: More robust numeric searches.</li> <li>Fixed: Improved query efficiency of category operations.</li> <li>Fixed: Required parameters after optional in tag builder (thanks, phiw13).</li> <li>Fixed: Admin-side pagination when sorting by non-unique values.</li> <li>Added: Natural search mode.</li> <li>Added: Random form selection.</li> <li>Added: Support for AVIF image format, on PHP 8.1 or higher.</li> <li>Added: Global <code>limit</code>, <code>offset</code> and <code>sort</code> attributes.</li> <li>Added: <code>url_title</code> attribute to <code>&lt;txp:article[_custom] /&gt;</code>.</li> <li>Added: <code>range</code> attribute to <code>&lt;txp:article_image /&gt;</code>.</li> <li>Added: <code>date</code> and <code>time</code> attributes to <code>&lt;txp:if_expired /&gt;</code>.</li> <li>Added: <code>calendar</code> attribute to <code>&lt;txp:posted /&gt;</code> and similar tags.</li> <li>Added: Substring extraction via <code>escape</code> attribute.</li> <li>Added: <code>&lt;txp:items_count /&gt;</code> tag.</li> <li>Added: Expanded conditional 'match' attribute with comparison operators.</li> <li>Added: <code>UTC</code> is now a permitted time zone.</li> <li>Added: Custom date formats.</li> <li>Changed: <code>&lt;txp:category_list /&gt;</code> with <code>children</code> &gt;1 attribute behaviour.</li> <li>Changed: Global <code>escape</code> attribute operates at the items level in lists.</li> <li>Accessibility: Additional <code>aria-label</code> attributes for some internal links.</li> <li>Internal: Removed <code>FOUND_ROWS()</code> which is deprecated in MySQL 8.0.17.</li> <li>Internal: Prefer <code>is_readable()</code> and <code>is_file()</code> to <code>file_exists()</code>.</li> <li>Developer: Added plugin lifecycle events <code>upgraded</code> and <code>downgraded</code>.</li> <li>Developer: Export new article IDs on duplicate.</li> <li>PrismJS 1.24.1.</li> </ul> <p>Final cut of Textpattern 4.8.8 expected 2022 Q1.</p> petecooper tag:github.com,2008:Repository/158617/4.8.7 2021-06-01T15:01:47Z v4.8.7 <p>High priority maintenance release to address functionality and setup issues discovered after 4.8.6 release.</p> <ul> <li>Fixed: Users panel throws error due to missing DB prefix (thanks, prbt2016).</li> <li>Removed: Database user <code>GRANT</code> check during initial setup, which broke some installations.</li> <li>Changed: Context check priority in tags.</li> </ul> petecooper tag:github.com,2008:Repository/158617/4.8.6 2021-05-30T15:45:11Z v4.8.6 <p>DO NOT USE IN PRODUCTION - issues discovered after release, use 4.8.7 instead.</p> <p>Textpattern CMS maintenance release including improvements for PHP 8.0, bug fixes and minor tweaks.</p> <h2>Headlines</h2> <ul> <li>Fixed regression in override form usage in lists (thanks, Christian Rapp).</li> <li>Fixed undefined $article warning when accessing non-existent articles.</li> <li>Fixed error with &lt;txp:output_form /&gt; tag on empty forms (thanks, Adi).</li> <li>Fixed low-privilege users can save immediately after duplicating articles.</li> <li>Latest text translations. Thank you to all our translators.</li> <li>Option to create database during setup.</li> <li>Permission (grants) verification during setup.</li> </ul> <h2>Tag modifications</h2> <ul> <li>Articles can be filtered by keywords more easily.</li> <li>Added: <code>id</code> attribute to <code>&lt;txp:if_different /&gt;</code> tag.</li> <li>Added: <code>db</code> option to the global <code>escape</code> attribute.</li> <li><code>&lt;txp:variable trim&gt;</code> trims its own output (thanks, cara-tm).</li> <li><code>&lt;txp:link_to_next/prev&gt;</code> can return URL or container.</li> <li><code>&lt;txp:page_url&gt;</code> and <code>&lt;txp:if_request&gt;</code> tags are more flexible.</li> <li>Boost power of txp:article(_custom) grouping by date.</li> <li>Deprecate <code>&lt;txp:search_result_date /&gt;</code>. Use <code>&lt;txp:posted /&gt;</code> instead.</li> <li>Remove deprecated break attribute from search_result_excerpt tag.</li> </ul> <h2>Back-end tweaks</h2> <ul> <li>'Assign sections' from Themes panel only selects its own sections.</li> <li>No Edit options in Write panel without appropriate privileges.</li> <li>No disabled update buttons on Languages panel (thanks, phiw13).</li> <li>Search improved when handling numbers. Comparators can also be used for numeric searches.</li> </ul> <h2>Developer goodies</h2> <ul> <li>Permit <code>step=false</code> to hook into explicit empty step callbacks and <code>step=null</code> to indicate 'any step'.</li> <li>Permit <code>$pre</code> to be any text. Opens up arbitrary callback grouping.</li> <li>New <code>articles&gt;multi_edit.$method</code> callback on Articles list panel.</li> <li>User panel callbacks:<br> <code>user&gt;fields</code> and <code>user&gt;from</code> to manipulate the query<br> <code>user&gt;controls</code> to affect the button area<br> <code>user_ui&gt;list.row</code> (pluggable_ui) for adding table data<br> <code>user&gt;steps</code> for plugins to register custom panel-level functionality</li> <li>Diagnostics panel callbacks <code>diag&gt;steps</code> and <code>diag_ui&gt;level</code> for custom plugin steps and functionality.</li> </ul> Bloke