[TASK] joinTSarrays() is replaced by array_replace_recursive()

\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::joinTSarrays is
replaced by the PHP native array_replace_recursive() (added in PHP 5.3.0)
which does exactly the same and is twice as fast.

Usage of $cObj->joinTSarrays() is deprecated.

Change-Id: I748270a192bccc89927e0d6b82a1f405959b2209
Resolves: #54520
Releases: 6.2
Reviewed-on: https://review.typo3.org/26500
Reviewed-by: Ernesto Baschny
Tested-by: Ernesto Baschny
[BUGFIX] EM does not always show description

When an extension (like rsaauth) has configuration options in the
extension manager, the description is not shown as a tooltip when hovering
over the extension name. Then it will only show 'Configure'. Which is not
so helpful.

The ConfigureExtensionViewHelper can be modified to not add a title
attribute on the link. This will ensure that the title attribute of the td
is shown.

Change-Id: Ie6de8033545856cbe4a3689366e05d5d2ad3dc7b
Resolves: #54689
Releases: 6.2
Reviewed-on: https://review.typo3.org/26615
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
[BUGFIX] Allow NULL values in INSERT queries

Currently only UPDATE queries pass the $allowNull parameter to the
fullQuoteStr() method in the DatabaseHandler. To make the behavior of
both methods consistent and to allow NULL values during creation of
new records by TCEmain the $allowNull parameter is also set to TRUE for
INSERT queries.

Resolves: #53662
Releases: 6.2, 6.1, 6.0
Change-Id: I066b9880a557b6c9058fc15f467631f1313300f9
Reviewed-on: https://review.typo3.org/25422
Reviewed-by: Philipp Gampe
Reviewed-by: Frans Saris
Tested-by: Frans Saris
Reviewed-by: Xavier Perseguers
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[BUGFIX] Set uid of BE_USER mock in functional tests

Datahandler functional tests lack proper initialization of the
BE_USER mock used.

Set a 'uid' for the mock in order to get tests working again.

Resolves: #54741
Releases: 6.2
Change-Id: I20cccf8d3622b2c63d6b7c9f07c0e2d238bea7b9
Reviewed-on: https://review.typo3.org/26642
Reviewed-by: Oliver Hader
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[TASK] Cleanup convertParameterReflectionToArray()

ReflectionService::convertParameterReflectionToArray() checks
functions already returning boolean again for boolean value.

Remove this overhead and improve readability.

Change-Id: I113f16cd73c713da5ec75b0e57eeee1d0e17308c
Resolves: #54021
Releases: 6.2
Reviewed-on: https://review.typo3.org/25717
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[BUGFIX] Replace reference to Security Cookbook with Security Guide

Section "TYPO3 Security" refers to the TYPO3 Security Cookbook, which is
obsolete and has been replaced by the official TYPO3 Security Guide in
December 2011. This patch removes the reference to the Cookbook and
replaces it by a link to the latest version of the Security Guide on
docs.typo3.org.

Resolves: #54756
Releases: 6.2
Change-Id: I4067d40e854e7d4b4f77e2c12239e3e00616f5a7
Reviewed-on: https://review.typo3.org/26656
Reviewed-by: Michiel Roos
Tested-by: Michiel Roos
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Fix dependencies for non-composer extensions

The method packageRequirementIsComposerPackage of
TYPO3\CMS\Core\Package ignores all non composer package
names and thus dependency resolving of non composer packages
doesn't work.

This patch adapts the behavior to ignore just the platform
package links described here
http://getcomposer.org/doc/02-libraries.md#platform-packages

Fixes: #54142
Releases: 6.2
Change-Id: Idb6a837eebf792c6cbf9394885edc17c9d392a9f
Reviewed-on: https://review.typo3.org/26619
Reviewed-by: Stefan Froemken
Tested-by: Stefan Froemken
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[BUGFIX] PageBrowsing ViewHelper defines unused method argument

The PHP-Doc comments for the render-method in PageBrowsing 
Viewhelper on Indexed Search define a $details argument 
for that method with is then not part of the method arguments 
itself.

As it seems to be unused the argument definition should simply 
be removed from doc comments to dont mess up the defintions 
of the other arguments.

Right now this results in maximumNumberOfResultPages be defined 
as array and causes a fatal error like:
The argument "maximumNumberOfResultPages" was registered with 
type "array", but is of type "string" in view helper 
"TYPO3\CMS\IndexedSearch\ViewHelpers\PageBrowsingViewHelper"

Resolves: #54807
Releases: 6.2, 6.1
Change-Id: I58376880ef64a1e1088561fbdb3ff25f9c1fbdc2
Reviewed-on: https://review.typo3.org/26676
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[BUGFIX] Repository uses wrong property to calc current result page

In the IndexedSearchRepository on line 157 an undefined/unused 
property $this->resultsPerPage is used for the calculation 
of the current page the visitor is showing on search results.

Instead of using $this->resultsPerPage we have to use 
$this->numberOfResults which is defined and contains the expected setting.

Change-Id: I37c3a08c1049eb6166704b2b98ba071f03aad243
Resolves: #54808
Releases: 6.2, 6.1
Reviewed-on: https://review.typo3.org/26677
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[TASK] Clean up uses of fe_adminLib properties

