[BUGFIX] Unique IDs for pagetree root nodes

To make sure that every ID in the pagetree is unique in pagetrees
with a virtual root node (which is used for normal editors) the
page UIDs of the webmounts are set in the mountpoint property of
the tree nodes. This makes sure that all tree node ids are unique.

Resolves: #57163
Releases: 6.3, 6.2
Change-Id: Ia938a9bf4839524d60056d55c0186196dbd11289
Reviewed-on: https://review.typo3.org/31246
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[TASK] Re-work/simplify copyright header in JS files

This patch replaces the copyright/license header in JS files with a
new, simplified one. The new header does not show the year figure, nor
an author name, and refers to the LICENSE.txt file for the full
copyright information. License is: GPL2 or any later version.

Resolves: #59916
Releases: 6.3, 6.2
Change-Id: I312bd9682fc1cf30ec327ba5d17567a3e9609c7d
Reviewed-on: https://review.typo3.org/31164
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
(cherry picked from commit 1ae7b94b86a64ab6a86d7417a5dfb1f19777ee75)
Reviewed-on: https://review.typo3.org/31248
[BUGFIX] Use correct array structure for EM error messages

The extension manager stores errors (like exceptions that
are thrown while installing an extension) in an array and
passes them to a fluid template.

The array has to be in a defined structure like
$errorMessages[extension name][i] = array(
»       error code,
»       error message
)

Currently, if an extension is installed from ter and an error occurs
while downloading the extension, the code and text are stored directly
under the extension name and therefore the array is not correctly parsed
by the fluid template.

Resolves: #59991
Releases: 6.3, 6.2
Change-Id: Id330f0af2a99ab99cb8b736332cb8506c857716c
Reviewed-on: https://review.typo3.org/31267
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Show errors on distribution installation

When you install a distribution and an error occurred, you get a fluid
error: "Sorry, the requested view was not found."

There is currently no template / view for the action. This patch renders
the error messages as flash messages and redirects to the list view of
distributions where the errors are shown.

Resolves: #59564
Resolves: #59952
Releases: 6.3, 6.2
Change-Id: Ie0e055dfd5620d4e0a08ecf87b2f458e7877ee76
Reviewed-on: https://review.typo3.org/31268
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Fix PHP warning in BackendUtility::getProcessedValue()

BackendUtility::getProcessedValue() fails to initialize a variable which
causes a PHP warning on array access.

Fix this by initializing the variable to array properly.

Resolves: #59994
Releases: 6.3, 6.2
Change-Id: I26711b512a9a7fad40000de6f2de6a2b4a81ac75
Reviewed-on: https://review.typo3.org/31269
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Let live search use getRecordTitle

Live search uses the label configuration from TCA to get the title of a
record. An existing TODO note already suggests to use the method for
this from BackendUtility. Do this now.

Resolves: #59893
Resolves: #59957
Releases: 6.3, 6.2
Change-Id: Ic4aaabed47922863602e770b588fb8dacd9386de
Reviewed-on: https://review.typo3.org/31247
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[CLEANUP] FormEngine: Use getters for global objects

Introduce getters for global objects like TYPO3_DB or LANG.
This patch does not change any functionality.

Resolves: #59775
Releases: 6.3, 6.2
Change-Id: Ia9a4f3adc656927467f2f51207396d9a41befe8c
Reviewed-on: https://review.typo3.org/31271
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[CLEANUP] Update phpdoc for all FormEngine members

Furthermore ensure the initial values are correct.
All usages of the members have been checked such that no violation can
happen if the initial values have been modified.

This patch contains no change in functionality.

Resolves: #59775
Releases: 6.3, 6.2
Change-Id: I4566849bb930535b9fef8d38dba940d6a6fd86cc
Reviewed-on: https://review.typo3.org/31272
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Add action selector in toolbar in workspaces menu

Currently there are two selectors in the bottom toolbar of
the workspace module. One to handle stage changes on selected
elements and one for mass actions (publish, swap, discard) for
the whole workspace. To circumvent this, an additional selector
shall be added for record selections.

Resolves: #59898
Releases: 6.2, 6.3
Change-Id: I5991cc16a65ba5ac473ec380f534379ec925cad3
Reviewed-on: https://review.typo3.org/31273
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Fix RTE width

edit_wideDocument option has been removed with #57295 but it was forgotten
to adjust RTE accordingly.

Wide screens are default now, so we remove the check for this option
also in RTE. Furthermore the settings for small screens are superfluous
too.

Documentation is adjusted as well.

Resolves: #59692
Releases: 6.3, 6.2
Change-Id: I9bb5fc2a892f3de446137856e9fa18317f40b5c1
Reviewed-on: https://review.typo3.org/31274
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Prevent spaces in BE shortcut to be replaced by + char

Due to some changes in Prototype.js the serialized form values
get wrongly escaped with the result that all spaces are replaced
by + chars.

