[BUGFIX] Fix message for install tool warning

Fix incorrect message for install tool login attempt warning.

Resolves: #54531
Releases: 6.2, 6.1
Change-Id: I40f34b85ffc554187baf1f2601c578cbaafc5718
Reviewed-on: https://review.typo3.org/26509
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[BUGFIX] getFileIndexRecordsForFolder only works for hierarchical path

The method FileRepository::getFileIndexRecordsForFolder
retrieves the Index Records for files in a given folder using a
LIKE-query. This basically checks if the identifier of the a
folder is part of the identifier of the file.

This concept has several drawbacks. First not all storages are
hierarchical, second this will fail if there is a different
directory seperator than / and finally this fetches records
for the folder recursively which may result in a huge amount of
data if for example the root folder of an storage is queried.

In addition the method resides in the FileRepository while it
retrieves IndexRecords - which is a different concern.

This change introduces the function within the
FileIndexRepository and uses the folder_hash (introduced in
https://review.typo3.org/23398) to query for the files.

The old method is deprecated now, calls the new method and
all core-usages of the old function have been rewritten to
use the new functionality.

Releases: 6.2
Resolves: #53687
Change-Id: Icabf2350192c93951f2277f3aa7468fe958bfabf
Reviewed-on: https://review.typo3.org/26357
Reviewed-by: Frans Saris
Tested-by: Frans Saris
Reviewed-by: Steffen Ritter
Tested-by: Steffen Ritter
[BUGFIX] Folder::getFiles directly calls Factory::createFileObject

Folder::getFiles implements the logic of creating file objects
itself, after retrieving the information from the driver.
Besides the fact that this is slow since all information for the
object are received from the filesystem directly instead of the
cache in the sys_file table the uid is not present in these
objects which finally results in the lack of metadata in these
file objects.

In addition to that ommiting the ResourceFactory several objects
for the same file might exists which may lead to inconsistent
behaviour and output on modifying the file.

As the Folder/File Objects only should be a convinience facade
in front of the ResourceStorage this change introduces a new
method their, implementing the new and improved logic.

At the same time the old functionality - which enforces manual
file object creation - has been deprecated and the filelist
module is adapted accordingly.

Releases: 6.2
Resolves: #53688
Change-Id: I3fb97d432d325bd6400c0ae208b90d702c9f528d
Reviewed-on: https://review.typo3.org/26360
Reviewed-by: Frans Saris
Tested-by: Frans Saris
Reviewed-by: Steffen Ritter
Tested-by: Steffen Ritter
[BUGFIX] isValidUrl() idna converts whole URI

GeneralUtility::isValidUrl() idna converts whole URI instead of
domain only.

The expensive idna_convert() is called from isValidUrl(). Instead of
feeding it just the domain part, the whole URI is converted.

When supplying just the domain part, a great speed gain can be seen.

On seriously malformed URLs, parse_url() may return FALSE and emits an
E_WARNING. So we check for that first.

PHP no longer supports the flags FILTER_FLAG_HOST_REQUIRED and
FILTER_FLAG_SCHEME_REQUIRED. A scheme is now required by default. [1]
Return FALSE if the URL does not start with a scheme.

A public GeneralUtility::idnaEncode() method uses a static idna_convert
instance and fetches converted strings from a string cache array
to avoid multiple checks on the same domain.

All manual idna_convert instances are replaced with
GeneralUtility::idnaEncode() calls.

Special characters are not allowed in the URL except in the domain
part [2]. So the test with special characters in the path was removed
from the GeneralUtilityTest class.

[1] http://www.php.net/manual/en/filter.filters.flags.php#107382
[2] http://tools.ietf.org/html/rfc3986#appendix-A

Change-Id: I7a0ab0a399d9d6cf68c824f413be6b6d621947c1
Resolves: #53862
Releases: 6.2, 6.1, 6.0
Reviewed-on: https://review.typo3.org/25636
Reviewed-by: Markus Klein
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Michiel Roos
Tested-by: Michiel Roos
Tested-by: Markus Klein
Reviewed-by: Andreas Wolf
Reviewed-by: Jo Hasenau
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
[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