- 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).
Notable changes since second beta:
- Fix syntax errors on PHP <5.6 (thanks, makss).
- Included new language translations - thank you to all translators.
- Staff Writer/Freelancer/Designer saving as Live/Sticky gives better notification feedback (thanks, Pete Cooper).
- Sub-Copy Editor-level users can now modify an article immediately after initial save (thanks, Pete Cooper).
- Categories: can no longer reassign the parent of a child element to its children! Avoids infinite tree loops.
- Fixes and UX improvements for lower privilege level users.
- Margin tweaks for UI elements across devices.
- Checkbox and radio button visual tweaks.
- Make 'new' links consistent throughout the interface.
- Only show 'new' links when on saved Pages, Forms and Styles (thanks, Adi).
- More consistent URL title when duplicating articles.
- Fix Save/Publish button interaction when changing status.
- Hide list options for empty tables.
- Improve panel layout across all privilege levels (thanks, Pete Cooper).
- Tag builder link only appears for authors with sufficient privileges.
- Permit all users to edit per-user prefs.
- Add debug info to article preview step.
- Only show article preview option if privileged.
- Move more panels to Ajax saves.
- Add pagination and search to Plugins panel.
- Fix pagination message when searching boolean values.
- Make search impossible if no fields are chosen.
- Add Textpack preview and tidied plugin preview step.
- Fix installation of language textpacks from plugins (thanks, Adi and jools-r).
- Only show truly active plugins in Diagnostics, and strikethrough plugin status if prefs indicate certain types are inactive (thanks, Uli).
- Alter working theme when saving section asset assignments (thanks, ruud).
- Permit direct manipulation of
$textarrayas an interim fallback for legacy plugins.
- Permit custom field content to be omitted in
<txp:article_custom>based on the
<+>syntax for prepend/append in
<txp:yield>fixes to permit unset attributes.
- Fix Textile use-string-as-array bug (thanks, Pat64).
- Parser performance tweaks.
syncparam to theme callbacks.
- Use correct
txp.prefix for API calls, instead of
Notable changes since first beta:
- Hardened the Languages panel to help prevent form resubmission spamming (thanks, Pete Cooper).
- Added ability to copy an article (from the Articles list panel) without automatically saving it (thanks, cara-tm). This is distinct from 'Duplicate' which does save the clone as Draft with a new title that includes the ID.
relattribute to newer/older tags.
- Improved the Themes update/export multi-edit options to be clearer.
- Fixed blank page on them update if no theme selected (thanks, NicolasGraph).
- Fixed layout bugs on the Themes panel (thanks, phiw13).
- Tweaked layout of upload category buttons on Images and Files panels (thanks, phiw13).
- Fixed alignment of Textfilter drodowns.
- Added a whole bunch of other visual tweaks to improve usability.
- Tightened other language text around the place (thanks, Destry).
- Fixed Diagnostics alert for All Checks Passed (thanks, Adi).
- Removed global attribute fields in tag builder, pending overall tag builder improvements.
- Fixed pagination in plugins using legacy pageby calls (thanks, Adi).
- Fixed order of Form blocks (thanks, phiw13).
- Improved Languages API and reintroduced public
$textarrayto help plugins authors (thanks Adi).
- Permitted multiple language identifiers in a single Textpack (e.g. en, en-us, en-gb).
- Fixed a few stray Textpack string grouping issues.
- Fixed string trim when using the escape attribute's
tidyfeature (thanks, cara-tm).
- Tightened data sanitization and added more defensive coding (thanks, Manuel García Cárdenas).
/titleonly mode and
/year/month/day/titleinterpretations (thanks, planeth44).
- Included new translations - thank you to all translators who work tirelessly to keep up with our code meddling.
Beta release of Textpattern 4.7.0. Please see HISTORY.txt for a full list of changes that will appear in the 4.7.0 stable release.
As this is a beta, code may change between this and the final 4.7.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.7.0 stable release, depending on issues reported.
- Maintenance release with bug fixes.
- Fixed: More complete SQL trace on non-row-based queries.
- Fixed: Update process for filesystem-only releases.
- Fixed: Normalise link text in some tag builder tags (thanks, makss).
- Fixed: Incorrect focus ring styling.
- Fixed: Define Trace in RPC (thanks, Retrax/makss).
- Added: Better cross-browser support for
input type=color(thanks, NicolasGraph).
- Added: Support for printing of admin panels.
- Added: Additional Latvian setup translations.
- Maintenance release with bug fixes.
- Added: A modern interpretation of the 'Classic' admin theme.
- Added: More complete SQL trace (thanks, makss).
- Fixed: New articles only marked modified after modification (thanks, gaekwad).
- Fixed: Silently fail if old files cannot be deleted.
- Fixed: Conditional tags now trigger correctly (thanks, craigerskine).
- Fixed: Missing
sql_now_*preferences (thanks, makss).
- Fixed: Save preference pane states on keyboard focus too (thanks, phiw13).
- Fixed: Avoid
setLocaleerrors if locale unavailable in
langtag attributes (thanks, brachycera).
- Fixed: 'Change author' multi-edit only available to users with sufficient rights (thanks, makss).
- Fixed: Relative URLs in feeds (thanks, hidalgo).
- Changed: Made better use of available screen estate for presentation panel code textareas (thanks, phiw13).
- Changed: Tightened up vertical layout on Forms panel.
- Changed: Put an upper limit on preference group widths for better readability (thanks, phiw13).
CONTRIBUTING.textileinfo has been consolidated into main
- jQuery UI 1.12.1.
- zxcvbn 4.4.0.
- Textile v3.5.
- Improved RTL language support.
- Improved admin side UI.
- Requires PHP 5.3.3 or newer. Compatible with PHP 7 and MySQL 5.7 (thanks Ruud van Melick).
- New tags:
- No more plaintext passwords sent: password reset requests are handled directly on the server.
- One-week validity for new account activation requests by default. Configurable in config.php (see
- Ninety-minute validity for password reset requests by default. Configurable in config.php (see
- Stronger password hashes and strength meter implemented (zxcvbn).
- Performance increases due to cache-friendly public side database queries, parser improvements and reduction of admin-side queries (thanks Ruud van Melick and etc).
- Added: Support for adding other markup languages (for example, Markdown) via plugins.
- Added: Default article publishing status preference.
- Removed: Import panel - the blog import options were obsolete (thanks Ruud van Melick).
- Removed: Commenter IP ban feature - this method of banning is unreliable and becoming obsolete (thanks Ruud van Melick).
- Removed: Modernizr - unnecessary due to Internet Explorer 11 being the minimum Internet Explorer browser requirement.
- Changed: The
/textpattern/theme/directory has been renamed to
/textpattern/admin-themes/for stronger differentiation between this and the public-side
/themes/directory planned for Textpattern 4.7. Additionally prevents breakage of preferences panel caused by old, incompatible themes residing in the previously titled admin theme directory during upgrade.
excludeattribute to exclude articles by a comma-separated
<txp:popup_comments/>can be used as container tags.
rowsattributes. Removed capability to apply an immediate style to the element.
<txp:password_protect />can be used as a container tag.
- Changed: Deprecated
<txp:keywords />tag. Use
<txp:meta_keywords format="" />instead.
- Changed: Deprecated
- Changed: Deprecated
- Changed: Removed Form (article) Preview facility.
- Changed: Removed empty 'About' section from new installs.
- Changed: Tag builder has been reworked as a dialog window.
- Changed: Increased
csssizes in txp_section table.
- Changed: 'Prevent widowed words in article titles' preference defaults to 'No' in new installs.
- Changed: 'Include email in Atom feeds' preference defaults to 'No' in new installs.
- Changed: Detailed debug trace log.
- Changed: Default charset is now
utf8mb4: supports a wider range of characters, including emoji.
- Changed: Removed built-in Gzip compression of RSS feed and Atom feed.
getNextPref()now returns array members
prevwith article data, no longer returns array members
falseif no matching neighbour article exists.
- Developer: Uses
mysqliextension for database access, lose dependency on
- Developer: Uses the
TXP 'now()'function instead of the
SQL 'NOW()'function to create cache-friendly, faster
- Developer: Added jQuery UI library to admin side.
- Developer: Added Prism code highlighting for
<pre><code>to admin side. The following languages are supported (when specified via classnames on the
<code>tag, i.e. using
language-textile. Optional line numbers are also supported when code highlighting, by adding an additional classname of
line-numbersto the parent
- Developer: Added DocBlock documentation comments throughout the source code.
- Developer: Adherence to PSR coding standards where possible.
- Developer: Function signature for
wrapRegion()changed: 7th parameter ARIA
roledropped, as it shouldn't be stated for semantic tags such as
- Developer: Refactored
theme' classes into the
Textpatternnamespace; deprecated their
- jQuery 1.12.4.
- jQuery UI 1.12.0.
Notable changes since beta 2:
- Reintroduced and rewritten the tag builder.
- Reintroduced site name in admin header area.
- Rewritten admin-side layout grid and various UI widgets in Flexbox, which affords better support for RTL languages.
- Many RTL language admin-side improvements.
- Improved layout accessibility for pages, forms, styles panels by moving content-switcher to left-hand column.
- Removed built-in Gzip compression of RSS feed and Atom feed (server compression tools can, and should, handle this task).
- Multi-site bug fixes.
- Minor improvements to public-side theme.
- Various other bug fixes and cosmetic improvements, as reported by beta testers.