[BUGFIX] Presets cause fatal error during last installation step

This patch restructures the PresetInterface and AbstractPreset usage to
prevent any inheritance which causes a fatal error in some PHP versions.

Resolves: #52886
Releases: 6.2
Change-Id: I2505234d41f0a2da2ba49a895fa23c7a8ffa89ac
Reviewed-on: https://review.typo3.org/24837
Reviewed-by: Markus Klein
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
[BUGFIX] Class "\extDirect_DataProvider_BackenduserSettings" not found

A error message is displayed in the Backend. Replace the old class name
with its new name.

Change-Id: Id88b5ff3d315362e7eaf64cc1f33a74b7fd2a84c
Resolves: #52880
Releases: 6.2
Reviewed-on: https://review.typo3.org/24829
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Unit tests for devIP condition

Cover the condition feature of issue #50092 with some test to
verify expected behaviour.

Change-Id: I116fb22f9ac0d6b1b869afe7844f38d235cdd39a
Resolves: #52887
Related: #50092
Releases: 6.2
Reviewed-on: https://review.typo3.org/24838
Reviewed-by: Nicole Cordes
Tested-by: Nicole Cordes
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Follow-up: Preserve vendor name in refering request

Change-Id: I7101206dad7f2137d23dccd4c013bd4a32a2faf6
Resolves: #52900
Releases: 6.2
Reviewed-on: https://review.typo3.org/24846
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Suppress empty tag names in output of array2xml

If a tag name is empty GeneralUtility::array2xml must not output that
tag at all.

Resolves: #52529
Releases: 6.2, 6.1, 6.0
Change-Id: Ib075feac25e5ba06884436db6d4be69cc428a43d
Reviewed-on: https://review.typo3.org/24841
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
[BUGFIX] TCA: sys_file_reference:title exclude = 1

Make the title field of sys_file_reference excludable so
it can be hidden in the BE.

Resolves: #49501
Releases: 6.2
Change-Id: Ifad9213e9d46a41287d2d907aec77b6c2ae8a6be
Reviewed-on: https://review.typo3.org/24444
Reviewed-by: Chris topher
Tested-by: Chris topher
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] CategoryCollection must handle multiple relations

Since #51921 it is possible to have multiple fields for defining
relations to categories. The CategoryCollection and the
categories-based page menu are now adapted to handle this correctly,
instead of retrieving records for relations defined in all fields.

Resolves: #52285
Documentation: #52302
Releases: 6.2
Change-Id: I156528669704004a86243e03f34d3a1af07cdb21
Reviewed-on: https://review.typo3.org/24066
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Fabien Udriot
Tested-by: Fabien Udriot
Reviewed-by: Francois Suter
Tested-by: Francois Suter
[BUGFIX] Getting the identifier for a lazy object fails

Using PersistenceManager::getIdentifierByObject doesn't work for lazy
object since version 6.1, because the function uses the session object
directly. Before the Backend::getIdentifierByObject was used, which
handles lazy objects right.
Solution: use the Backend again.

Resolves: #50548
Releases: 6.2, 6.1
Change-Id: I8381a968f730918b96b6764d3f62bfc5f58509ee
Reviewed-on: https://review.typo3.org/22696
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Daan Wissing
Tested-by: Daan Wissing
Reviewed-by: Marc Bastian Heinrichs
Tested-by: Marc Bastian Heinrichs
[FEATURE] Wizard to add OpenID to backend user

Adds an OpenID wizard button to the be_user's tx_openid_openid field.

The wizard allows to enter an OpenID URL, processes the OpenID login
and finally sets the OpenID in the backend user edit form and
backend user settings form.

This helps registering OpenIDs of providers that hand out different
claimed OpenID URLs for each domain, like Google does.

Resolves: #49310
Releases: 6.2
Change-Id: I953bcfc0df640dc7632f4b78b43f7945606cb7e9
Reviewed-on: https://review.typo3.org/21621
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
Reviewed-by: Helmut Hummel
Tested-by: Fabien Udriot
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[BUGFIX] Follow-up: Fix broken test in CategoryRegistryTest

Since I156528669704004a86243e03f34d3a1af07cdb21 CategoryRegistryTest
is broken, because argument $options of CategoryRegistry::add
is a required array now. But the method throws an exception
if the argument type doesn't match.