Two Core tables (fe_users and index_config) still use the
"fe_admin_fieldList" property, which has no effect on the
Core since the fe_adminLib.inc was moved out of it
(into the statictemplates extension).

Additionally a deprecation message is logged in method
ExtensionManagementUtility::addTCAcolumns() when the $addTofeInterface
argument is set to TRUE.

Resolves: #54613
Releases: 6.2
Change-Id: I7c9961c5e92411a78bd355519a0493eb695177e7
Reviewed-on: https://review.typo3.org/26567
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Oliver Klee
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Francois Suter
Tested-by: Francois Suter
[TASK] Superfluous comparison in DatabaseRecordList

Fix superfluous comparison against boolean in
DatabaseRecordList::getTable

Change-Id: Icdbf78935da4135a7c6b4902b97c87e7ce658eb8
Resolves: #54049
Releases: 6.2
Reviewed-on: https://review.typo3.org/25736
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Superfluous comparison in indexed_search

Change-Id: I1934a6201876290b706078519e934e05c28352ab
Resolves: #54053
Releases: 6.2
Reviewed-on: https://review.typo3.org/25740
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Jo Hasenau
Reviewed-by: Michiel Roos
Tested-by: Michiel Roos
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Adapt indexes of sys_file_reference

The backend and frontend fire several queries for referenced
files - files with metadata overlay as used in tt_content for
images and media field as well as in pages:media.
Analysing the queries for that some indexed should be added
to improve the query speed on large installations.

This patch adds indexed for the table/fieldname combination
as well es the uid of the record the file is attached to.

Resolves: #54725
Releases: 6.2
Change-Id: I229e27e382e8d0fdaf9bbc0b6729f90dac019e19
Reviewed-on: https://review.typo3.org/26626
Reviewed-by: Steffen Ritter
Tested-by: Steffen Ritter
[TASK] Optimize columns in sys_file_reference

MySQL up to version 5.5 allows at maximum 64 characters for table- 
and fieldnames. Other DBMS allow less. Since MySQL is our primary
database and DBAL could handle specialties.

This patch changes the fields tablenames, fieldname and table_local
to varchar(64) which currently is considered save.

Resolves: #54726
Releases: 6.2
Change-Id: Ic67450a9326dceb413fe694a6233b8c092f70c79
Reviewed-on: https://review.typo3.org/26625
Reviewed-by: Steffen Ritter
Tested-by: Steffen Ritter
[TASK] Improve performance of array_merge_recursive_overrule

The method GeneralUtility::array_merge_recursive_overrule()
always works on a copy of the given array(s). This is highly
inefficient when it comes to really big arrays and recursion.

This patches moves the functionality into the class ArrayUtility
and changes the behaviour to use a reference to the
original array.
All calls in the core are adjusted accordingly.

Furthermore we deprecate the method in GeneralUtility and
preserve backward compatibility.

Resolves: #54251
Releases: 6.2
Change-Id: I5499905593c2124897de5998be985e546a3d05ee
Reviewed-on: https://review.typo3.org/25986
Reviewed-by: Michiel Roos
Tested-by: Michiel Roos
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Ernesto Baschny
Tested-by: Ernesto Baschny
[TASK] Use arrays in str_replace() calls

Multiple consecutive calls to str_replace can be replaced with a single
call if the subject is the same.

This will speed up the replacement and in some cases has the benefit of
being able to return or use the result of the str_replace directly without
creating an intermediate variable.

Bad:
$lala = 'something';
$lala = str_replace('so', 'the', $lala);
$lala = str_replace('me', ' ', $lala);
$lala = str_replace('thing', 'other', $lala);

Good:
$lala = str_replace(
  array('so', 'me', 'thing'),
  array('the', ' ', 'other'),
  'something'
);

Change-Id: I1a2b99cce1444d3d2191eba8674f74aa2f74f0e8
Resolves: #54500
Releases: 6.2
Reviewed-on: https://review.typo3.org/26481
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[BUGFIX] Render ext icon in EM only if available

Even if the ext icon is required, it can happen that it is still not
there. Currently this leads to an ugly output which can be easily
fixed by just checking if the icon is there.

Change-Id: I207a93bb796510fba6096085a86f1dd832100e06
Resolves: #54838
Releases: 6.2
Reviewed-on: https://review.typo3.org/26693
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Cleanup ContentObject\ContentObjectRenderer

Implement early return for many methods.

Change-Id: I7e0c8549037f4ab15ee8653d124891bad655db83
Resolves: #54823
Releases: 6.2
Reviewed-on: https://review.typo3.org/26687
Reviewed-by: Oliver Klee
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Functional tests cannot write to backend log

Functional test cases cannot write to the backend log. The
log entry also has an information about the currently used
IP address, which is taken from the environment variable
REMOTE_ADDR. In a CLI disposal this value is NULL and cannot
be stored in the database, since the accordant sys_log.IP
field does not support NULL values.

Fixes: #54849
Releases: 6.2
Change-Id: If6c572c62ab7022a4cab596fa4660dec754aee3c
Reviewed-on: https://review.typo3.org/26697
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Installer fails when no database is selected

Display an error message, if the selected database name is empty.

Resolves: #54569
Releases: 6.2
Change-Id: Idbf768d7edc0e5d5e1d0faf87d62e1060c70b1e9
Reviewed-on: https://review.typo3.org/26544
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Oliver Klee
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind