[BUGFIX] Raw search can't search inside the pages table

It's impossible to search the pages table, because a field
definition is wrongly named in the pages TCA.

Fixes: #49242
Releases: 6.2, 6.1, 6.0
Change-Id: I0d1b9eeb4ffdfbff456dfc6249cb23853cb9a357
Reviewed-on: https://review.typo3.org/21502
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[FEATURE] Add autofocus attribute to BE login

Adding the HTML5 autofocus attribute to the
backend login box's username field.

Resolves: #49228
Releases: 6.2
Change-Id: I5a00d5ec260ade81fb83553a50358cddf95eaebb
Reviewed-on: https://review.typo3.org/21500
Reviewed-by: Eric Chavaillaz
Tested-by: Eric Chavaillaz
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
[!!!][TASK] Rewrite install tool

Main features:
* The god class "Installer" is gone and split into two major parts.
A step controller handling major upgrade and install tasks, and a
tool controller handling the known install tool actions.

* The step controller is designed to be always called prior to the
tool controller, if a step needs execution, it comes up, otherwise
the tool controller will be executed.

* The entry point typo3/install/index.php is gone and substituted
by typo3/sysext/install/Start/Install.php. The file contains a
lengthy comment to document the main request flow and used GET/POST
parameters.

* Most parts of the install tool do not bootstrap the whole system
anymore, in general only the base bootstrap, dbal (if loaded),
extbase and fluid ext_localconf.php are loaded. This makes sure
the install tool can not fatal if some extensions ext_localconf
is broken. The whole install tool runs without any caching, so a fatal
in some cache file can not kill the install tool execution.

* Installing TYPO3 CMS on a dbal enabled system is now handled in
the step installer directly to make the according code easier to
understand.

* Rendering is done with a simplified fluid standalone view.

* All install tool forms are CSRF protected.

* A new and fully unit tested class structure is introduced, designed
to take care of the basic file and folder structure of the instance.
It is used during installation to create the needed structure and
can be called in the install tool to compare and fix the current
instance structure with the expected structure. In effect, the
"dummy" package is obsolete. An instance can be created by just
linking index.php, typo3_src/ and typo3/ within the document root,
the installer takes care of creating everything else.

* The installation procedure is released from the package handling.
Packages will be handled by the extension manager after initial
installation with another patch.

Loose ends:
* The whole package handling needs to be implemented in the
extension manager.

* Not all upgrade wizards work, this code area needs some love.

* A 'core' auto updater could be implemented now. A GSoC project
is currently running to realize this.

* The SQL schema migration API is a mess and should be refactored.
For now, another helper class is introduced to encapsulate some
of the nasty details.

* An auto configuration and configuration suggestion system is
planned and needs to be done. It should suggest best configuration
options in the install tool, and should auto configure the system
during installation in the last install step.

* If the backend or frontend fatals due to some extension that
triggers a fatal in ext_localconf or ext_tables (for example
due to a require() of a no longer existing file), a small helper
action in the install tool could find those extensions and suggest
to unload them.

Change-Id: Ice3248caa903449ad6a83ea4f234c7bd125bdb66
Resolves: #49162
Releases: 6.2
Reviewed-on: https://review.typo3.org/21468
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Tested-by: Alexander Opitz
Reviewed-by: Stefan Froemken
Tested-by: Stefan Froemken
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Remove duplicate vera.ttf from ext:core

vera.ttf is a font only used in the install tool, it was duplicated
to ext:install with the rewrite patch, but forgotten to be removed
from ext:core along the way. The file is removed from ext:core now
to finish the process.

Change-Id: Ibeb8a459655d51b0d5fd5269060c0a36b47b85fc
Resolves: #49261
Related: #49162
Releases: 6.2
Reviewed-on: https://review.typo3.org/21512
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Filelist: Only show paste buttons if clipObj is set

During introduction of the paste buttons for empty folders, I assumed
that the clipboard object is always set.
This might not be the case, e.g. in EXT:sphinx 4.0.0.

Wrap the paste button code with a check if the clibObj is set.

We can not set the clibObj here, because it depends on variables of the
calling class.

Resolves: #48603
Releases: 6.2, 6.1, 6.0
Change-Id: I2c7c322c9cb994cfdfa1511c96e8c7da143dc77a
Reviewed-on: https://review.typo3.org/21131
Reviewed-by: Alexander Opitz
Tested-by: Alexander Opitz
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Install tool: Code optimization in update wizard action

An if with only a 'throw Exception' call in it breaks code execution
and acts as a guard clause. The code below does not need to be in
an else case.

Change-Id: Ib24ed4bee06763fb46145b815a0b6f3fdf7bafa6
Resolves: #49263
Related: #49162
Releases: 6.2
Reviewed-on: https://review.typo3.org/21515
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Update Wizard user input not taken into account

After reworking the install tool, the form element identifier was broken.

Resolves: #49258
Releases: 6.2
Change-Id: Ia9bae8c23345502ddbd4dd398f523af07dbfa5e1
Reviewed-on: https://review.typo3.org/21510
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Use userInput instead of own broken method