Keep argument typing and remove invalid argument exception
(and corresponding unit test).

Resolves: #52910
Related: #52285
Releases: 6.2
Change-Id: If7d8e51f8fcc0cd9bf579186d768c835837787ef
Reviewed-on: https://review.typo3.org/24860
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[BUGFIX] Improve database connection smooth migration wizard

This patch adds support for local database connections over ips applying
to mask 127.xxx.xxx.xxx as specified in RFC 790. Additionally the
support for non local host connections is improved by setting a default
port independent from host name.

Resolves: #52687
Releases: 6.2
Change-Id: I2ddde8241003b78aee8a196ed4bd5dd78e3d20cb
Reviewed-on: https://review.typo3.org/24553
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
Reviewed-by: Alexander Opitz
Tested-by: Alexander Opitz
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Add unit tests for FilesContentObject

This patch adds unit tests and some small bug fixes for
TYPO3\CMS\Frontend\ContentObject\FilesContentObject class.

Resolves: #52864
Releases: 6.2
Change-Id: I871844518aed876fca0b378d91209eb568c1561b
Reviewed-on: https://review.typo3.org/24816
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Tests for Persistence\Generic\Backend::getIdentifierByObject

Change-Id: Idb00a92469672e907286024ec461f0b8ee98c6c9
Resolves: #52570
Releases: 6.1, 6.2
Reviewed-on: https://review.typo3.org/24440
Reviewed-by: Marc Bastian Heinrichs
Tested-by: Marc Bastian Heinrichs
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Missing ENABLE_INSTALL_TOOLs permissions let us loop

If we can't touch ENABLE_INSTALL_TOOL or recreate it as we have not
enough permissions in typo3conf/ we will have an endless loop.

Fixing by not calling createInstallToolEnableFile(), the user must
update the file manually or fix the permissions which are shown as
error in the installer.

Resolves: #52744
Releases: 6.2
Change-Id: Ib3ad316b90f1971dc6b71a35d15a06783f927f7a
Reviewed-on: https://review.typo3.org/24672
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Exclude central Modernizr from concatenation

Modernizr is added to every "page" in the backend
as a default in DocumentTemplate. By default all JS
gets merged. Thus Modernizr is added to multiple
files.

Reduce the size of JS-files and allow browsers to
take advantage of reusing that code by having this
library as a separate part.

Change-Id: If18ca423ac3b4b1347c1319189d0feb019f37b7f
Resolves: #52931
Releases: 6.2, 6.1, 6.0
Reviewed-on: https://review.typo3.org/24878
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[FEATURE] Custom active tab in RTE element browser

Introduce a flag that prevents the element browser of rtehtmlarea
from overwriting the active tab that was set by a hook object.

Resolves: #49036
Releases: 6.2
Change-Id: Iebfda39714caa98c0d2023992bbf63a2f5b9b01a
[TASK] Non extension dirs in llXmlAutoFilename

Allow non extension dirs (e.g. fileadmin) in
\TYPO3\CMS\Core\Utility\GeneralUtility::llXmlAutoFilename()

Fixes: #34728
Releases: 6.2, 6.1, 4.7, 4.5
Change-Id: I073f42ec8b6d733246151df331201031187e1baf
[FEATURE] Allow escaping of dots in TypoScript key

This patch allows the use of backslashes to escape
dots in TypoScript keys, for example:

my\.escaped\.key = test

will result in a single key "my.escaped.key" with the
value "test".

Resolves: #29461
Releases: 6.2
Change-Id: If830c67c4a35ec023b03f208e1c7131ce57b27b8
[BUGFIX] Correct order of key / field deletion

Prevent a SQL error when deleting a key and the field belonging
to the key in the install tool at the same time.

Therefore the order for deleting keys and fields is changed from
field first and key second to key first and field second.

Resolves: #50450
Releases: 6.2
Change-Id: I30aff6ea6c2bf01dec6197eec8fd3aa7306cfcbb
[BUGFIX] Prevent exclude field mixup in FromEngine

Use a local variable for storing the excluded fields in the
FormEngine to prevent the configuration from being overwritten
by the inline form element renderer.

Fixes: #47359
Releases: 6.1, 6.0, 4.7, 4.5
Change-Id: I5a7a2de16d767f854b4d3f89d599deec28266092

Conflicts:
	typo3/sysext/backend/Classes/Form/FormEngine.php