[BUGFIX] Use PATH_site in cache identifier for package cache

The package cache writes paths to extension directories
(TYPO3_LOADED_EXT) into the cache.

This will result in wrong caches when the same
TYPO3 instance is called from a different absolute
directory e.g. from a different mount or symlink.

To avoid this, the cache identifier now includes
PATH_site which is the current absolute path
of the TYPO3 instance.

Additionally we now only include the modification
time of the package states file instead of the
md5 of the complete content into account, which should
be much faster and also enough.

Resolves: #58288
Releases: 6.2, 6.3
Change-Id: I7c8de41c608beab282f2b8bbeab39f257a9a6a6f
Reviewed-on: https://review.typo3.org/31580
Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
[TASK] Fix composer branch alias for 6.2 branch

The composer.json file wrongly configures the
master branch to be aliased to 6.2.x-dev

Fix it by aliasing our TYPO3_6-2 branch to 6.2.x-dev

Releases: 6.2
Change-Id: I89d91aa011cc384e0868913bbbe3add50585866e
Reviewed-on: https://review.typo3.org/31605
Reviewed-by: Christian Opitz <christian.opitz@netresearch.de>
Tested-by: Christian Opitz <christian.opitz@netresearch.de>
Reviewed-by: Helmut Hummel <helmut.hummel@typo3.org>
Tested-by: Helmut Hummel <helmut.hummel@typo3.org>
[CLEANUP] Final cleanup of TCA Overrides

Some of the files still miss the die statement in
the first line. To be consistent, add it to every
file.

One file had a check for TYPO3_MODE === BE which
is wrong in these files because the result is
cached.

If the first hit with empty cache is done in a FE
request, a wrong result would be cached.

Releases: 6.2, 6.3
Resolves: #60317
Change-Id: I839499100da28ba11d5dcbf81fde87b30b61de81
Reviewed-on: https://review.typo3.org/31624
Reviewed-by: Markus Klein <klein.t3@mfc-linz.at>
Tested-by: Markus Klein <klein.t3@mfc-linz.at>
[BUGFIX] Avoid PHP warning in TypoScriptFrontendController

TypoScriptFrontendController throws a PHP warning on access to
$BE_USER->user['uid'] which might not be set.
Fix this by simply adding an empty() check.

Resolves: #60126
Releases: 6.3, 6.2
Change-Id: I7005baf73bce55d862b4b6b61697c2aa0a877c7b
Reviewed-on: https://review.typo3.org/31685
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
[BUGFIX] Send test email in Install Tool as HTML

Explicitly set the format of the email body to text/html.

Resolves: #60251
Releases: 6.3, 6.2
Change-Id: I350b0f4cb9e69cd20dbd439647f56cd9c641b501
Reviewed-on: https://review.typo3.org/31684
Reviewed-by: Pascal Dürsteler <pascal.duersteler@gmail.com>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
[BUGFIX] sys_collection_entries column too small

Set sys_collection_entries to varchar(64). This is the max
table name length on MySQL.

Resolves: #60180
Releases: 6.3,6.2
Change-Id: I253e6eb6cb35db9e6d13a716bfc5c8d89db4ca7e
Reviewed-on: https://review.typo3.org/31698
Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
[TASK] Disable notifications

Change-Id: I245db7b621ecd1d994b833da4a18fe1687a437d0
[BUGFIX] Extbase behaviour concerning workspaces

Issue #26732 introduced some behaviour into Extbase that cannot
work on the long-run. The usual behaviour of TYPO3 is "fetch
live, then overlay". Avoiding that chain might lead to
several side-effects.

This change integrates a new property "_versionedUid" than
contains the specific uid of the versioned record (this is
similar to the already existing _localizedUid property).
Besides that, changes of issue #26732 are reverted.

Functional frontend tests are enabled for live and workspace
for all IRRE ForeignField scenarios.

Resolves: #59107
Releases: 6.2
Change-Id: Idc46fb86830bc3d750972adade178cf9c618ece5
[WIP][TASK] Extract overlay handling to common class

Change-Id: I6af332f1044011ffb84e57398d91a140806b6f03
[BUGFIX] Failing cascaded delete action of localized elements

Having a record in live workspace with an accordant localization
leads to the fact that actions to the default language also have
an impact to all localizations.

In a workspace, first deleting the localization, then deleting
the record of the default language, ends up in actually having
reverted the previous deletion of the localization.

The solution is to check for delete placeholders in
DataHandler::deleteL10nOverlayRecords().