The user data from form post submit is broken after install tool
rewrite. Instead of using own method to gather data changed to
the userInput variable that is set by the calling action.

Resolves: #49260
Related: #49162
Related: #49258
Releases: 6.2
Change-Id: I2ce0b5e4bfcb0ef013039297a9186f0f59413b31
Reviewed-on: https://review.typo3.org/21511
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Install tool: Warning in upgrade wizard

The 'silent' cache framework table upgrade throws a warning that
explode() expects a string but an array is given in
SqlSchemaMigration getStatementArray(). The upgrade wizard uses
a wrong API call, since this method is already called within
getExpectedDatabaseSchema() of the helper class.

Change-Id: I6cdde020265e730faa07a25ebda41917672ccea7
Resolves: #49265
Related: #49162
Releases: 6.2
Reviewed-on: https://review.typo3.org/21516
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Correct permissions of new files

Set the correct file permissions of files created with
FAL according to the fileCreateMask.

Change-Id: I4d6562f926cd79a98c3d6b0545a14915c1d7a766
Resolves: #49029
Releases: 6.0, 6.1, 6.2
Reviewed-on: https://review.typo3.org/21336
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[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/21518
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
Reviewed-by: Stefan Neufeind
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Failing FAL unit test

Using 0042 as create mask for files in unit test from issue #49029
triggers a warning and lets the test fail when the test file is
removed again. Relaxing the create mask to 0642 solves the issue.

Change-Id: I1bfdb344df5160505d853a725584c2a98f30494b
Resolves: #49296
Related: #49029
Releases: 6.2, 6.1, 6.0
Reviewed-on: https://review.typo3.org/21541
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Cleanup wizard initializing

The patch cleans up the initialization of the various
wizards we have in TYPO3 CMS. Things that are improved:

* Add constructor to all controllers
* Move language inclusion to constructor
* Move init() and sometimes printContent() to the constructor
* Make init() protected
* Add controller to $GLOBALS['SOBE']

Change-Id: I9783e347a3bf983fae8b6bbbbc972ecf56f31f83
Resolves: #48963
Releases: 6.2
Reviewed-on: https://review.typo3.org/21293
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[FEATURE] Install tool: Check xdebug.max_nesting_level

If PHP xdebug extension is loaded, TYPO3 CMS can fail with the
xdebug.max_nesting_level default value of 100. This is easily
triggered by fluid, and since we have fluid in the install tool
we need a check that gives an administrator a nice warning if the
nesting level is not set high enough for our demands.

Change-Id: I4812e7f47b04219d380d7454d51b2e6b74436b6d
Resolves: #49298
Related: #49162
Releases: 6.2
Reviewed-on: https://review.typo3.org/21549
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Nicole Cordes
Tested-by: Nicole Cordes
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[FEATURE] Follow up: Add autofocus attribute to BE login

Adding the HTML5 autofocus attribute to the
backend login box's username field.

Additionally adds the attribute to t3skin too.

Resolves: #49228
Releases: 6.2
Change-Id: Ie59a89ae4b4a7d490f1355ce867daa40ea7b2d54
Reviewed-on: https://review.typo3.org/21555
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[BUGFIX] Generation of class information fails with DateTime

If using the class info factory to create a class information
for DateTime an Exception occurs as the reflection api handles
DateTime wrong when reolving constructor arguments. Therefore a
custom class info has to be created.

Releases: 6.2
Resolves: #49307
Change-Id: Ia463776ff992eb0c91bca84710f934ee282355e5
Reviewed-on: https://review.typo3.org/21557
Reviewed-by: Stefan Froemken
Tested-by: Stefan Froemken
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[FEATURE] Add stdWrap for _DEFAULT_PI_VARS

This feature allows multilevel variables as well.

Example:
plugin.tt_news._DEFAULT_PI_VARS {
  year.stdWrap.data = date:Y
}

Change-Id: I49ae6b420f98cf959f95289c99c49d7636a4ba52
Resolves: #22045
Releases: 6.2
Reviewed-on: https://review.typo3.org/14283
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
[BUGFIX] Misleading label in beuser module

Change the wording of "loginBefore" label from
"Login before"
to
"Logged in before".

This should clarify the meaning of this filter.

Resolves: #49318
Release: 6.2, 6.1, 6.0
Change-Id: I1aa15c054630c3f01859fb9ef2a40f3ca0ffad2b
Reviewed-on: https://review.typo3.org/21566
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Frontend shows HTML tags in messages

Hardcoded linebreak tags in StatusMessages were not resolved to
linebreaks, but included into the output.
Replacing the <br /> tags with the nl command using the nl2br
viewhelper on the message output solves the problem.

Releases: 6.2
Resolves: #49266
Change-Id: I07f6dd389df1ce3eedb2b2f957da91f14b8f566f
Reviewed-on: https://review.typo3.org/21551
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
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/21569
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters