[BUGFIX] JavaScript error in Install Tool

When using toggleButton in "Test setup" a JavaScript
error is thrown because the scrolling handler can only
be used if the fixed footer is available.

Add a check to prevent this JavaScript error.

Resolves: #60577
Releases: 6.3,6.2
Change-Id: Ie7628e83280f6af032b364586cdfb6b386663d9d
Reviewed-on: http://review.typo3.org/31828
Reviewed-by: Stefan Froemken <froemken@gmail.com>
Tested-by: Stefan Froemken <froemken@gmail.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
[BUGFIX] Keep phpunit 4.1 branch

composer.json is configured to fetch latest phpunit 4.x branch.
Since 4.2 was just released stable, it will be used now.

phpunit 4.2 now relies on Ocramius/Instantiator to create mocks
that do not call a constructor during instantiation. This project
was created to cope with a recent security fix in PHP unserialize()
that rendered the old way of creating those mocks invalid.

The instantiator project however has issues with PHP versions
5.3 and 5.6 that lead to some failing tests and need further
investigation.

To not run into this during our next merges, the patch nails
phpunit to 4.1.x for now.

Change-Id: I5feb8346e0713fefe6c8fa899c76d3e040dd1973
Resolves: #60923
Releases: master, 6.2
Reviewed-on: http://review.typo3.org/32115
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
[BUGFIX] Page Tree not always updated after workspace actions

After some workspace actions being performed in the workspaces
module in the TYPO3 Backend, the page tree does not get updated:
* discarding a single workspace version
* performing mass actions which output warnings

