Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 50 million developers.Sign up
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
noopeneron 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.
- Changed: Support
<txp:else />in shortcodes.
- 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.
Textpattern CMS 4.8.0
- Changed: Minimum system requirements increased to PHP 5.5.
<txp:older />tags support pagination ranges.
- Changed: Author's real name is available in
- 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
- Changed: Custom fields support from/to filtering.
<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.
<txp:if_request />tag for checking server, URL, POST and cookie variables.
<txp:pages />tag for enhanced pagination schemes.
- Added: 'item' attribute to
- Added: 'title' attribute to image tags.
- Added: 'class' attribute to comment form tags.
- Added: 'match' and 'separator' attributes to
- Added: 'month' and 'time' attributes to
- Added: 'pg', 'total' and 'limit' attributes to
- 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: 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
- 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.
<txp:category_list>'sort' attribute respects 'categories' attribute instead of requiring
<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
- 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 https://github.com/textile/php-textile/releases/tag/v3.7.6 for full list of changes in this release (thanks, gocom).
- jQuery 3.4.1.
- PrismJS 1.19.0.
- jQuery File Upload 10.8.0.
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
<txp:older>tags, and add the
evaluateattribute 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).
<txp:output_form>error being thrown (thanks, Summer).
- Fix incorrect
<abbr/>tag in welcome article (thanks, colak).
- 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.
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).
<txp:if_request />tag for checking server, URL, POST and cookie variables.
- Added global
replaceattribute to swap out content that has been removed by the
- Added 'match' and 'separator' attributes to
- Added 'pg' and 'total' attributes to
- 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).
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!
Textpattern CMS maintenance release v4.7.3 introduces the following feature enhancements, changes and fixes:
<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.
L10n/Lang->languageList()to get language tuples.
- Permit falling back on pophelp in 'lang' database table.
- 'Show password' on Users panel displays both passwords.
- Latest version of Textile (3.7.1).
- 'Export to disk' checkbox state inconsistencies for new assets.
- Logout issue in Classic admin theme.
- A bug when PHP
mbstringextension is disabled.
- Prevent Alt+S from triggering save (thanks, o10154016).
.inifiles trump old
Textpattern CMS maintenance release v4.7.2 introduces the following feature enhancements, changes and fixes:
- Latest translations and languages, including help texts for Czech, French and Italian. Many thanks to all translators.
- 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
- 'test' attribute in
- 'context' attribute in
- 'context' and 'format' attributes in
- 'add', 'reset', 'separator' and 'output' attributes in
- 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:search_input />can be used as a container tag, and also accepts 'aria_label' and 'placeholder' attributes.
- More robust search routes within default public-side theme.
- Improved upgrade route where MySQL
- Enhanced password manager compatibility on login and user details pages.
- Extended fallback to 'C' locale in some situations.
- 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.
- Expanded Schema.org media items within default public-side theme.
- Latest versions of Textile (3.7.0) and jQuery File Upload (9.28.0)
- A bug with
<txp:link_to_[next|prev] />tags in 'month' URL mode.
- A bug with
<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
- Unparsed strings in a few places.
- Maintenance release with bug fixes.
- Fixed: <txp:article /> and <txp:article_custom /> correctly parse their content.
- Fixed: <txp:article /> with 'listform' attribute returns correct value.
- Fixed: Textpack correctly updates timestamp where web server and database server reside in different timezones.
- Fixed: Fallback to 'C' locale in some situations.
- Fixed: Section page/style selectors are correctly populated.
- Fixed: Articles without a URL-only title have a valid permlink across all link formats.
- Changed: Additional code optimization for PHP 5.4 and later.
- Changed: Improved language string coverage in setup process.
- Changed: Extended use of Textpattern 4.7.*-native tags in Four Point Seven theme.
- Changed: Additional database-related information included in Diagnostics.
- Added: Latest translations.
- PrismJS 1.15.0.
- jQuery File Upload 9.22.0.
Textpattern CMS 4.7.0 notable changes:
- In memory of Dean Cameron Allen, creator of Textpattern CMS.
- Changed: Minimum system requirements increased to PHP 5.4.0.
- Textpattern instances older than version 4.2.0 (released 17 Sep 2009) should upgrade to version 4.2.0 before upgrading to version 4.7.0.
- Added: Support for website themes, markup stored within the database (accessed via the Themes panel) and available as flat file templates for easier version control, portability and installation (many many thanks, NicolasGraph).
- Added: Support for installation on Nginx web servers (thanks, makss).
- Added: Support for automated installation from CLI (thanks, makss).
- Added: Filipino language translation (thanks, Joseph Buarao).
- Added: Tagalog language translation (thanks, Kurt Lem Zamora).
- Added: User-selectable column list options in tables replaces 'Show more detail' checkboxes. Settings remembered per device.
- Added: Valueless attributes.
- Added: Optional short-tags.
- Added: Ability to use Forms as tags via <txp:output_form /> or <txp::shortcode /> tags.
- Added: Tag global attributes: 'breakby', 'breakclass', 'class', 'escape', 'html_id', 'not' and 'wraptag'.
- Added: <txp:article_custom /> tag can count pages.
- Added: <txp:evaluate /> tag.
- Added: <txp:header /> tag allows optional setting of HTML headers on page output.
- Added: <txp:if_logged_in /> tag.
- Added: XML and JSON file support. Completely overhauled setup procedure to centralise and verify/delete preferences on upgrade. Table structure and preferences defined in files for easier maintenance (thanks, makss).
- Added: Per-user admin panel language preference (decoupled from site language preference).
- Added: All users can administer their own key biographical info.
- Added: Ability to copy an article without enforced save.
- Added: Button to swap width and height values on image edit thumbnail generator.
- Added: Ctrl+S/Cmd+S keyboard shortcuts for Submit, Publish and Save buttons on any admin panel.
- Added: Multiple Files and Images upload with progress meter.
- Added: Section searches by description.
- Added: Visual indicator that a subset of search fields are in use.
- Added: One-pass comment searches by parent article (thanks, makss).
- Added: Diagnostics can optionally suppress sensitive path data.
- Added: 'Expire now' checkbox on Write panel.
- Added: Automatic table of contents generation for well-structured plugin help text.
- Added: JSON-LD and Open Graph metadata scaffold included with default theme.
- Removed: Involuntary Personally Identifiable Information within comments (IP address) and logs (IP address/host) no longer collected - for GDPR compliance.
- Removed: Any pre-existing IP addresses stored in comments database table are deleted upon upgrade to 4.7.0 (and not stored in future) - for GDPR compliance.
- Changed: Comments 'Remember me?' option is now an opt-in instead of opt-out, setting stored in localStorage instead of as a cookie - for GDPR compliance.
- Changed: Revised multi-site installation routine and symbolic linking (thanks, jools-r).
- Changed: Most panels perform saves/searches/pagination without page refreshes (Ajax).
- Changed: Last used Page/Form/Stylesheet remembered.
- Changed: Forms can recursively (up to 15 levels deep) call themselves.
- Changed: <txp:breadcrumb /> can be used as a container tag, and accepts 'type' attribute.
- Changed: Enhanced <txp:article /> sort and status handling.
- Changed: Enhanced <txp:article_custom /> 'exclude', 'expired', 'month' and 'time' attributes.
- Changed: <txp:category_list /> can output nested lists.
- Changed: <txp:if_category /> accepts 'parent' attribute.
- Changed: <txp:image_author /> tag accepts 'id' and 'name' attributes.
- Changed: txp:link_to_next/ and <txp:link_to_prev /> are more consistent.
- Changed: Reinstate txp:keywords tag and add 'break', 'class' and 'wraptag' attributes.
- Changed: Deprecated <txp:image_display /> and <txp:image_index /> tags, use <txp:image /> and <txp:images />, respectively, instead.
- Changed: <txp:newer /> and <txp:older /> tags accept 'rel' attribute.
- Changed: <txp:output_form /> tag supports user-defined attributes, coupled with txp:yield.
- Changed: <txp:page_title /> tag SEO - site name renders after page name, default separator changed from ': ' to ' | ', page numbers added.
- Changed: <txp:page_url /> tag can return more URL paths via 'type' attribute.
- Changed: <txp:site_url /> tag accepts 'type' attribute to return admin-side URL.
- Changed: Deprecated the 'poplink' attribute on <txp:thumbnail /> tag.
- Changed: txp:yield tag accepts 'name' and 'default' attributes.
- Changed: Pagination tags (like <txp:newer /> and <txp:older />) can be placed before <txp:article /> tag.
- Changed: Image Edit panel available to all users - read-only to some (thanks, phiw13).
- Changed: Textfilter options and help topics moved inline with their textareas. Write panel 'sidehelp' twisty and article>sidehelp callback removed.
- Changed: Categories moved from Sort & Display subpanel to their own twisty. Override Form (if used) moved to 'Sort and display' subpanel. 'Advanced' twisty and its callback removed.
- Changed: Languages are updated automatically on upgrade.
- Changed: Further improvements to RTL language support.
- Changed: Language translations included in core instead of legacy RPC server.
- Changed: Diagnostics and tag trace reports always rendered in English (for easier international support enquiries). Text strings moved to 'mode.ini'.
- Changed: Use local inline help files instead of legacy RPC server. Help topics rendered in dialogs instead of new window (thanks, makss).
- Changed: Use JSON file to check for new releases/pre-releases instead of legacy RPC server (thanks, makss).
- Changed: Cleanup of panels/UI elements shown based on specific user roles.
- Changed: Plugin Textpacks stored in database and installed on demand.
- Changed: Plugins have persistent data column available for custom storage.
- Changed: Clearer plugin list on Diagnostics panel.
- Changed: Article posted/modified info and ID moved below Title field.
- Changed: Enable HTTP 226 responses (thanks, da2x).
- Changed: Make Preferences panel and subpanels fully printable (thanks, phiw13).
- Changed: Panel states stored only client-side (localStorage).
- Changed: pluggable_ui() behaves more intelligently when chaining.
- Changed: Pagination steps are more grid friendly: 12/24/48/96 items.
- Changed: More locale-aware date handling in safe_strftime().
- Changed: Deprecated support for uploading .swf files via Images panel (support will be removed entirely at Textpattern 4.8.0).
- Changed: Extensive admin theme image optimizations.
- Changed: Admin theme accessibility improvements.
- Changed: Admin theme layout improvements on small devices.
- Changed: Pagination and search added to Plugins panel.
- Changed: Plugin preview page syntax highlighting and layout improvements. Also show Textpack string additions preview (if applicable).
- Changed: Removed 'Create ...' links from Pages/Forms/Styles panels when viewing a new, unsaved Page/Form/Style (thanks, adi).
- Changed: Categories can no longer reassign the parent of a child element to its children. Avoids infinite tree loops.
- Changed: Article preview includes debug info.
- Changed: 'wraptag' attribute can prepend/append content using special '<+>' syntax.
- Developer: 'ahu' constant as multi-site-compatible URL to admin side. Plugin authors please use ahu in place of hu.'textpattern'.
- Fixed: Multi-site setup overhauled: Correct setup and install messages, diagnostics information, login URL in user-invite email, login cookie accessible to public and admin URLs (thanks, jools-r).
- Fixed: SQL injection in 'qty' attribute (thanks Manuel Garcia Cárdenas).
- Fixed: Keyboard navigation on select list popups.
- Fixed: Only update database version string if using release version.
- Fixed: Support for other MySQL client versions (thanks, CeBe).
- Fixed: URL handling for /title and /year/month/day/title (thanks, planeth44).
- Fixed: Panel layout improvements across all privilege levels.
- Fixed: Per-user preferences exposed to all users (thanks, gaekwad).
- Removed: zxcvbn password strength meter.
- Textile 3.6.
- jQuery 3.3.1.
- PrismJS 1.14.0.
- PHPass 0.5.
- jQuery File Upload 9.21.0.
A massive thank you to all coders, collaborators, translators, documentors, supporters and community folk who have contributed so much to this release. You help make Textpattern what it is today.
Release Candidate 1 for Textpattern 4.7.0.
Notable changes since third beta:
- Include new translations - thank you once again to all translators for keeping pace.
- Add preamble to Languages panel regarding translations.
- GDPR compliance:
<txp:comment_remember>now forgets for good (destroys cookie) and defaults to 'off'.
- No collection of IP when a user leaves a comment.
- No logging of IP/host and no reverse DNS lookups. General hit logging capability still retained, just without Personally Identifiable Information being collected (thanks, Destry et al).
- Logs panel operates via AJAX.
- Fix upgrades from 4.5.x. It's even possible to jump from 4.2.0 directly, although it's safer to do it in two or more hops with 4.2.0 and 4.5.7 as the stepping stones (thanks, gaekwad and phiw13).
- Improve article sort values for complex conditions.
- More consistent link to next/previous.
- Using the shorthand
<txp:article>tags assumes any published status (live/sticky currently).
- Permit any file type to be handled from the Styles panel (js, svg, txt, ...) if the hidden
assets_mimetypespref is set with a list of supported file extensions (thanks, colak).
- Public theme tweaks to include Facebook OpenGraph and JSON-LD metadata (thanks, gaekwad).
- Fix multiple notifications being trashed by newer ones when doing a series of file-based actions (thanks, gaekwad).
- Visual tweaks such as higher contrast ratios and visual weight to improve readability.
- Fix some GIF uploads (such as animated GIFs) throwing warnings if the transparent colors were out of range.
- Remove 'Copy' link from articles panel for now as it's not so pretty. Copy capability retained via URL manipulation (e.g. so plugins can step in).
- Permit pophelp on link headings - reinstate the pophelp on the Custom Fields group (thanks, gaekwad).