Features #
Every LoveStack feature brought into Exponential 6.0.15, with what an upgraded installation
gets and what a new installation gets. All of them are available in 6.0.15. The
overview has the details of each: who it is for, its
settings, how to switch it on, its test and the LoveStack commit.
"On" means active without any setting; "off" means available, but inactive until you switch it
on.
Security and sessions #
| ID | Feature | For | Upgrade | New installation |
|---|
| L01 | The node data calls ezjscnode::load, ::subtree, ::updatepriority can require the policy ezjscore / call with the function ezjscnode (RequirePolicy) | administrators | off (RequirePolicy=disabled) | on; the Editor role gets the policy |
| L02 | Registering can require the User / Register policy (PolicyOmitListExclude[]); login pages show the register link only to those who may register | administrators | off (registration open, as before) | on (PolicyOmitListExclude[]=user/register) |
| L03 | Logging out ends the session and expires its cookie | everyone | on | on |
| L04 | One account per login: exp:user-login-check reports duplicates, --fix-index adds the unique index | administrators | report available; index added on request | index in the schema |
| L05 | Uploaded images checked by their content against AllowedMIMETypes[] (SVG not listed) | everyone | on | on |
| L06 | The same check for package thumbnails and style package images | administrators | on | on |
| SameSite | LoveStack's [Session] SameSite read when CookieSameSite is not set | administrators | on | on |
Diagnostics and logging #
| ID | Feature | For | Upgrade | New installation |
|---|
| L07 | PHP deprecations get their own debug level and var/log/deprecated.log, counted, not kept in memory | administrators, developers | on (DeprecatedLog=enabled) | on |
| L08 | Log file size and rotation in site.ini [FileSettings] | administrators | 2 MB, 3 files | 2 MB, 3 files |
| L09 | A warning names the template operator and parameter without a default value | developers | on | on |
| L10 | The edit link format of the debug output's list of used templates (UsedTemplateEditUrl) | developers | the usual link | the usual link |
| L11 | Database exceptions carry the driver's error number | developers | on | on |
| L12 | A warning when the cache threshold turns a clear into "clear all" | administrators | on | on |
Content, datatypes and the administration #
| ID | Feature | For | Upgrade | New installation |
|---|
| L13 | Audit events for adding, removing and changing the main location | administrators | remove on (as before); add and main change off | the same |
| L14 | Site data in templates for listed names; Setup > Site data | developers, administrators | nothing listed; admin list there | the same |
| L15 | A Copy button on the admin full view | editors | on | on |
| L16 | Alternative text can be required per image attribute | editors, administrators | off for every class | off for every class |
| L17 | A text line attribute can trim its stored value | editors, administrators | off for every class | off for every class |
| L18 | A PHP class can make object names and URL alias names ({MyResolver}) | developers | off until a class is listed | the same |
| L19 | Class filter type default for fetches (DefaultClassFilterType) | developers | empty (as before) | empty |
| L20 | The Locations window no longer forces "Visible" | editors | on | on |
| L21 | Selection and matrix values without stray line breaks | designers | on | on |
Rich text editor #
| ID | Feature | For | Upgrade | New installation |
|---|
| L22 | Custom tags that exist but are not offered for new tags (IsHidden[]) | administrators, editors | none hidden | none hidden |
| L23 | Controls on a focused custom tag (move, edit, remove, keys), labels and previews (CustomTagControls) | editors | off | on |
| L24 | The sub/sup custom tag dialog closes on OK | editors | on (was already the case) | on |
Developer APIs and settings #
| ID | Feature | For | Upgrade | New installation |
|---|
| L25 | eZURI::build() | developers | available | available |
| L26 | eZMailTransport::send( $mail, $transportType ) | developers | available | available |
| L27 | rawurlencode and rawurldecode template operators | developers | available | available |
| L28 | [Include <pattern>] inside settings files | administrators, developers | only where a file has such a line | the same |
| L29 | Response headers per HTTP error page (HeaderList[]), also from the view cache | administrators | none set | none set |
| L30 | The ezjscore search sorts by ezfind.ini [SearchSettings] SortBy[] | administrators | the same order as before | the same |
| L31 | The layout design key for node views; setKeyValue() | designers, developers | on | on |
URLs and search #
| ID | Feature | For | Upgrade | New installation |
|---|
| L32 | Request addresses decoded once (DecodeOnce) | administrators | off | off |
| L33 | The double quote cleaned from IRI URL aliases (TrailingCleanup) | administrators | off | off |
| L34 | The built-in search clamps integers to the column range | administrators | on | on |
| L35 | Relation fields of related objects left out of the search index | administrators | on (Exponential's behaviour since 2018) | on |
| L36 | The hide cronjob updates the search index; the content/cache event carries object ids | administrators, developers | on | on |
PHP 8 review #
LoveStack's fixes for PHP 7.2 to 8.3 were reproduced one by one on PHP 8.5 and 8.1, each as a
regression test. Most were already handled in Exponential; the ones that still failed are fixed
for every site. Site by site: PHP8-REVIEW.md.
Already in Exponential, and not brought over #
See the overview: Already in Exponential and
Not brought over, and why.