[BUGFIX] Illegal string offset 'translations' in DatabaseRecordList

The return value of TranslationConfigurationProvider->translationInfo
normally is an array, but it is a string in case of an error.
Move the line below the is_array() check, because it is only needed
inside.

Fixes: #47103
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: Ia781eae987d9295bc2b299f83c087669c96dfd00
Reviewed-on: https://review.typo3.org/21459
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
[BUGFIX] Incorrect grouping of exclude fields in translated backend

If you use the backend in a language other than English, then the
grouping of the exclude fields in the be_group record is messed up when
flexform fields are included.

E.g. in a German backend, all tt_content fields are grouped below pages.

Sort the table names beforehand and afterwards all fields inside each
table.
Besides the patch converts some variables names into meaningful ones.

Fixes: #47839
Related: #34098
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: I28ebc69d5cfc0316bdf44558276d3e939d011c2d
Reviewed-on: https://review.typo3.org/20523
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
[BUGFIX] Fix JS error with Context Sensitive Help

Using the edit form for records in a new pop window leads
to a JS error, as "top" is not defined in the new window.

Resolves: #26588
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: I2eab83a2c9df2fed13fd5bcc1c829bf4f2b9a055
Reviewed-on: https://review.typo3.org/21547
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Illegal string offset warning in AjaxLoginHandler

After logout $GLOBALS['BE_USER']->user['uid'] is checked.
This is done without isset() which triggers a warning, as ->user is unset,
if the logout was successful.

Resolves: #49327
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: Ia13af7f2a75090050113ff6a5d388b790df0bab1
Reviewed-on: https://review.typo3.org/21572
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Flexform field is available but not passed to sub-function calls

This change fixes three occurrences of calls to FlexForm DS
processing methods which accept a $fieldName argument but in
the current state of the code is given an empty string instead
of the $field variable which exists in all three contexts and
contains the proper value.

Passing the field name along to these sub functions allows hook
subscribers to use the field name - among other things. In any
case this fixes an unexpected behaviour turning it into an
expected one.

Resolves: #49331
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: I078b0734f3bfa74a9acd61773c5c380f091286f8
Reviewed-on: https://review.typo3.org/21578
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Insert rows only once in exec_INSERTmultipleRows

For native handler types multiple rows can be inserted using the mysql
INSERTmultipleRows API call. When another handler was used, the operation
was done twice, due to a missing else after the native handler condition.
This resulted in two database records for every INSERT statement.

The patch adds the missing else branch for the condition, preventing
the second run that was only meant to handle non-native handler types.

Change-Id: Ibab98a0c73b379bac063c8d1c19e30e93f38faf4
Resolves: #48220
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Reviewed-on: https://review.typo3.org/21407
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Incomplete backup in befuncTest

Backport of tests of issue #47839 did not take care of a backup
of globals in 4.7 and introduced a side effect to other tests.
Those backups are automatically done in higher core versions,
so the fix affects 4.7 only.

Change-Id: I5db0c82ad1e95ed1c271cfa25dbc2a38c5af5d25
Resolves: #49355
Related: #47839
Releases: 4.7
Reviewed-on: https://review.typo3.org/21606
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] compressJs returns wrong filenames

If you enable
    config.concatenateJs = 1
    config.compressJs = 1
then the uncompressed version of the file is linked.

This does not change much, because compression is disabled and the files
will always be uncompressed, however the right link should be generated.

The allows extension to override the compress method and implement
compression without fixing the rest of the code.

The bug is a regression introduced with: #27694 (4.6).

Return the correct filename by overriding the filename with the returned
value of compressJsFile.

Resolves: #48213
Related: #27694
Releases: 6.2, 6.1, 6.0, 4.7
Change-Id: I1f65576db8084b54f9e5a13947ced258eef893d7
Reviewed-on: https://review.typo3.org/21411
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[TASK] Improve error message in NotFoundView to identify source

The error message before this change would only report the
action name, after this change it will reflect the controller and
extension name as well.

Set to apply to all maintained version since this changes no functions
whatsoever - it only improves error feedback.

Resolves: #49519
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: I61dc32a4542b8664ca9443414278e983bc181c4a
Reviewed-on: https://review.typo3.org/21735
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] RTE: Importing google webfonts breaks style sheet parsing

