$TCA[<table>]['interface']['showRecordFieldList'] contains a list
of fields that is used for visualizing
* accordant element details (record info)
* differences in the workspaces detail view

Fields that are treated as category should appear automatically.
If using CategoryRegistry::add() in extensions, the option
property "interface" can be used to disable this automated
handling in the interface section - in that case it needs
to be FALSE.

The old class loader has API to return the original class name
when given an alias. This API was not respected when implementing
composer class loading with #64361 with the result that it was
broken for all classes and aliases managed by the composer class loader.

To address this issue, the composer class loader is now injected into
the old class alias map, so that it can resolve class names from aliases
managed by it.

The unit tests for the new expression chunking do not cover every
possible case. The tests are improved to avoid further regressions
in the new expression chunking. For a better understanding, the
expected WHERE conditions are written in the comments of some
non-obvious tests.

ExtJS 3.4.1 used in the TYPO3 Core does not ship browser detection for
Internet Explorer 11. Because IE 11 uses "Gecko" in the user-agent
string to be detected as a modern browser, ExtJS treats IE11 as Gecko
browser which leads to various problems with JavaScript features that
are not part of IE.

For financial and licensing reasons, TYPO3 cannot update to ExtJS 3.4.2
which includes the detection. Therefore, this change adds IE 11 detection
to ExtJS. ExtJS now returns true for "Ext.isIE" and "Ext.isIE11" and
false for "Ext.isGecko".

When DBAL is installed, it was not possible to save NULL values to database, but
TCA fields with mode=useOrOverridePlaceholder fields strongly requires this.
Without the possibility to store NULL to database, "useOrOverridePlaceholder"
would always override the original value.

If you separate the list of programs by new line (as suggested in the
Install Tool description), the programs aren't found.
The problem is that the newline is saved as string component by
the Install Tool. Therefore the new line separator (LF) has to
be replaced before splitting the value.

[BUGFIX] Update misleading help text about deprecated/removed features

This patch corrects misleading help texts about deprecated curl*
functions such as curlProxyServer, curlProxyTunnel, curlProxyUserPass and
curlTimeout. The texts claim, these settings have been removed in 6.2,
which is not true (they are still used and required).

If no field of a table can contain a reference by its TCA definition
do not fetch record from this table at all. For tables with fields
which can possibly contain references fetch only these fields instead
of all.

Cache list of fields which don't have to be checked in the local member
'nonRelationFields' instead of recreating the list for each and every
record.

Don't try to update references for tables sys_log, sys_history and
tx_extensionmanager_domain_model_extension since they cannot contain
references and usually have a big amount of records.

Introduce some early returns to make code more readable.

Improves performance for both bulk inserts and updating the reference
index from the command line.

If you have more than 1000 missing files within file relations in
tt_content.image and pages.media an infinite loop pops up, because
always the same records are fetched from database. This patch stores
the uids of failed records for each table to prevent the infinite loop
and restart processing after timeout.

The GeneralUtility::llXmlAutoFileName() method will now also correctly
handle paths to files that are not placed within a known directory
(ext, sysext, etc.) if the call is made with $sameFile = TRUE.
This allows placing language files in arbitrary storage.

This change finally re-enables the usage of locallang files in TypoScript
or f:translate-ViewHelpers which use the XLIFF format and are not placed
within an extension.
This has always been working with files in the XML format.

The element information show rows for the data from
the special fields crdate, cruser_id and tstamp also if they
are not defined in TCA. They are also hardcoded and
doesn't rely on the settings in TCA ctrl.

If creating a new parent record that contains inline child
records as part of a FlexForm configuration, the resulting
reference count is the temporary "NEW..." identifier. The
expected result is to have the number of child references
in that case as well.

The MIME type is stored in a field "mimetype" in the drivers, while the
field is called "mime_type" in the database. As the file object deals
with both when retrieving the type, it must respect this mismatch.

Doing a composer install directly in typo3 source has been
a requirement for core development for a while and a convenient shortcut
to quickly set up a TYPO3 installation for executing tests for extensions.

Respecting the class loading information generated in that location is
unfortunate however as it would require editing of the core composer.json
if additional classes from the core should respected.

Instead of respecting this as valid composer autoload file location,
we always fall back to the hard coded and committed class loading info
if no autoload file of a composer distribution call is found.

The SelectViewHelper tries to resolve the value and label
field as long as options are of type object, i.e. domain
objects but that functionality must also exist for arrays
because their structure is similar to objects.