This patch changes the used serialization of the form so the value
is correctly posted.

Resolves: #59950
Releases: 6.3, 6.2
Change-Id: I65d89ab741ae77f5bbef9421923b3878f2295570
Reviewed-on: https://review.typo3.org/31276
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] IRRE records are listed comma separated

IRRE records with foreign_field instead of MM table
are now listed as a comma separated list instead
of wrongly using the number of records as the UID.

Change-Id: Ib1434561ee823d931cc983e103fb58490ca83719
Resolves: #59671
Releases: 6.3,6.2
Reviewed-on: https://review.typo3.org/31281
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Create workspace label placeholder that matches field conditions

If a workspace placeholder record is generated the field, that
is configured as label for a table, is filled with a placeholder.
This is a hardcoded string.
If database field does not allow strings (integer, double...)
a TYPO3 warning is displayed. "... Propably value mismatch ...".
This message is very confusing because the user does not know
where it comes from.

The label should be evaluated against the TCA eval configuration
before it is written to the database.

Resolves: #31757
Releases: 6.3, 6.2, 6.1
Change-Id: I18261359550dcaddaa9bd9ca0dd77f8300e81da9
Reviewed-on: https://review.typo3.org/31283
Reviewed-by: Oliver Hader
Reviewed-by: Sascha Egerer
Tested-by: Sascha Egerer
[BUGFIX] Workspace not always applied in RelationHandler queries

The possibly submitted value to RelationHandler::setWorkspaceId()
is not used for SQL queries to read IRRE foreign field relations.
In that case the current $BE_USER->workspace value is used which
might be different to the requested workspace id.

Resolves: #60053
Releases: 6.2, 6.3
Change-Id: Ib01e4df798ff2e1fcc8c29997f6effb814dc4344
Reviewed-on: https://review.typo3.org/31286
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[TASK] Create a Getter for CacheManager inside Datahandler

At the moment the CacheManager is created by
GeneralUtility::makeInstance(
  'TYPO3\\CMS\\Core\\Cache\\CacheManager'
); within the code. This makes the particular method untestable.

Solution: Create a Getter which creates and returns the instance.
This getter can be mocked.

Resolves: #60059
Releases: 6.2, 6.3
Change-Id: I9f83ec017da94778e542410cc9d03faacddc245c
Reviewed-on: https://review.typo3.org/31289
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[BUGFIX] Two png files should have filemode 664

Resolves: #60065
Releases: 6.3,6.2
Change-Id: I27917fed2a65f9810176b4afa716e8e752d7eff1
Reviewed-on: https://review.typo3.org/31295
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Fix usergroup condition in user TSconfig

usergroup conditions in user TSconfig are currently failing as
the list of groups the user is part of, is not yet compiled when
the TSconfig is evaluated.

This can be fixed by moving the group evaluation some lines upwards,
as this does not influence the remaining code.

Resolves: #59813
Releases: 6.3, 6.2, 6.1
Change-Id: Id3189ea5cd31936bdf538e2bb163ecc2d46ed6a0
Reviewed-on: https://review.typo3.org/31151
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Fix property access for ObjectStorage

When enabling access to the content of ObjectStorages by
integer number, it was overlooked that property access might
be desired too, which has also been working before.

Fix this by not aborting the access when addressing a
non-integer property on ObjectStorages.

Resolves: #59412
Releases: 6.3, 6.2
Change-Id: I59b83ed0bf0c965efcdf0aad9440d634953a221e
Reviewed-on: https://review.typo3.org/31314
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[TASK] Unit tests to addPlugin()

Add unit tests to ExtensionManagementUtility::addPlugin() verifying
the new third parameter $extensionKey is handled properly.

Change-Id: I0257755d0708f12141c78fb97e6e342daf7a6281
Resolves: #60110
Related: #60109
Related: #59414
Related: #59770
Related: #59468
Releases: 6.2, 6.3
Reviewed-on: https://review.typo3.org/31335
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Give extension key to addPlugin() in registerPlugin()

With patch #59770 ExtensionManagementUtility::addPlugin() signature
was extended to get the extensionKey as parameter in order to not
use $GLOBALS['_EXTKEY'] anymore if possible.
The parameter is used to determine correct path to plugin icons if
the icon path is not given otherwise.
The patch changes extbase ExtensionUtility::registerPlugin() to give
the extensionKey to addPlugin, too.
With this patch registerPlugin() can be used in TCA/Overrides.
Some tests are added to verify the icon path calculation since it is
not trivial to follow the code flow with all its options and global
array access.

Change-Id: I2dd709ef7ca304bc8c4fda1e7911f18bfe7ad04c
Resolves: #60109
Related: #59770
Related: #59468
Related: #59414
Releases: 6.3, 6.2
Reviewed-on: https://review.typo3.org/31336
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters