[TASK] getFilesInDirCanOrderByMtime-test should use vfs

As the other tests in GeneralUtilityTest also
getFilesInDirCanOrderByMtime() should use vfs.
Otherwise we might run into random problems if some
mtimes are equal.

Change-Id: Ic5ad10bd5beedb26c00d48602ebd5455525e4826
Resolves: #56121
Releases: 6.2
Reviewed-on: https://review.typo3.org/27717
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
[TASK] getFilesInDirCanOrderByMtime-test should use vfs

Follow-up for PHP 5.3 compatiblity.

Resolves: #56121
Releases: 6.2
Change-Id: I948eb3063c2e6b014b8d69c2011789c7dbe58748
Reviewed-on: https://review.typo3.org/27719
Reviewed-by: Michiel Roos
Tested-by: Michiel Roos
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[TASK] Add framework for frontend rendering functional tests

To ensure that actions in the backend have an accordant and
correct impact in the frontend, a frontend request needs to
be triggered from the functional test execution.
The response of that simulated frontend request shall be
delivered as JSON, exceptions need to be caught and
forwarded to the test suite as well. Besides that, it is
required to have a possibility to set up TypoScript
configuration, modify TCA and TYPO3_CONF_VARS for further
hook processing.

Resolves: #55882
Releases: 6.2
Change-Id: I54d475e8f1ce01fd7cb8c64b68c2318b1e9f7bbe
Reviewed-on: https://review.typo3.org/27413
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[TASK] Enable DataHandler frontend rendering tests

After having performed changes to data structures using the
DataHandler, the correct impact for the frontend needs to be
asserted. This patch checks the correct behavior for DataHandler
action tests for regular, MM and IRRE disposal.

Resolves: #56104
Releases: 6.2
Change-Id: I99f11f6b039c31e08614caf8ee9bca9d47700b93
Reviewed-on: https://review.typo3.org/27711
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[BUGFIX] Categories as exclude field

When a table is marked as being categorizable, the
categories field is added with an "exclude" flag
hard-coded to 0. Thus it is not possible to hide
this field for editors.

This patch changes the default value to 1 and makes
overridable.

Resolves: #53454
Documentation: #55718
Releases: 6.2
Change-Id: Iff2431b4294b8d3b9cf3dff291186e1a6a2ebafb
Reviewed-on: https://review.typo3.org/27373
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Francois Suter
Tested-by: Francois Suter
[TASK] Optimize GeneralUtility::trimExplode()

This often used method can be about 5% more performant by rewriting it.

Change-Id: Iee80a35ebd98c3521a75977bc7ab45d170858e24
Resolves: #55198
Releases: 6.2
Reviewed-on: https://review.typo3.org/27086
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[FEATURE] Introduce MM_oppositeUsage property

On copying a sys_category record, a new MM reference is created,
however without setting the "fieldname". This value is basically
defined from the opposite entity with MM_match_fields, but
cannot be accessed.

This change introduces the MM_oppositeUsage property for MM
definitions in the TCA.

Example:
'config' => array(
  'allowed' => '*',
  'MM' => 'tx_myextension_first_second_mm',
  'MM_oppositeUsage' => array(
    'tt_content' => array('somefield'),
    'tx_myextension_domain_model' => array('some_property'),
  ),
),

Resolves: #56061
Documentation: #56123
Releases: 6.2
Change-Id: I26fd54688cf44d6a026ccdb3ca9276583b32acd3
Reviewed-on: https://review.typo3.org/27677
Reviewed-by: Wouter Wolters
Reviewed-by: Ernesto Baschny
Tested-by: Wouter Wolters
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[BUGFIX] Use MM_oppositeUsage for category relations

The MM_oppositeUsage property allows to apply match fields
of the opposite relation to MM records. This feature shall
be enabled for sys_category records as well.

Resolves: #56122
Related: #56061
Releases: 6.2
Change-Id: I33c9f3c471d66c4154be5c2fb5180254401096f0
Reviewed-on: https://review.typo3.org/27731
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[BUGFIX] Category localization cannot be rendered

Localized sys_category records cannot be rendered in frontend,
since only records with a positive pid value are overlaid -
however, sys_category is stored on the root-level.

Resolves: #56059
Releases: 6.2, 6.1
Change-Id: I211dad5086adf30723ef4f44757fe6a3121ac29e
Reviewed-on: https://review.typo3.org/27673
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[BUGFIX] moveContentRecordToDifferentPageAndChangeSorting fails

In a workspace, an existing content record is moved to an
existing page. Another existing record is moved after the
previously moved record on the target page. The Functional
Tests show, that the content records are faulty after the
processing and the first content record disappeared.

A similar behaviour has been discovered for pages which finally
lead to the regression causing this bug in issue #33104. Back
then a hook has been introduced for moving page records and
post-processing the database values. However, this hook has
been called for all move operations for any table and was wrong
in terms of the expected specific problem to be solved.

The hook gets reverted, since it's sufficient to resolve move
placeholders if a record shall be created after an existing one.

Resolves: #55573
Releases: 6.2
Change-Id: Ie5cbc95daf4d46f4204cf18e80e17ff4fa37f496