Resolves: #59828
Releases: 6.2, master
Change-Id: Ic9fb6613e8647ed351246ea18fcb3696e60ef7b2
Reviewed-on: http://review.typo3.org/31091
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
[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: master, 6.2
Change-Id: I888c83a58d591f57bc2ea75a49fa603a56a7f722
Reviewed-on: http://review.typo3.org/31142
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
[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: master, 6.2
Change-Id: I09970d12ba10e528c150275952ec4c9ff8333a0a
Reviewed-on: http://review.typo3.org/31591
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
[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: master, 6.2
Change-Id: If90511dc4ac2bc3dde6e58570e6bf10e4ac949db
Reviewed-on: http://review.typo3.org/31589
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
[BUGFIX] Correctly parse suhosin configuration

The system environment check does not properly parse the suhosin
configuration option for whitelist.
Fix this by changing the code to be less strict about the actual syntax
of this option.

Resolves: #60925
Releases: 6.3, 6.2
Change-Id: I6797a313cedaaf1895cf7b4fddaae9811341006b
Reviewed-on: http://review.typo3.org/32122
Reviewed-by: Daniel <typo3dev@outlook.com>
Tested-by: Daniel <typo3dev@outlook.com>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
[BUGFIX] Updating "current_version" fails with some DBMS

Updating the field "current_version" fails with some DMBS because
$uidsOfCurrentVersion has too many elements. This patch chunks
the array into multiple parts and updates the uids in each part.

Resolves: #60859
Releases: 6.2, 6.3
Change-Id: If63f855b250bf7c9b6cd7112f60392cfc8ccfd67
Reviewed-on: http://review.typo3.org/32065
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Tested-by: Markus Klein <klein.t3@reelworx.at>
Reviewed-by: Xavier Perseguers <xavier@typo3.org>
Tested-by: Xavier Perseguers <xavier@typo3.org>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
[BUGFIX] Show properties of stdClass object in <f:debug>

Using fluid's <f:debug> to get dumps of json_decode()d objects
does not work currently. The DebuggerUtility shows only properties
obtainable via ReflectionClass, which does not work for stdClass objects.

The patch introduces special handling of stdClass objects, using the
properties that actually exist in the object.

Change-Id: I3845178f6defdbceae4b867f45e5080f23443766
Fixes: #60912
Releases: master, 6.2
Reviewed-on: http://review.typo3.org/32108
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
[BUGFIX] Use defaultMailFromName setting in install tool

The defaultMailFromName setting is not used for sending
the test mails in the install tool.

Resolves: #60758
Releases: master, 6.2
Change-Id: I35e1b887de6b06bb5f301e037d6d412c18ac0b37
Reviewed-on: http://review.typo3.org/31966
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
[TASK] Extend install tool suhosin checks

Extend install tool suhosin checks by
* suhosin.get.max_name_length=200
* suhosin.post.max_name_length=200
* suhosin.request.max_varname_length=200

Resolves: #60356
Releases: 6.2, 6.3
Change-Id: I382e44832918799df58a912e95cd4b0c3f0b81a3
Reviewed-on: http://review.typo3.org/31637
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
[TASK] Prevent Inclusion of MediaWizardProvider* in Base Bootstrap

On every Frontend request, the original media wizard
provider of EXT:cms is loaded, by fetching the
MediaWizardProviderManager and then
an object of MediaWizardProvider is loaded and held
in memory, as this is not needed, but only on pages
where a media is used.

This change moves the instantiation of the providers to
the time when it is needed.

Further modification would be to add the registered
wizards to TYPO3_CONF_VARS[FE][mediaProviders] and
use them directly in the MEDIA object, so the
MediaWizardProviderManager class could be deprecated.

Releases: 6.3
Resolves: #56336
Change-Id: Id466d41fef019449d820b6faec3946ec1c951488
Reviewed-on: http://review.typo3.org/28046
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
[TASK] CGL Cleanup: Fix TYPO3.Strings.ConcatenationSpacing-Sniff

Resolves: #60878
Releases: 6.3
Change-Id: I2cc8ec067adcc66bdd589104d03f20c385e52e99
Reviewed-on: http://review.typo3.org/32071
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
[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: master, 6.2
Change-Id: I2f468a06271f335c491d90d825f7bcef7a9db9f6
Reviewed-on: http://review.typo3.org/31254
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
[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: master, 6.2
Change-Id: Id92bdeaed24d8924285a640f905ffd55db21da4d
Reviewed-on: http://review.typo3.org/31287
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
[TASK] Clean-up source code

Remove new-line at end of file that has been introduced
by accident in commit:7ef6d2c8fddaf2ba01cb820d9abefcb8ead09b17

Releases: master
Change-Id: I0a18755d16aaef4496b21183f870dffbd86ee2c1
Reviewed-on: http://review.typo3.org/32158
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
[BUGFIX] "Illegal mix of collations" in Upgrade Wizard

When directly comparing CAST(... AS CHAR) with a CHAR field (including
VARCHAR and TEXT) whose collation isn't the same as that of the database
connection, MySQL gives an error like this:

> Illegal mix of collations (utf8_general_ci,IMPLICIT) and
> (utf8_unicode_ci,IMPLICIT) for operation '<>'

Wrapping the right side of the comparison in CAST(... AS CHAR) as well
keeps the data unchanged while ensuring that both sides have the same
collation.

Change-Id: Icaec66412d6b6441ae30065ffb92565991e9a1e4
Resolves: #36754
Releases: 6.3, 6.2
Reviewed-on: http://review.typo3.org/32117
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Tested-by: Markus Klein <klein.t3@reelworx.at>
Reviewed-by: Jigal van Hemert <jigal.van.hemert@typo3.org>
Tested-by: Jigal van Hemert <jigal.van.hemert@typo3.org>
[TASK] Missing stdWrap for select.recursive TypoScript property

Processing stdWrap for the select.recursive TypoScript property
has just been forgotten in the original issue #18822 during the
development of TYPO3 4.6.

Change-Id: I34f2ac45e5112fbcc2becf7936f486f0b53d361a
Resolves: #55707
Releases: 6.3, 6.2, 6.1
Reviewed-on: http://review.typo3.org/30043
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Reviewed-by: Stefan Froemken <froemken@gmail.com>
Tested-by: Stefan Froemken <froemken@gmail.com>
Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
[BUGFIX] Avoid DB error on writing to log

The writeLog() function of the ErrorHandler tries to log the IP that
caused the error. On CLI there is no IP hence a NULL value is being
tried to insert into the DB, where the DB field is NOT NULL.

Fix this by casting the IP to a string.

Resolves: #61051
Releases: 6.3, 6.2
Change-Id: Id46e97468bf825307258e907811d5f2c77c62161
Reviewed-on: http://review.typo3.org/32247
Reviewed-by: Helmut Hummel <helmut.hummel@typo3.org>
Tested-by: Helmut Hummel <helmut.hummel@typo3.org>
Reviewed-by: Frans Saris <franssaris@gmail.com>
Reviewed-by: Daniel Hürtgen <daniel@higidi.de>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
[BUGFIX] Make sure all new files are indexed

If the FAL indexer scheduler task finds a index record with
same content hash as a new found file the file isn't added to the
index if it isn't marked as missing.

This patch changes the indexer so that new files with same
content hash are added when no index record is found for a missing
file with same content hash.

Resolves: #60764
Releases: 6.3, 6.2
Change-Id: Ifb7f9e6f48ba327c958a7aa0e0b71f0575cabdf7
Reviewed-on: http://review.typo3.org/32000
Reviewed-by: Frank Nägler <typo3@naegler.net>
Tested-by: Frank Nägler <typo3@naegler.net>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Tested-by: Markus Klein <klein.t3@reelworx.at>