v4.9.0-beta.1
Pre-release
Pre-release
·
770 commits
to main
since this release
First beta release of Textpattern 4.9.0 (beta.1)
- Feature release with support for PHP 8.4.0+, new functionality, security enhancements, general improvements and bug fixes.
- Changed: Minimum system requirements increased to PHP 5.6 (PHP 8.2+ recommended).
- Changed: Minimum system requirements increased to MySQL 5.5 (MySQL 8.0+ recommended).
- Changed: Removed 'noopener' from target="_blank" links (now default behaviour in all supported browsers) (thanks, phiw13).
- Changed: Removed 'aria-label' attributes where 'title' already exists.
- Changed: Deprecate
<txp:search_result_count />. Use<txp:items_count />instead. - Fixed: Improved support for images with EXIF orientation metadata (thanks, jools-r).
- Fixed: Avoid directory traversal when uploading plugins (thanks, bg1).
- Fixed: Compiled plugins upload on PHP 5.
- Fixed: Windows-generated zip plugins installable on Linux.
- Fixed: Restored empty 'height' and 'width' attributes behaviour of
<txp:image />. - Fixed: Self-closing tag output for html5 doctype to silence validator (thanks, jools-r).
- Fixed: Ignore search in individual article mode.
- Fixed: Take rfc2616 mail headers setting into account for separator.
- Fixed: Sandboxed article/body/excerpt preview (thanks, grozdniyandy).
- Added: Support for PHP 8.2, PHP 8.3.1+ and PHP 8.4.0+.
- Added: SVG image support (thanks, osadl and jools-r).
- Added: Option to define a Content Security Policy header for the Textpattern admin-side via config.php.
- Added: PHPMailer for third-party SMTP delivery. See Admin>Preferences>Mail.
- Added: Multi-edit for changing author language.
- Added: Plugins can be uploaded from a URL by dragging to upload textarea.
- Added: Compiled plugins can be uploaded via Browse... feature.
- Added: Compatible plugin upgrades directly from the Plugins panel.
- Added: Create and install new plugins directly from the Plugins panel.
- Added: Plugin multi-edit option: revert to last installed code content.
- Added: All plugin metadata exposed in the Plugin Edit panel.
- Added: Plugin (zip-only) export feature.
- Added: Support for aggregate window functions in compatible MySQL versions.
- Added: Trailing slash URL preference.
- Added: File download header preference.
- Added: In-use asset counters to the Users panel.
- Added: 'filter' attribute to
<txp:section_list />and<txp:if_section />. - Added: 'level' attribute to
<txp:if_category />. - Added: Activity indicator for long upload processes.
- Added: metaWeblog.newMediaObject for image upload over the MovableType API (thanks, Melonking906).
- Added: Global 'offset' can be set by URL parameters.
- Added: 'lang' attribute to
<txp:page_url />. - Added:
<txp:if_items_count />tag. - Added: Reload language packs from disk.
- Added: Shift+Space shortcut for 'Tab' indent in textareas.
- Added: Input length tooltip when appropriate.
- Added:
<txp:date />tag. - Added: Global 'variable' attribute.
- Added: 'alias' attribute to
<txp:evaluate />. - Added: 'parent' attribute to
<txp:category />. - Changed: Plugins of all types trigger verify step (with improved security).
- Changed: File Edit panel has the ability to rename and delete files, and change the download counter value (thanks, adi).
- Changed: Image Edit panel has the ability to delete images.
- Changed: In-use languages can not be deleted.
- Changed: Image tags can take HTML attributes.
- Changed: Less collision-prone custom fields name processing.
- Changed: Do not generate empty syndication feeds for feedless sections.
- Changed: Allow PHP scripting options off by default, and Diagnostics warning.
- Changed: Introduce primary keys for all database tables, replacing some old indexes.
- Changed: Category & section description field sizes increased to 1023.
- Changed:
<txp:header />tag requires 'form' privilege. - Changed: Section-aware default search.
- Changed: Extend character set that can be used in tag/attribute names.
- Developer: Introduce UI class library for building interface components.
- Developer: Tag registration is now mandatory.
- Developer: Some of the lesser-used tags are loaded on demand from their class to save memory. Plugins must call them via processTags() function.
- Developer: Add safe_exists() function to database layer.
- Developer: Move $thisversion and $txp_is_dev to constants.php.
- Developer: 'Visitor logs' panel is now bound to the new 'lore' event name (was: 'log') to prevent conflicts with privacy filters.
- Developer: File upload callbacks (file_uploaded and files_uploaded pre+post).
- Developer: Activation emails can be skipped via hidden notify="skip" field.
- Vendors: DOMPurify 3.0.6.
- Vendors: jQuery 3.7.1.
- Vendors: jQuery UI 1.13.3.
- Vendors: PHPMailer 6.9.1.
- Vendors: PrismJS 1.29.0.
- Vendors: Textile 4.1.1. (thanks, gocom).
- Vendors: UglifyJS 3.19.0.