If you add a page link to a field which is defined as softrefs, the
ReferenceIndex creates an index to a FAL record if there exists a file
record with the page id. As file links are always prefixed with 'file:'
this patch adds a proper check before generating a file ref_index.

Because the functional tests of impexp extension still use a hardcoded
file path for the header_link field the patch corrects the value to
refer to a file.

Furthermore if you add a file or folder link, the field is referenced
twice for the FAL record. So we have to suppress the softreference for
those records.

Due to FAL checks it's not possible to link to a file:// resource as
external link. This patch checks for correct "file:" prefix for FAL
relations and allows the use of file:// as external link scheme.

Furthermore a Javascript error is resolved which prevents the closing
of the Element Browser in Chrome.

Adds a font size to the button text, so the button text in the
"send stage" windows in the workspace dialogs used in the
frontend become visible again. Also, a background color is
added to the top buttons to fix the "cut".

To stay inline with the File List, the popup from the list
should display info of a File and not of the File Metadata. Otherwise,
it will display misleading information for the End User such
as different creation / modification date.

[BUGFIX] Set correct workspace ID when updating referenceIndex for files

When publishing a workspace the referenceIndex entries of the affected
sys_file_reference rows were not updated with the new workspace. That's
because the user is always in the affected workspace and therefore
the workspace is not set to live as expected.
Now updating referenceIndex for both workspaces when swapping.

To prevent a duplicate '/' in a filepath the function
LocalDriver::getAbsolutePath should be used instead of
concatenating strings by hand.
This fixes also an issue that file uploads are not
possible on windows machines due to a incorrect filepath.

When creating new backend users from the intall tool, any
character is now accepted for the username. Whitespaces get
trimmed and uppercase is converted to lowercase.
This is already the case for TCA of be_users.username

If you add a page link to a field which is defined as softrefs, the
ReferenceIndex creates an index to a FAL record if there exists a file
record with the page id. As file links are always prefixed with 'file:'
this patch adds a proper check before generating a file ref_index.

Furthermore if you add a file or folder link, the field is referenced
twice for the FAL record. So we have to suppress the softreference for
those records.

The introduction of domain record cache with #24389 introduced a regression.
Previously if multiple domain names were found for one subtree,
the domain name which matched the current host name was preferred.
After the introduction of the cache, only the first domain record was
considered.

This patch properly checks the domain records against the current domain
in use and selects the most appropriate one.

In a rare case it may happen that the install tool created a session
file in typo3temp/InstallToolSessions and later those files can not
be written or updated due to permission problems.
The install tool then fails silently without error message.
Since write out of session data happens in __destruct() a proper
error message can not be created at this point anymore. Solution
is to "test write" the session file after opening it and throw
an exception if that fails.

Due to the use of intval within array_walk a warning is triggered,
because array_walk calls the function with two parameters where intval
only expects one. This patch replaces the array_walk function with
DatabaseConnection::cleanIntArray.

The ReferenceIntegrityUpdateWizard looks for existing FAL file references.
If you start the Upgrade Wizard without any database update before, FAL
tables don't exists yet and the database request returns a non array
value. As the Wizard expects an array to be returned without proper
casting, a warning is thrown.

Setting an option like cacheDirectory for cache_classes or
cache_core triggers a fatal if calling the install tool.
This happens because the install tool calls the bootstrap
loadConfigurationAndInitialize() with $allowCaching = FALSE
which then calls disableCoreAndClassesCache() and sets the
backend of both caches to NullBackend. The cacheDirectory
option however is not supported by this backend.
Solution is to unset any options configured for these caches
within disableCoreAndClassesCache().

If you try to add a new folder with empty name or an error during the
file upload happens, a FlashMessage is generated and added to the
FlashMessageQueue but not display within the ElementBrowser. The patch
adds output of the FlashMessageQueue above the navigation.

When a CommandController in an extbase extension has been registered,
but the class does not contain the string "CommandController"
an exception will be thrown. Before this patch, this exception
will never show up.

This patch adds the output of exception's message in Scheduler module,
which gives the developer a hint why the "add new task" form is not
displayed properly.

Also it extends the exception with description why the class name is invalid.

The Acronym button will be enabled even when no acronym record exists.
The Abbreviation tab will be shown even if no acronym record of this
type exists; in such case, the predefined abbreviation fieldset will not be shown.
However, the Acronym tab will not be shown if no acronym record of this
type exists. If the current selection is empty and not within an abbr
tag, the Abbreviation fieldset will not be show. If the current
selection is empty and not within an acronym tag, the Acronym fieldset
will not be show.