Problem: Firefox raises a security error because the file is not in the
same domain as the executing script. Probably a Firefox bug since the
file certainly has adequate headers: the font are indeed displayed in
the RTE.

Solution: Since the Webfont style sheet does not contain any css rules
anyways, we will catch the error, and if it is a security error, log it
to the Javascript console (or Firebug) and silently continue. Re-throw
any other type of error.

Resolves: #49648
Releases: 4.5, 4.7, 6.0, 6.1, 6.2
Change-Id: I225152ad5d84de50f29d3830be6f1f3e10f249c8
Reviewed-on: https://review.typo3.org/21863
Reviewed-by: Stanislas Rolland
Tested-by: Stanislas Rolland
[TASK] Travis: Speedup cloning of repos

Make use of the additional parameters of git clone
to vastly reduce the amount of data transfered when cloning the
repositories.

Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: Id0c5f3a4ed7ee0bdeb6053c6e0dc606362909d1e
Reviewed-on: https://review.typo3.org/22059
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Add support for "outdated" extensions

Extension Manager displays installed extensions which are marked as
"outdated" with different styling. Reports module also checks for
installed and available "outdated" extensions.

Change-Id: I3050f3f7142e4153954f1b7f76b4bf64a3066223
Resolves: #49350
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Reviewed-on: https://review.typo3.org/21730
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
[BUGFIX] requestUpdate sensitive to spaces

The TCA property "requestUpdate" is sensitive to spaces, although this
is documented nowhere. Indeed "foo1, foo2" will not work whereas
"foo1,foo2" does. This patch strips spaces from the "requestUpdate"
string before testing it.

Resolves: #42789
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: I340090e93e7b8645493f8db0c8c374cb1227f684
Reviewed-on: https://review.typo3.org/22187
Reviewed-by: Francois Suter
Tested-by: Francois Suter
[BUGFIX] Form email validation is case sensitive

Form email-validation is using a regular expression which is
case-sensitive.

Backporting the changes from 6.x would be a too large change.
But adding case-invalid check for the regex is okay.

Change-Id: Ib1449198f66f023a01c9791e74eb2d634abd77df
Resolves: #43924
Releases: 4.7
Reviewed-on: https://review.typo3.org/22117
Reviewed-by: Ernesto Baschny
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] requestUpdate sensitive to spaces

The TCA property "requestUpdate" is sensitive to spaces, although this
is documented nowhere. Indeed "foo1, foo2" will not work whereas
"foo1,foo2" does. This patch strips spaces from the "requestUpdate"
string before testing it.

Change-Id: Ifbb1fe5be59077207316e48204d65a978592f878
Resolves: #49872
Related: #42789
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Reviewed-on: https://review.typo3.org/22312
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[BUGFIX] Fix PHP warning trigged in initFEuser

TypoScriptFrontendController::initFEuser() calls
$GLOBALS['TYPO3_DB']->cleanIntList() with a possible NULL argument.
This leads to a PHP warning in GeneralUtility::trimExplode().

Resolves: #42921
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: Id33ee8fe5e4177716af6ce8c9084e098b86c280c
Reviewed-on: https://review.typo3.org/22340
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[RELEASE] Release of TYPO3 4.7.13

Change-Id: Ic2f442392d7e8bf6c49760ffefd46da5a3475e3a
Reviewed-on: https://review.typo3.org/22522
Reviewed-by: TYPO3 Release Team
Tested-by: TYPO3 Release Team
[TASK] Set TYPO3 version to 4.7.14-dev

Change-Id: I7a5fb1585d1ecb33b1ac2fea8df57ed0b9c0d835
Reviewed-on: https://review.typo3.org/22523
Reviewed-by: TYPO3 Release Team
Tested-by: TYPO3 Release Team
[TASK] Revise typo3/sysext/README.txt

* Replace GIT repository link with the new one
* Remove information about submodules

Change-Id: I60db762ce831c7edea413d9f7780a5617b7f9e96
Resolves: #50410
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Reviewed-on: https://review.typo3.org/22558
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Remove empty .gitmodules file

With removal of git submodules the .gitmodules file is empty
and can be removed now.

Change-Id: I453f63c0852825b46e9ea62f87385d9eace25134
Resolves: #50480
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Reviewed-on: https://review.typo3.org/22613
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
(cherry picked from commit 643f2e9cef2e7997e2c7ae5b8d8bbf279d9983c1)
Reviewed-on: https://review.typo3.org/22616