Resolves: #59113
Releases: 6.2, 6.3
Change-Id: I888c83a58d591f57bc2ea75a49fa603a56a7f722
[FEATURE] Ease previewing custom record data in workspace module

Currently only pages, pages_language_overlay and tt_content have
the possibility to open a preview in the website frontend.
A hook needs to be used to open the preview for custom records
(since possibly the location of the rendering plugin and its
page needs to be resolved).

To ease that behaviour a new Page TSconfig setting is added:
options.workspaces.previewPageId

Possibilities:
* options.workspaces.previewPageId = 123
* options.workspaces.previewPageId = field:pid
* options.workspaces.previewPageId.tx_myext_table = 123
* options.workspaces.previewPageId.tx_myext_table = field:pid

Resolves: #59144
Releases: 6.3
Change-Id: I44fffa6fffb1ccc8af79e6dea48415cdf281cb01
[WIP][FEATURE] Rework workspace notification settings

Integrate a more flexible notification behaviour.

Resolves: #35245
Releases: 6.3
Change-Id: Icb680fe85fab61a51d53e3afb94b51a4930e180c
[TASK] Integrate collection selection behavior in workspace module

Since TYPO3 6.2 parent-child structures are visualized in
the workspace module. However, this representation lacks
the possibility to select all elements of that accordant
collection by one click.

A new event "holdclick" is integrated that is fired after
holding the mousedown event for 400ms. This event then
leads to have all records of the collection selected.

The regular mousedown (click) behavior still stays the same.

Resolves: #60010
Releases: 6.2, 6.3
Change-Id: I98d26f125428446157294866484f8be7106b0c51
[TASK] Simplify record icons in workspace module

The record details view renders record icons for both live and
versioned record. However, this representation is shown rather
stand-alone and can be combined with the accordant headers.

Resolves: #60015
Releases: 6.2, 6.3
Change-Id: I2f468a06271f335c491d90d825f7bcef7a9db9f6
[TASK] Possibility to disable grouping in workspace module

The workspace modules uses the ExtJS component GroupingStore
per default to group and nest version by page path. However,
this behavior get unhandy if all versions of all pages shall
be sorted by a particular column.

A new checkbox "group by path" shall be added to the top
columns menu to individually disable/enable this behavior.
Changes to that state are stored with the preferences of
a backend user for the accordant workspace.

Resolves: #60037
Releases: 6.2, 6.3
Change-Id: I8e9a2f3f14870c90ea5988a0182a54b22762390e
[TASK] Refactor file references relations retrieval

The retrieval of file references in BackendUtility
is currently bound to the thumbCode() method but
is useful for other components as well.

Resolves: #60054
Releases: 6.2, 6.3
Change-Id: Id92bdeaed24d8924285a640f905ffd55db21da4d
[WIP][TASK] Missing visual representation of sys_file_reference

Resolves: #60011
Change-Id: I6d22619c264ff0e5411a47b2d566ec2c9b7c2607
[BUGFIX] Wrong nesting of deleted versioned child records

If deleting an IRRE child reference, the nesting leving in the
workspace module is not shown correctly. The reason for that is,
that the sys_refindex entry points to the live id of the deleted
child record.

This change takes care of correct visualization only, but does not
touch the sys_refindex behavior in this case.

Resolves: #59853
Releases: 6.2, 6.3
Change-Id: I09970d12ba10e528c150275952ec4c9ff8333a0a
[BUGFIX] Wrong sys_refindex for deleted child records #2

Workspace actions using the DataHandler trigger a reprocessing
of the reference index. However, it happened that index entries
of the live workspace have been deleted or modified.

The reason for that is a missing SQL statement to limit those
actions to the current workspace only.

The result can be seen in e.g. the workspace module after
having deleted an IRRE child record and how the nesting could
not be determined correctly for that particular record.

Resolves: #59874
Releases: 6.2, 6.3
Change-Id: I850e2fe88999ce8db280d4ef426e43c85fff06da
[BUGFIX] Publishing delete placeholder affects other workspaces

On publishing a delete placeholder all other versions shall be
deleted as well, since the original record will be deleted after
that action. However, this is only valid for the live workspace
and using the legacy version behavior there.

DataHandler::deleteVersionsForRecord() calls
BackendUtility::selectVersionsOfRecord(), but without the
additional, but required, $workspace argument. Thus, all other
versions in other workspaces are deleted as well. The SQL query
to determine versions needs to be limited to either the live
workspace (for legacy versions) and the current workspace.

Resolves: #60249
Releases: 6.2, 6.3
Change-Id: If90511dc4ac2bc3dde6e58570e6bf10e4ac949db