[TASK] Extract flex form language handling to compatibility6
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Configuration / DefaultConfiguration.php
index 8de5061..96a4917 100644 (file)
 /**
  * This file contains the default array definition that is
  * later populated as $GLOBALS['TYPO3_CONF_VARS']
- *
- * @author Christian Kuhn <lolli@schwarzbu.ch>
  */
 return array(
        'GFX' => array(
                // Configuration of the image processing features in TYPO3. 'IM' and 'GD' are short for ImageMagick and GD library respectively.
                'image_processing' => TRUE,                                             // Boolean: Enables image processing features. Disabling this means NO image processing with either GD or IM!
-               'thumbnails' => TRUE,                                                   // Boolean: Enables the use of thumbnails in the backend interface. Thumbnails are generated by IM/partly GD in the file typo3/thumbs.php
+               'thumbnails' => TRUE,                                                   // Boolean: Enables the use of thumbnails in the backend interface.
                'thumbnails_png' => 0,                                                  // Bits. Bit0: If set, thumbnails from non-jpegs will be 'png', otherwise 'gif' (0=gif/1=png). Bit1: Even JPG's will be converted to png or gif (2=gif/3=png)
                'gif_compress' => TRUE,                                                 // Boolean: Enables the use of the \TYPO3\CMS\Core\Utility\GeneralUtility::gifCompress() workaround function for compressing giffiles made with GD or IM, which probably use only RLE or no compression at all.
-               'imagefile_ext' => 'gif,jpg,jpeg,tif,tiff,bmp,pcx,tga,png,pdf,ai',// Commalist of file extensions perceived as images by TYPO3. List should be set to 'gif,png,jpeg,jpg' if IM is not available. Lowercase and no spaces between!
+               'imagefile_ext' => 'gif,jpg,jpeg,tif,tiff,bmp,pcx,tga,png,pdf,ai,svg',// Commalist of file extensions perceived as images by TYPO3. List should be set to 'gif,png,jpeg,jpg' if IM is not available. Lowercase and no spaces between!
                'gdlib' => TRUE,                                                                // Boolean: Enables the use of GD.
                'gdlib_png' => FALSE,                                                   // Boolean: Enables the use of GD, with PNG only. This means that all items normally generated as gif-files will be png-files instead!
                'im' => TRUE,                                                                   // Boolean: Enables the use of IM.
@@ -34,13 +32,13 @@ return array(
                'im_version_5' => 'im6',                                                // String: Set this either to "im6" or "gm" (uses GraphicsMagick instead of ImageMagick). Setting this value will automatically configure some settings for use with the specified program version.
                'im_v5effects' => 0,                                                    // <p>Integer (-1, 0, 1)</p><dl><dt>0</dt><dd>disabled</dd><dt>-1</dt><dd>Do not sharpen images by default</dd><dt>1</dt><dd>All; blur and sharpening is allowed in ImageMagick.</dd></dl>
                'im_mask_temp_ext_gif' => 1,                                    // Boolean: This should be set if ImageMagick is version 5+. This is used in \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer for masking images and the extension png is normally used because it's faster than gif for temporary files. But png seems not to work with some IM 5+ versions, so...
-               'im_noScaleUp' => FALSE,                                                // Boolean: If set, images are not being scaled up if told so (in t3lib/stdgraphics.php)
+               'im_noScaleUp' => FALSE,                                                // Boolean: If set, images are not being scaled up if told so (in \TYPO3\CMS\Core\Imaging\GraphicalFunctions)
                'im_noFramePrepended' => FALSE,                                 // Boolean: If set, the [x] frame indicator is NOT prepended to filenames in stdgraphic. Some IM5+ version didn't work at all with the typical [0]-prefix, which allow multipage pdf's and animated gif's to be scaled only for the first frame/page and that seriously cuts down rendering time. Set this flag only if your ImageMagick version cannot find the files. Notice that changing this flag causes temporary filenames to change, thus the server will begin scaling images again which were previously cached.
                'im_stripProfileCommand' => '+profile \'*\'',   // String: Specify the command to strip the profile information, which can reduce thumbnail size up to 60KB. Command can differ in IM/GM, IM also know the -strip command. See <a href="http://www.imagemagick.org/Usage/thumbnails/#profiles" target="_blank">imagemagick.org</a> for details
                'im_useStripProfileByDefault' => TRUE,                  // Boolean: If set, the im_stripProfileCommand is used with all IM Image operations by default. See tsRef for setting this parameter explocit for IMAGE generation.
                'jpg_quality' => 70,                                                    // Integer: Default JPEG generation quality
                'png_truecolor' => TRUE,
-               'colorspace' => 'RGB',                                                  // String: Specifiy the colorspace to use. Some ImageMagick versions (like 6.7.0 and above) use the sRGB colorspace, so all images are darker then the original. <br />Possible Values: CMY, CMYK, Gray, HCL, HSB, HSL, HWB, Lab, LCH, LMS, Log, Luv, OHTA, Rec601Luma, Rec601YCbCr, Rec709Luma, Rec709YCbCr, RGB, sRGB, Transparent, XYZ, YCbCr, YCC, YIQ, YCbCr, YUV
+               'colorspace' => 'RGB',                                                  // String: Specify the colorspace to use. Some ImageMagick versions (like 6.7.0 and above) use the sRGB colorspace, so all images are darker then the original. <br />Possible Values: CMY, CMYK, Gray, HCL, HSB, HSL, HWB, Lab, LCH, LMS, Log, Luv, OHTA, Rec601Luma, Rec601YCbCr, Rec709Luma, Rec709YCbCr, RGB, sRGB, Transparent, XYZ, YCbCr, YCC, YIQ, YCbCr, YUV
        ),
        'SYS' => array(
                // System related concerning both frontend and backend.
@@ -69,7 +67,6 @@ return array(
                'USdateFormat' => FALSE,                                // Boolean: If TRUE, dates entered in the TCEforms of the backend will be formatted mm-dd-yyyy
                'loginCopyrightWarrantyProvider' => '', // String: If you provide warranty for TYPO3 to your customers insert you (company) name here. It will appear in the login-dialog as the warranty provider. (You must also set URL below).
                'loginCopyrightWarrantyURL' => '',              // String: Add the URL where you explain the extend of the warranty you provide. This URL is displayed in the login dialog as the place where people can learn more about the conditions of your warranty. Must be set (more than 10 chars) in addition with the 'loginCopyrightWarrantyProvider' message.
-               'loginCopyrightShowVersion' => FALSE,   // Boolean: If set, the current TYPO3 version is shown.
                'curlUse' => FALSE,                                             // Boolean: If set, try to use cURL to fetch external URLs
                'curlProxyNTLM' => FALSE,                                       // Boolean: Proxy NTLM authentication support.
                /**
@@ -88,8 +85,8 @@ return array(
                 * @deprecated since 4.6 - will be removed in 6.2.
                 */
                'curlTimeout' => 0,                                             // Integer: Timeout value for cURL requests in seconds. 0 means to wait indefinitely. Deprecated since 4.6 - will be removed in 6.2. See below for http options.
-               'form_enctype' => 'multipart/form-data',// String: This is the default form encoding type for most forms in TYPO3. It allows for file uploads to be in the form. However if file-upload is disabled for your PHP version even ordinary data sent with this encryption will not get to the server. So if you have file_upload disabled, you will have to change this to eg. 'application/x-www-form-urlencoded'
-               'textfile_ext' => 'txt,ts,html,htm,css,tmpl,js,sql,xml,csv,xlf',                // Text file extensions. Those that can be edited. Executable PHP files may not be editable in webspace if disallowed!
+               'textfile_ext' => 'txt,ts,typoscript,html,htm,css,tmpl,js,sql,xml,csv,xlf',     // Text file extensions. Those that can be edited. Executable PHP files may not be editable in webspace if disallowed!
+               'mediafile_ext' => 'gif,jpg,jpeg,bmp,png,pdf,svg,ai,mov,avi,youtube,vimeo',     // Commalist of file extensions perceived as media files by TYPO3. Lowercase and no spaces between!
                'binPath' => '',                                                // String: List of absolute paths where external programs should be searched for. Eg. <code>/usr/local/webbin/,/home/xyz/bin/</code>. (ImageMagick path have to be configured separately)
                'binSetup' => '',                                               // String (textarea): List of programs (separated by newline or comma). By default programs will be searched in default paths and the special paths defined by 'binPath'. When PHP has openbasedir enabled the programs can not be found and have to be configured here. Example: <code>perl=/usr/bin/perl,unzip=/usr/local/bin/unzip</code>
                't3lib_cs_convMethod' => '',                    // String (values: "iconv", "recode", "mbstring", default is homemade PHP-code). Defines which of these PHP-features to use for various charset conversion functions in \TYPO3\CMS\Core\Charset\CharsetConverter. Will speed up charset conversion radically.
@@ -98,7 +95,6 @@ return array(
                'dbClientCompress' => FALSE,                    // Boolean: if TRUE, data exchange between TYPO3 and database server will be compressed. This may improve performance if (1) database serever is on the different server and (2) network connection speed to database server is 100mbps or less. CPU usage will be higher if this option is used but database operations will be executed faster due to much less (up to 3 times) database network traffic. This option has no effect if MySQL server is localhost.
                'setDBinit' => '',                                              // String (textarea): These commands are executed after the database connection was established. Hint: The previous default "SET NAMES utf8;" is not required any more and will be removed automatically if set!
                'setMemoryLimit' => 0,                                  // Integer: memory_limit in MB: If more than 16, TYPO3 will try to use ini_set() to set the memory limit of PHP to the value. This works only if the function ini_set() is not disabled by your sysadmin.
-               'serverTimeZone' => 1,                                  // Integer: GMT offset of servers time (from time()). Default is "1" which is "GMT+1" (central european time). This value can be used in extensions that are GMT aware and wants to convert times to/from other timezones.
                'phpTimeZone' => '',                                    // String: timezone to force for all date() and mktime() functions. A list of supported values can be found at <a href="http://php.net/manual/en/timezones.php" target="_blank">php.net</a>. If this is not set, a valid fallback will be searched for by PHP (php.ini's <a href="http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone" target="_blank">date.timezone</a> setting, server defaults, etc); and if no fallback is found, the value of "UTC" is used instead.
                'systemLog' => '',                                              // <p>String: semi-colon separated list. Defines one or more logging methods. Possible methods:</p><dl><dt>file,&lt;abs-path-to-file&gt;[,&lt;level&gt;]</dt><dd>logs to a file</dd><dt>mail,&lt;to&gt;[/&lt;from&gt;][,&lt;level&gt;]</dt><dd>sends the log entries via mail</dd><dt>syslog,&lt;facility&gt;,[,&lt;level&gt;]</dt><dd>uses the operating system's log. Facility may be one of LOCAL0..LOCAL7, USER (on Windows USER is the only valid type).</dd><dt>error_log[,,&lt;level&gt;]</dt><dd>uses the PHP error log</dd></dl><p>The &lt;level&gt; is the individual logging level (see <a href="#SYS-systemLogLevel">[SYS][systemLogLevel]</a>).</p>
                'systemLogLevel' => 0,                                  // <p>Integer (0, 1, 2, 3, 4): Only messages with same or higher severity are logged.</p><ul><li>0: info</li><li>1: notice</li><li>2: warning</li><li>3: error</li><li>4: fatal error</li></ul>
@@ -106,8 +102,8 @@ return array(
                'maxFileNameLength' => 60,                              // Integer: This is the maximum file name length. The value will be taken into account by basic file operations like renaming or creation of files and folders.
                'UTF8filesystem' => FALSE,                              // Boolean: If TRUE then TYPO3 uses utf-8 to store file names. This allows for accented Latin letters as well as any other non-latin characters like Cyrillic and Chinese.
                'systemLocale' => '',                                   // String: locale used for certain system related functions, e.g. escaping shell commands. If problems with filenames containing special characters occur, the value of this option is probably wrong. See <a href="http://php.net/manual/en/function.setlocale.php" target="_blank">setlocale()</a>.
-               'lockingMode' => 'simple',                              // String: Define which locking mode is used to control requests to pages being generated. Can be one of either "disable" (no locking), "simple" (checks for file existence), "flock" (using PHPs <a href="http://php.net/flock" target="_blank">flock()</a> function), "semaphore" (using PHPs <a href="http://php.net/sem-acquire" target="_blank">sem_acquire()</a> function). Default is "simple".
-               'reverseProxyIP' => '',                                 // String: list of IP addresses. If TYPO3 is behind one or more (intransparent) reverese proxies the IP addresses must be added here.
+               'lockingMode' => 'simple',                              // String: *deprecated* Define which locking mode is used to control requests to pages being generated. Can be one of either "disable" (no locking), "simple" (checks for file existence), "flock" (using PHPs <a href="http://php.net/flock" target="_blank">flock()</a> function), "semaphore" (using PHPs <a href="http://php.net/sem-acquire" target="_blank">sem_acquire()</a> function). Default is "simple". (This option is deprecated since TYPO3 CMS 7 and will be removed in TYPO3 CMS 8. The option is only used by extensions using the old Locker.)
+               'reverseProxyIP' => '',                                 // String: list of IP addresses. If TYPO3 is behind one or more (intransparent) reverse proxies the IP addresses must be added here.
                'reverseProxyHeaderMultiValue' => 'none',       // String: "none","first","last": defines which values of a proxy header (eg HTTP_X_FORWARDED_FOR) to use, if more than one is found. "none" discards the value, "first" and "last" use the first/last of the values in the list.
                'reverseProxyPrefix' => '',                             // String: optional prefix to be added to the internal URL (SCRIPT_NAME and REQUEST_URI).
                'reverseProxySSL' => '',                                // String: '*' or list of IP addresses of proxies that use SSL (https) for the connection to the client, but an unencrypted connection (http) to the server. If '*' all proxies defined in <a href="#SYS-reverseProxyIP">[SYS][reverseProxyIP]</a> use SSL.
@@ -124,14 +120,6 @@ return array(
                                        ),
                                        'groups' => array('system')
                                ),
-                               'cache_classes' => array(
-                                       'frontend' => \TYPO3\CMS\Core\Cache\Frontend\StringFrontend::class,
-                                       'backend' => \TYPO3\CMS\Core\Cache\Backend\SimpleFileBackend::class,
-                                       'options' => array(
-                                               'defaultLifetime' => 0,
-                                       ),
-                                       'groups' => array('system')
-                               ),
                                'cache_hash' => array(
                                        'frontend' => \TYPO3\CMS\Core\Cache\Frontend\VariableFrontend::class,
                                        'backend' => \TYPO3\CMS\Core\Cache\Backend\Typo3DatabaseBackend::class,
@@ -151,7 +139,7 @@ return array(
                                        'backend' => \TYPO3\CMS\Core\Cache\Backend\Typo3DatabaseBackend::class,
                                        'options' => array(
                                                'compression' => TRUE,
-                                               'defaultLifetime' => 2592000   //  30 days; set this to a lower value in case your cache gets too big
+                                               'defaultLifetime' => 2592000, // 30 days; set this to a lower value in case your cache gets too big
                                        ),
                                        'groups' => array('pages', 'all')
                                ),
@@ -172,7 +160,9 @@ return array(
                                'cache_rootline' => array(
                                        'frontend' => \TYPO3\CMS\Core\Cache\Frontend\VariableFrontend::class,
                                        'backend' => \TYPO3\CMS\Core\Cache\Backend\Typo3DatabaseBackend::class,
-                                       'options' => array(),
+                                       'options' => array(
+                                               'defaultLifetime' => 2592000, // 30 days; set this to a lower value in case your cache gets too big
+                                       ),
                                        'groups' => array('pages', 'all')
                                ),
                                'cache_imagesizes' => array(
@@ -230,7 +220,7 @@ return array(
                        ),
                ),
                'defaultCategorizedTables' => 'pages,tt_content,sys_file_metadata', // List of comma separated tables that are categorizable by default.
-               'displayErrors' => -1,          // <p>Integer (-1, 0, 1, 2). Configures whether PHP errors or Exceptions should be displayed.</p><dl><dt>0</dt><dd>Do not display any PHP error message. Sets PHP "display_errors" setting to 0. Overrides the value of [SYS][exceptionalErrors] and sets it to 0 (= no errors are turned into exceptions). The configured [SYS][productionExceptionHandler] is used as exception handler.</dd><dt>1</dt><dd>Display error messages with the registered [SYS][errorHandler]. Sets PHP "display_errors" setting to 1. The configured [SYS][debugExceptionHandler] is used as exception handler.</dd><dt>2</dt><dd>Lets the [SYS][devIPmask] decide if this setting shall be "1" (user's IP matches) or "0" (IP does not match).</dd><dt>-1</dt><dd>Default setting. TYPO3 CMS does not touch the PHP "display_errors" setting. If [SYS][devIPmask] matches the user's IP address, the configured [SYS][debugExceptionHandler] is used instead of the [SYS][productionExceptionHandler] to handle exceptions.</dd></dl>
+               'displayErrors' => -1,          // <p>Integer (-1, 0, 1). Configures whether PHP errors or Exceptions should be displayed.</p><dl><dt>0</dt><dd>Do not display any PHP error message. Sets PHP "display_errors" setting to 0. Overrides the value of [SYS][exceptionalErrors] and sets it to 0 (= no errors are turned into exceptions). The configured [SYS][productionExceptionHandler] is used as exception handler.</dd><dt>1</dt><dd>Display error messages with the registered [SYS][errorHandler]. Sets PHP "display_errors" setting to 1. The configured [SYS][debugExceptionHandler] is used as exception handler.</dd><dt>-1</dt><dd>Default setting. TYPO3 CMS does not touch the PHP "display_errors" setting. If [SYS][devIPmask] matches the user's IP address, the configured [SYS][debugExceptionHandler] is used instead of the [SYS][productionExceptionHandler] to handle exceptions.</dd></dl>
                'productionExceptionHandler' => \TYPO3\CMS\Core\Error\ProductionExceptionHandler::class,                // String: Classname to handle exceptions that might happen in the TYPO3-code. Leave empty to disable exception handling. Default: "TYPO3\\CMS\\Core\\Error\\ProductionExceptionHandler". This exception handler displays a nice error message when something went wrong. The error message is logged to the configured logs. Note: The configured "productionExceptionHandler" is used if [SYS][displayErrors] is set to "0" or is set to "-1" and [SYS][devIPmask] doesn't match the user's IP.
                'debugExceptionHandler' => \TYPO3\CMS\Core\Error\DebugExceptionHandler::class,          // String: Classname to handle exceptions that might happen in the TYPO3-code. Leave empty to disable exception handling. Default: "TYPO3\\CMS\\Core\\Error\\DebugExceptionHandler". This exception handler displays the complete stack trace of any encountered exception. The error message and the stack trace is logged to the configured logs. Note: The configured "debugExceptionHandler" is used if [SYS][displayErrors] is set to "1" or is set to "-1" or "2" and the [SYS][devIPmask] matches the user's IP.
                'errorHandler' => \TYPO3\CMS\Core\Error\ErrorHandler::class,            // String: Classname to handle PHP errors. E.g.: TYPO3\CMS\Core\Error\ErrorHandler. This class displays and logs all errors that are registered as [SYS][errorHandlerErrors]. Leave empty to disable error handling. Errors can be logged to syslog (see: [SYS][systemLog]), to the installed developer log and to the "syslog" table. If an error is registered in [SYS][exceptionalErrors] it will be turned into an exception to be handled by the configured exceptionHandler.
@@ -266,16 +256,259 @@ return array(
                                'static' => \TYPO3\CMS\Core\Resource\Collection\StaticFileCollection::class,
                                'folder' => \TYPO3\CMS\Core\Resource\Collection\FolderBasedFileCollection::class,
                                'category' => \TYPO3\CMS\Core\Resource\Collection\CategoryBasedFileCollection::class,
+                       ),
+                       'onlineMediaHelpers' => array(
+                               'youtube' => \TYPO3\CMS\Core\Resource\OnlineMedia\Helpers\YouTubeHelper::class,
+                               'vimeo' => \TYPO3\CMS\Core\Resource\OnlineMedia\Helpers\VimeoHelper::class,
+                       ),
+               ),
+               'FileInfo' => array(
+                       // Static mapping for file extensions to mime types.
+                       // In special cases the mime type is not detected correctly.
+                       // Use this array only if the automatic detection does not work correct!
+                       'fileExtensionToMimeType' => array(
+                               'svg' => 'image/svg+xml',
+                               'youtube' => 'video/youtube',
+                               'vimeo' => 'video/vimeo',
                        )
                ),
+               'livesearch' => array(),        // Array: keywords used for commands to search for specific tables
                'isInitialInstallationInProgress' => FALSE,             // Boolean: If TRUE, the installation is 'in progress'. This value is handled within the install tool step installer internally.
+               'isInitialDatabaseImportDone' => TRUE,          // Boolean: If TRUE, the database import is finished. This value is handled within the install tool step installer internally.
                'clearCacheSystem' => FALSE,            // Boolean: If set, the toolbar menu entry for clearing system caches (core cache, class cache, etc.) is visible for admin users.
+               'formEngine' => array(
+                       'nodeRegistry' => array(), // Array: Registry to add or overwrite FormEngine nodes. Main key is a timestamp of the date when an entry is added, sub keys type, priority and class are required. Class must implement TYPO3\CMS\Backend\Form\NodeInterface.
+                       'nodeResolver' => array(), // Array: Additional node resolver. Main key is a timestamp of the date when an entry is added, sub keys type, priority and class are required. Class must implement TYPO3\CMS\Backend\Form\NodeResolverInterface.
+                       'formDataGroup' => array( // Array: Registry of form data providers for form data groups
+                               'tcaDatabaseRecord' => array(
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\ReturnUrl::class => array(),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseEditRow::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\ReturnUrl::class,
+                                               )
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseParentPageRow::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseEditRow::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseUserPermissionCheck::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseParentPageRow::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseEffectivePid::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseParentPageRow::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseUserPermissionCheck::class
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabasePageRootline::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseEffectivePid::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\UserTsConfig::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabasePageRootline::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\PageTsConfig::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseEffectivePid::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\UserTsConfig::class
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TableTca::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\PageTsConfig::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\ParentPageTca::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TableTca::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowInitializeNew::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseUserPermissionCheck::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\UserTsConfig::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\PageTsConfig::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TableTca::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\ParentPageTca::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseUniqueUidNewRow::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowInitializeNew::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDateTimeFields::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseUniqueUidNewRow::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDefaultValues::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TableTca::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowInitializeNew::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDateTimeFields::class
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRecordOverrideValues::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDefaultValues::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaGroup::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRecordOverrideValues::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseSystemLanguageRows::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaGroup::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRecordOverrideValues::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabasePageLanguageOverlayRows::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseSystemLanguageRows::class
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseLanguageRows::class => array(
+                                               'depends' => array(
+                                                       // Language stuff depends on user ts, but it *may* also depend on new row defaults
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowInitializeNew::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabasePageLanguageOverlayRows::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRecordTypeValue::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseLanguageRows::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\PageTsConfigMerged::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\PageTsConfig::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRecordTypeValue::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\InitializeProcessedTca::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TableTca::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRecordTypeValue::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\PageTsConfigMerged::class
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaColumnsOverrides::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRecordTypeValue::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\InitializeProcessedTca::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaTypesShowitem::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRecordTypeValue::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseSystemLanguageRows::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\InitializeProcessedTca::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaColumnsOverrides::class
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaTypesRemoveUnusedColumns::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaTypesShowitem::class
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaFlexFetch::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\InitializeProcessedTca::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\UserTsConfig::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\PageTsConfigMerged::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaTypesRemoveUnusedColumns::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaFlexPrepare::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaFlexFetch::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaFlexProcess::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaFlexPrepare::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaRadioItems::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\InitializeProcessedTca::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaFlexProcess::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaCheckboxItems::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\InitializeProcessedTca::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaRadioItems::class
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaSelectItems::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabasePageRootline::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\PageTsConfigMerged::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\InitializeProcessedTca::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaTypesShowitem::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaTypesRemoveUnusedColumns::class,
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaCheckboxItems::class,
+                                                       // GeneralUtility::getFlexFormDS() needs unchanged databaseRow values as string
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaFlexFetch::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaInline::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaSelectItems::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\EvaluateDisplayConditions::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaInline::class,
+                                               ),
+                                       ),
+                               ),
+                               'flexFormSegment' => array(
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDefaultValues::class => array(),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaGroup::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDefaultValues::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaRadioItems::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDefaultValues::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaCheckboxItems::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDefaultValues::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaSelectItems::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDefaultValues::class,
+                                               ),
+                                       ),
+                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaInline::class => array(
+                                               'depends' => array(
+                                                       \TYPO3\CMS\Backend\Form\FormDataProvider\TcaSelectItems::class,
+                                               ),
+                                       ),
+                               ),
+                       ),
+               ),
        ),
        'EXT' => array( // Options related to the Extension Management
                'allowGlobalInstall' => FALSE,          // Boolean: If set, global extensions in typo3/ext/ are allowed to be installed, updated and deleted etc.
                'allowLocalInstall' => TRUE,            // Boolean: If set, local extensions in typo3conf/ext/ are allowed to be installed, updated and deleted etc.
-               'allowSystemInstall' => FALSE,          // Boolean: If set, you can install extensions in the sysext/ dir. Use this to upgrade the 'cms' and 'lang' extensions.
-               'excludeForPackaging' => '(CVS|\\..*|.*~|.*\\.bak)',            // String: List of directories and files which will not be packaged into extensions nor taken into account otherwise by the Extension Manager. Perl regular expression syntax!
+               'allowSystemInstall' => FALSE,          // Boolean: If set, you can install extensions in the sysext/ dir.
+               'excludeForPackaging' => '(?:\\..*(?!htaccess)|.*~|.*\\.swp|.*\\.bak|\\.sass-cache|node_modules|bower_components)',             // String: List of directories and files which will not be packaged into extensions nor taken into account otherwise by the Extension Manager. Perl regular expression syntax!
                'extConf' => array(
                        'saltedpasswords' => serialize(array(
                                'BE.' => array(
@@ -293,6 +526,7 @@ return array(
                                ),
                        )),
                ),
+               'runtimeActivatedPackages' => array(),
        ),
        'BE' => array(
                // Backend Configuration.
@@ -300,11 +534,8 @@ return array(
                        'debug' => FALSE
                ),
                'unzip_path' => '',                                                             // Path to "unzip". Only specify the path here, do not include the program name, it is expected to be called "unzip".
-               'diff_path' => 'diff',                                                  // Path to "diff" including the program name. Example: /somepath/specialdiff<br />For Windows this program can be downloaded here: <a href="http://unxutils.sourceforge.net/" target="_blank">unxutils.sourceforge.net</a>
                'fileadminDir' => 'fileadmin/',                                 // Path to the fileadmin dir. This is relative to PATH_site, DefaultStorage will be created with that configuration, do not access manually but ResourceFactory::getDefaultStorage()
-               'RTEenabled' => TRUE,                                                   // Boolean: If set, the Rich Text editor will be an option in the backend. Notice that the editor must be enabled per-user and options are configurable. See admin guide.
                'RTE_imageStorageDir' => 'uploads/',                    // Default storage directory for Rich Text Editor files
-               'RTE_reg' => array(),                                                   // Contains arrays of possible RTEs available (keys=extKey, values=cfg-array). Each array contains a key, "objRef", which contains a user function call with prefixed script path and instanciating a persistent global object. This can report back if browser requirements are OK, draw the RTE and do the transformations needed.
                'lockRootPath' => '',                                                   // This path is used to evaluate if paths outside of PATH_site should be allowed. Ending slash required!
                'userHomePath' => '',                                                   // Combined folder identifier of the directory where TYPO3 backend-users have their home-dirs. A combined folder identifier looks like this: [storageUid]:[folderIdentifier]. Eg. '2:users/'. A home for backend user 2 would be: '2:users/2/'. Ending slash required!
                'groupHomePath' => '',                                                  // Combined folder identifier of the directory where TYPO3 backend-groups have their home-dirs. A combined folder identifier looks like this: [storageUid]:[folderIdentifier]. Eg. '2:groups/'. A home for backend group 1 would be: '2:groups/1/'. Ending slash required!
@@ -324,10 +555,10 @@ return array(
                'lockHashKeyWords' => 'useragent',                              // Keyword list (Strings comma separated). Currently only "useragent"; If set, then the BE user session is locked to the value of HTTP_USER_AGENT. This lowers the risk of session hi-jacking. However in some cases (like during development) you might need to switch the user agent while keeping the session. In this case you can disable that feature (e.g. with a blank string).
                'cookieDomain' => '',                                                   // Same as <a href="#SYS-cookieDomain">$TYPO3_CONF_VARS['SYS']['cookieDomain']</a> but only for BE cookies. If empty, $TYPO3_CONF_VARS['SYS']['cookieDomain'] value will be used.
                'cookieName' => 'be_typo_user',                                 // String: Set the name for the cookie used for the back-end user session
-               'loginSecurityLevel' => '',                                             // String: Keywords that determines the security level of login to the backend. "normal" means the password from the login form is sent in clear-text, "challenged" means the password is not sent but hashed with some other values, "superchallenged" (default) means the password is first hashed before being hashed with the challenge values again (means the password is stored as a hashed string in the database also), "rsa" uses RSA password encryption (only if the rsaauth extension is installed). DO NOT CHANGE this value manually; without an alternative authentication service it will only prevent logins in TYPO3 since the "superchallenged" method is hardcoded in the default authentication system.
+               'loginSecurityLevel' => '',                                             // String: Keywords that determines the security level of login to the backend. "normal" means the password from the login form is sent in clear-text, "rsa" uses RSA password encryption (only if the rsaauth extension is installed).
                'showRefreshLoginPopup' => FALSE,                               // Boolean: If set, the Ajax relogin will show a real popup window for relogin after the count down. Some auth services need this as they add custom validation to the login form. If it's not set, the Ajax relogin will show an inline relogin window.
                'adminOnly' => 0,                                                               // <p>Integer (-1, 0, 1, 2)</p><dl><dt>-1</dt><dd>total shutdown for maintenance purposes</dd><dt>0</dt><dd>normal operation, everyone can login (default)</dd><dt>1</dt><dd>only admins can login</dd><dt>2</dt><dd>only admins and regular CLI users can login</dd></dl>
-               'disable_exec_function' => FALSE,                               // Boolean: Don't use exec() function (except for ImageMagick which is disabled by <a href="#GFX-im">[GFX][im]</a>=0). If set, all fileoperations are done by the default PHP-functions. This is nescessary under Windows! On Unix the system commands by exec() can be used, unless this is disabled.
+               'disable_exec_function' => FALSE,                               // Boolean: Don't use exec() function (except for ImageMagick which is disabled by <a href="#GFX-im">[GFX][im]</a>=0). If set, all fileoperations are done by the default PHP-functions. This is necessary under Windows! On Unix the system commands by exec() can be used, unless this is disabled.
                'compressionLevel' => 0,                                                // Determines output compression of BE output. Makes output smaller but slows down the page generation depending on the compression level. Requires a) zlib in your PHP installation and b) special rewrite rules for .css.gzip and .js.gzip (please see _.htacces for an example). Range 1-9, where 1 is least compression and 9 is greatest compression. 'true' as value will set the compression based on the PHP default settings (usually 5). Suggested and most optimal value is 5.
                'maxFileSize' => '10240',                                               // Integer: If set this is the max filesize in KB's for file operations in the backend. Can be overridden through $TCA per table field separately.
                'installToolPassword' => '',                                    // String: This is the md5-hashed, salted password for the Install Tool. Set this to '' and access will be totally denied. You may consider to externally protect the typo3/sysext/install/ folder, eg. with a .htaccess file.
@@ -335,7 +566,6 @@ return array(
                        'preloadLimit' => 50
                ),
                'defaultUserTSconfig' => 'options.enableBookmarks=1
-                       options.enableShowPalettes=1
                        options.file_list.enableDisplayBigControlPanel=selectable
                        options.file_list.enableDisplayThumbnails=selectable
                        options.file_list.enableClipBoard=selectable
@@ -354,7 +584,7 @@ return array(
                                                        100 {
                                                                name = history
                                                                label = LLL:EXT:lang/locallang_misc.xlf:CM_history
-                                                               spriteIcon = actions-document-history-open
+                                                               iconName = actions-document-history-open
                                                                displayCondition = canShowHistory != 0
                                                                callbackAction = openHistoryPopUp
                                                        }
@@ -369,7 +599,7 @@ return array(
                                                        100 {
                                                                name = view
                                                                label = LLL:EXT:lang/locallang_core.xlf:cm.view
-                                                               spriteIcon = actions-document-view
+                                                               iconName = actions-document-view
                                                                displayCondition = canBeViewed != 0
                                                                callbackAction = viewPage
                                                        }
@@ -378,7 +608,7 @@ return array(
                                                        200 {
                                                                name = new
                                                                label = LLL:EXT:lang/locallang_core.xlf:cm.new
-                                                               spriteIcon = actions-page-new
+                                                               iconName = actions-page-new
                                                                displayCondition = canCreateNewPages != 0
                                                                callbackAction = newPageWizard
                                                        }
@@ -389,7 +619,7 @@ return array(
                                                        400 {
                                                                name = history
                                                                label = LLL:EXT:lang/locallang_misc.xlf:CM_history
-                                                               spriteIcon = actions-document-history-open
+                                                               iconName = actions-document-history-open
                                                                displayCondition = canShowHistory != 0
                                                                callbackAction = openHistoryPopUp
                                                        }
@@ -404,7 +634,7 @@ return array(
                                                        100 {
                                                                name = view
                                                                label = LLL:EXT:lang/locallang_core.xlf:cm.view
-                                                               spriteIcon = actions-document-view
+                                                               iconName = actions-document-view
                                                                displayCondition = canBeViewed != 0
                                                                callbackAction = viewPage
                                                        }
@@ -415,7 +645,7 @@ return array(
                                                        300 {
                                                                name = disable
                                                                label = LLL:EXT:lang/locallang_common.xlf:disable
-                                                               spriteIcon = actions-edit-hide
+                                                               iconName = actions-edit-hide
                                                                displayCondition = getRecord|hidden = 0 && canBeDisabledAndEnabled != 0
                                                                callbackAction = disablePage
                                                        }
@@ -424,7 +654,7 @@ return array(
                                                        400 {
                                                                name = enable
                                                                label = LLL:EXT:lang/locallang_common.xlf:enable
-                                                               spriteIcon = actions-edit-unhide
+                                                               iconName = actions-edit-unhide
                                                                displayCondition = getRecord|hidden = 1 && canBeDisabledAndEnabled != 0
                                                                callbackAction = enablePage
                                                        }
@@ -433,7 +663,7 @@ return array(
                                                        500 {
                                                                name = edit
                                                                label = LLL:EXT:lang/locallang_core.xlf:cm.edit
-                                                               spriteIcon = actions-page-open
+                                                               iconName = actions-page-open
                                                                displayCondition = canBeEdited != 0
                                                                callbackAction = editPageProperties
                                                        }
@@ -442,7 +672,7 @@ return array(
                                                        600 {
                                                                name = info
                                                                label = LLL:EXT:lang/locallang_core.xlf:cm.info
-                                                               spriteIcon = actions-document-info
+                                                               iconName = actions-document-info
                                                                displayCondition = canShowInfo != 0
                                                                callbackAction = openInfoPopUp
                                                        }
@@ -451,7 +681,7 @@ return array(
                                                        700 {
                                                                name = history
                                                                label = LLL:EXT:lang/locallang_misc.xlf:CM_history
-                                                               spriteIcon = actions-document-history-open
+                                                               iconName = actions-document-history-open
                                                                displayCondition = canShowHistory != 0
                                                                callbackAction = openHistoryPopUp
                                                        }
@@ -466,7 +696,7 @@ return array(
                                                                100 {
                                                                        name = new
                                                                        label = LLL:EXT:lang/locallang_core.xlf:cm.new
-                                                                       spriteIcon = actions-page-new
+                                                                       iconName = actions-page-new
                                                                        displayCondition = canCreateNewPages != 0
                                                                        callbackAction = newPageWizard
                                                                }
@@ -477,7 +707,7 @@ return array(
                                                                300 {
                                                                        name = cut
                                                                        label = LLL:EXT:lang/locallang_core.xlf:cm.cut
-                                                                       spriteIcon = actions-edit-cut
+                                                                       iconName = actions-edit-cut
                                                                        displayCondition = isInCutMode = 0 && canBeCut != 0 && isMountPoint != 1
                                                                        callbackAction = enableCutMode
                                                                }
@@ -486,7 +716,7 @@ return array(
                                                                400 {
                                                                        name = cut
                                                                        label = LLL:EXT:lang/locallang_core.xlf:cm.cut
-                                                                       spriteIcon = actions-edit-cut-release
+                                                                       iconName = actions-edit-cut-release
                                                                        displayCondition = isInCutMode = 1 && canBeCut != 0
                                                                        callbackAction = disableCutMode
                                                                }
@@ -495,7 +725,7 @@ return array(
                                                                500 {
                                                                        name = copy
                                                                        label = LLL:EXT:lang/locallang_core.xlf:cm.copy
-                                                                       spriteIcon = actions-edit-copy
+                                                                       iconName = actions-edit-copy
                                                                        displayCondition = isInCopyMode = 0 && canBeCopied != 0
                                                                        callbackAction = enableCopyMode
                                                                }
@@ -504,7 +734,7 @@ return array(
                                                                600 {
                                                                        name = copy
                                                                        label = LLL:EXT:lang/locallang_core.xlf:cm.copy
-                                                                       spriteIcon = actions-edit-copy-release
+                                                                       iconName = actions-edit-copy-release
                                                                        displayCondition = isInCopyMode = 1 && canBeCopied != 0
                                                                        callbackAction = disableCopyMode
                                                                }
@@ -513,7 +743,7 @@ return array(
                                                                700 {
                                                                        name = pasteInto
                                                                        label = LLL:EXT:lang/locallang_core.xlf:cm.pasteinto
-                                                                       spriteIcon = actions-document-paste-into
+                                                                       iconName = actions-document-paste-into
                                                                        displayCondition = getContextInfo|inCopyMode = 1 || getContextInfo|inCutMode = 1 && canBePastedInto != 0
                                                                        callbackAction = pasteIntoNode
                                                                }
@@ -522,7 +752,7 @@ return array(
                                                                800 {
                                                                        name = pasteAfter
                                                                        label = LLL:EXT:lang/locallang_core.xlf:cm.pasteafter
-                                                                       spriteIcon = actions-document-paste-after
+                                                                       iconName = actions-document-paste-after
                                                                        displayCondition = getContextInfo|inCopyMode = 1 || getContextInfo|inCutMode = 1 && canBePastedAfter != 0
                                                                        callbackAction = pasteAfterNode
                                                                }
@@ -533,7 +763,7 @@ return array(
                                                                1000 {
                                                                        name = delete
                                                                        label = LLL:EXT:lang/locallang_core.xlf:cm.delete
-                                                                       spriteIcon = actions-edit-delete
+                                                                       iconName = actions-edit-delete
                                                                        displayCondition = canBeRemoved != 0 && isMountPoint != 1
                                                                        callbackAction = removeNode
                                                                }
@@ -547,7 +777,7 @@ return array(
                                                                100 {
                                                                        name = mountAsTreeroot
                                                                        label = LLL:EXT:lang/locallang_core.xlf:cm.tempMountPoint
-                                                                       spriteIcon = actions-system-extension-documentation
+                                                                       iconName = actions-pagetree-mountroot
                                                                        displayCondition = canBeTemporaryMountPoint != 0 && isMountPoint = 0
                                                                        callbackAction = mountAsTreeRoot
                                                                }
@@ -558,7 +788,7 @@ return array(
                                                                300 {
                                                                        name = expandBranch
                                                                        label = LLL:EXT:lang/locallang_core.xlf:cm.expandBranch
-                                                                       spriteIcon = actions-pagetree-expand
+                                                                       iconName = actions-pagetree-expand
                                                                        displayCondition =
                                                                        callbackAction = expandBranch
                                                                }
@@ -567,7 +797,7 @@ return array(
                                                                400 {
                                                                        name = collapseBranch
                                                                        label = LLL:EXT:lang/locallang_core.xlf:cm.collapseBranch
-                                                                       spriteIcon = actions-pagetree-collapse
+                                                                       iconName = actions-pagetree-collapse
                                                                        displayCondition =
                                                                        callbackAction = collapseBranch
                                                                }
@@ -581,6 +811,20 @@ return array(
                'defaultPageTSconfig' => 'mod.web_list.enableDisplayBigControlPanel=selectable
                        mod.web_list.enableClipBoard=selectable
                        mod.web_list.enableLocalizationView=selectable
+                       mod.web_list.tableDisplayOrder {
+                               be_users.after = be_groups
+                               sys_filemounts.after = be_users
+                               sys_file_storage.after = sys_filemounts
+                               sys_language.after = sys_file_storage
+                               pages_language_overlay.before = pages
+                               fe_users.after = fe_groups
+                               fe_users.before = pages
+                               sys_template.after = pages
+                               backend_layout.after = pages
+                               sys_domain.after = sys_template
+                               tt_content.after = pages,backend_layout,sys_template
+                               sys_category.after = tt_content
+                       }
                        mod.wizards.newRecord.pages.show.pageInside=1
                        mod.wizards.newRecord.pages.show.pageAfter=1
                        mod.wizards.newRecord.pages.show.pageSelectPosition=1
@@ -601,23 +845,21 @@ return array(
                // String (exclude).Enter lines of default Page TSconfig.
                'defaultPermissions' => array(),
                'defaultUC' => array(),
-               // The control of fileextensions goes in two catagories. Webspace and Ftpspace. Webspace is folders accessible from a webbrowser (below TYPO3_DOCUMENT_ROOT) and ftpspace is everything else.
+               // The control of file extensions goes in two catagories. Webspace and Ftpspace. Webspace is folders accessible from a webbrowser (below TYPO3_DOCUMENT_ROOT) and ftpspace is everything else.
                // The control is done like this: If an extension matches 'allow' then the check returns TRUE. If not and an extension matches 'deny' then the check return FALSE. If no match at all, returns TRUE.
                // You list extensions comma-separated. If the value is a '*' every extension is matched
-               // If no fileextension, TRUE is returned if 'allow' is '*', FALSE if 'deny' is '*' and TRUE if none of these matches
+               // If no file extension, TRUE is returned if 'allow' is '*', FALSE if 'deny' is '*' and TRUE if none of these matches
                // This configuration below accepts everything in ftpspace and everything in webspace except php3,php4,php5 or php files
                'fileExtensions' => array(
                        'webspace' => array('allow' => '', 'deny' => PHP_EXTENSIONS_DEFAULT),
                        'ftpspace' => array('allow' => '*', 'deny' => '')
                ),
                'customPermOptions' => array(),                                         // Array with sets of custom permission options. Syntax is; 'key' => array('header' => 'header string, language splitted', 'items' => array('key' => array('label, language splitted', 'icon reference', 'Description text, language splitted'))). Keys cannot contain ":|," characters.
-               'fileDenyPattern' => FILE_DENY_PATTERN_DEFAULT,         // A perl-compatible regular expression (without delimiters!) that - if it matches a filename - will deny the file upload/rename or whatever in the webspace. For security reasons, files with multiple extensions have to be denied on an Apache environment with mod_alias, if the filename contains a valid php handler in an arbitary position. Also, ".htaccess" files have to be denied. Matching is done case-insensitive. Default value is stored in constant FILE_DENY_PATTERN_DEFAULT
+               'fileDenyPattern' => FILE_DENY_PATTERN_DEFAULT,         // A perl-compatible regular expression (without delimiters!) that - if it matches a filename - will deny the file upload/rename or whatever in the webspace. For security reasons, files with multiple extensions have to be denied on an Apache environment with mod_alias, if the filename contains a valid php handler in an arbitrary position. Also, ".htaccess" files have to be denied. Matching is done case-insensitive. Default value is stored in constant FILE_DENY_PATTERN_DEFAULT
                'interfaces' => 'backend',                                                      // This determines which interface options is available in the login prompt and in which order (All options: ",backend,frontend")
-               'loginNewsTitle' => '',                                                         // Define alternative header message for the LoginNews. If this var is empty, the default header "Important messages:" is displayed.
                'notificationPrefix' => '[TYPO3 Note]',                         // String: Used to prefix the subject of mails sent in the taskcenter
                'explicitADmode' => 'explicitDeny',                                     // Sets the general allow/deny mode for selector box values. Value can be either "explicitAllow" or "explicitDeny", nothing else!
                'niceFlexFormXMLtags' => TRUE,                                          // If set, the flexform XML will be stored with meaningful tags which can be validated with DTD schema. If you rely on custom reading of the XML from pre-4.0 versions you should set this to FALSE if you don't like to change your reader code (internally it is insignificant since \TYPO3\CMS\Core\Utility\GeneralUtility::xml2array() doesn't care for the tags if the index-attribute value is set)
-               'flexFormXMLincludeDiffBase' => TRUE,                           // If set, an additional tag with index "vXX.vDEFbase" is created for translations in flexforms holding the value of the default language when translation was changed. Used to show diff of value. This setting will change whether the system thinks flexform XML looks clean. For example when FALSE XX.vDEFbase fields will be removed in cleaning while accepted if TRUE (of course)
                'compactFlexFormXML' => 0,                                                      // If set, the flexform XML will not contain indentation spaces making XML more compact
                'flexformForceCDATA' => 0,                                                      // Boolean:  If set, will add CDATA to Flexform XML. Some versions of libxml have a bug that causes HTML entities to be stripped from any XML content and this setting will avoid the bug by adding CDATA.
                'explicitConfirmationOfTranslation' => FALSE,           // If set, then the diff-data of localized records is not saved automatically when updated but requires that a translator clicks the special finish_translation/save/close button that becomes available.
@@ -637,20 +879,24 @@ return array(
                                'callbackMethod' => \TYPO3\CMS\Backend\Controller\File\FileController::class . '->processAjaxRequest',
                                'csrfTokenCheck' => TRUE
                        ),
+                       'TYPO3_tcefile::fileExists' => array(
+                               'callbackMethod' => \TYPO3\CMS\Backend\Controller\File\FileController::class . '->fileExistsAjaxRequest',
+                               'csrfTokenCheck' => TRUE
+                       ),
                        't3lib_TCEforms_inline::createNewRecord' => array(
-                               'callbackMethod' => \TYPO3\CMS\Backend\Form\Element\InlineElement::class . '->processAjaxRequest',
+                               'callbackMethod' => \TYPO3\CMS\Backend\Controller\FormInlineAjaxController::class . '->processInlineAjaxRequest',
                                'csrfTokenCheck' => TRUE
                        ),
                        't3lib_TCEforms_inline::getRecordDetails' => array(
-                               'callbackMethod' => \TYPO3\CMS\Backend\Form\Element\InlineElement::class . '->processAjaxRequest',
+                               'callbackMethod' => \TYPO3\CMS\Backend\Controller\FormInlineAjaxController::class . '->processInlineAjaxRequest',
                                'csrfTokenCheck' => TRUE
                        ),
                        't3lib_TCEforms_inline::synchronizeLocalizeRecords' => array(
-                               'callbackMethod' => \TYPO3\CMS\Backend\Form\Element\InlineElement::class . '->processAjaxRequest',
+                               'callbackMethod' => \TYPO3\CMS\Backend\Controller\FormInlineAjaxController::class . '->processInlineAjaxRequest',
                                'csrfTokenCheck' => TRUE
                        ),
                        't3lib_TCEforms_inline::setExpandedCollapsedState' => array(
-                               'callbackMethod' => \TYPO3\CMS\Backend\Form\Element\InlineElement::class . '->processAjaxRequest',
+                               'callbackMethod' => \TYPO3\CMS\Backend\Controller\FormInlineAjaxController::class . '->processInlineAjaxRequest',
                                'csrfTokenCheck' => TRUE
                        ),
                        't3lib_TCEforms_suggest::searchRecord' => array(
@@ -677,6 +923,10 @@ return array(
                                'callbackMethod' => \TYPO3\CMS\Backend\Backend\ToolbarItems\ShortcutToolbarItem::class . '->createAjaxShortcut',
                                'csrfTokenCheck' => TRUE
                        ),
+                       'SystemInformationMenu::load' => array(
+                               'callbackMethod' => \TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem::class . '->renderAjax',
+                               'csrfTokenCheck' => TRUE
+                       ),
                        'ModuleMenu::reload' => array(
                                'callbackMethod' => \TYPO3\CMS\Backend\Controller\BackendController::class . '->getModuleMenuForReload',
                                'csrfTokenCheck' => TRUE
@@ -701,11 +951,6 @@ return array(
                                // Needs to be unprotected
                                'csrfTokenCheck' => FALSE
                        ),
-                       'BackendLogin::getChallenge' => array(
-                               'callbackMethod' => \TYPO3\CMS\Backend\AjaxLoginHandler::class . '->getChallenge',
-                               // Needs to be unprotected
-                               'csrfTokenCheck' => FALSE
-                       ),
                        'ExtDirect::getAPI' => array(
                                'callbackMethod' => \TYPO3\CMS\Core\ExtDirect\ExtDirectApi::class . '->getAPI',
                                // No need to be CSRF protected
@@ -731,6 +976,18 @@ return array(
                        'UserSettings::process' => array(
                                'callbackMethod' => \TYPO3\CMS\Backend\Controller\UserSettingsController::class . '->processAjaxRequest',
                                'csrfTokenCheck' => TRUE
+                       ),
+                       'ImageManipulationWizard::getHtmlForImageManipulationWizard' => array(
+                               'callbackMethod' => \TYPO3\CMS\Backend\Form\Wizard\ImageManipulationWizard::class . '->getHtmlForImageManipulationWizard',
+                               'csrfTokenCheck' => TRUE
+                       ),
+                       'LiveSearch' => array(
+                               'callbackMethod' => \TYPO3\CMS\Backend\Controller\LiveSearchController::class . '->liveSearchAction',
+                               'csrfTokenCheck' => TRUE
+                       ),
+                       'OnlineMedia::add' => array(
+                               'callbackMethod' => \TYPO3\CMS\Backend\Controller\OnlineMediaController::class . '->addAjaxAction',
+                               'csrfTokenCheck' => TRUE
                        )
                ),
                'toolbarItems' => array(), // Array: Registered toolbar items classes
@@ -742,8 +999,6 @@ return array(
                'XCLASS' => array()
        ),
        'FE' => array( // Configuration for the TypoScript frontend (FE). Nothing here relates to the administration backend!
-               'activateContentAdapter' => TRUE,               // Boolean: TYPO3 Frontend can transform tt_content and pages records using FAL back to into a format like DB records have been in pre 6.x, so legacy Typoscript can work with it. <strong><em>WARNING: THIS IS SLOW!</em></strong>
-               'png_to_gif' => FALSE,          // Boolean: Enables conversion back to gif of all png-files generated in the frontend libraries. Notice that this leaves an increased number of temporary files in typo3temp/
                'addAllowedPaths' => '',                // Additional relative paths (comma-list) to allow TypoScript resources be in. Should be prepended with '/'. If not, then any path where the first part is like this path will match. That is: 'myfolder/ , myarchive' will match eg. 'myfolder/', 'myarchive/', 'myarchive_one/', 'myarchive_2/' ... No check is done to see if this directory actually exists in the root of the site. Paths are matched by simply checking if these strings equals the first part of any TypoScript resource filepath. (See class template, function init() in \TYPO3\CMS\Core\TypoScript\Parser\TypoScriptParser)
                'debug' => FALSE,               // Boolean: If set, some debug HTML-comments may be output somewhere. Can also be set by TypoScript.
                'noPHPscriptInclude' => FALSE,          // Boolean: If set, PHP-scripts are not included by TypoScript configurations, unless they reside in the folders typo3/ext/, typo3/sysext/ or typo3conf/ext. This is a security option to ensure that users with template-access do not terrorize
@@ -773,19 +1028,19 @@ return array(
                'defaultTypoScript_constants.' => array(),              // Lines of TS to include after a static template with the uid = the index in the array (Constants)
                'defaultTypoScript_setup' => '',                // String (textarea). Enter lines of default TypoScript, setup-field.
                'defaultTypoScript_setup.' => array(),          // Lines of TS to include after a static template with the uid = the index in the array (Setup)
-               'additionalAbsRefPrefixDirectories' => '',              // Enter additional directories to be prepended with absRefPrefix. Directories must be comma-separated. TYPO3 already prepends the following directories: typo3conf/ext/, fileadmin/
+               'additionalAbsRefPrefixDirectories' => '',              // Enter additional directories to be prepended with absRefPrefix. Directories must be comma-separated. TYPO3 already prepends the following directories: typo3/, typo3temp/, typo3conf/ext/ and all local storages
                'IPmaskMountGroups' => array( // This allows you to specify an array of IPmaskLists/fe_group-uids. If the REMOTE_ADDR of the user matches an IPmaskList, then the given fe_group is add to the gr_list. So this is an automatic mounting of a user-group. But no fe_user is logged in though! This feature is implemented for the default frontend user authentication and might not be implemented for alternative authentication services.
                        // array('IPmaskList_1','fe_group uid'), array('IPmaskList_2','fe_group uid')
                ),
                'get_url_id_token' => '#get_URL_ID_TOK#',               // This is the token, which is substituted in the output code in order to keep a GET-based session going. Normally the GET-session-id is 5 chars ('&amp;ftu=') + hash_length (norm. 10)
                'content_doktypes' => '1,2,5,7',                // List of pages.doktype values which can contain content (so shortcut pages and external url pages are excluded, but all pages below doktype 199 should be included. doktype=6 is not either (backend users only...).
                'enable_mount_pids' => TRUE,            // Boolean: If set to "1", the mount_pid feature allowing 'symlinks' in the page tree (for frontend operation) is allowed.
-               'pageOverlayFields' => 'uid,title,subtitle,nav_title,media,keywords,description,abstract,author,author_email,url,urltype,shortcut,shortcut_mode',               // List of fields from the table "pages_language_overlay" which should be overlaid on page records. See t3lib_page::getPageOverlay()
+               'pageOverlayFields' => 'uid,doktype,title,subtitle,nav_title,media,keywords,description,abstract,author,author_email,url,urltype,shortcut,shortcut_mode',               // List of fields from the table "pages_language_overlay" which should be overlaid on page records. See \TYPO3\CMS\Frontend\Page\PageRepository::getPageOverlay()
                'hidePagesIfNotTranslatedByDefault' => FALSE,           // Boolean: If TRUE, pages that has no translation will be hidden by default. Basically this will inverse the effect of the page localization setting "Hide page if no translation for current language exists" to "Show page even if no translation exists"
                'eID_include' => array(),               // Array of key/value pairs where key is "tx_[ext]_[optional suffix]" and value is relative filename of class to include. Key is used as "?eID=" for index_ts.php to include the code file which renders the page from that point. (Useful for functionality that requires a low initialization footprint, eg. frontend ajax applications)
                'disableNoCacheParameter' => FALSE,             // Boolean: If set, the no_cache request parameter will become ineffective. This is currently still an experimental feature and will require a website only with plugins that don't use this parameter. However, using "&amp;no_cache=1" should be avoided anyway because there are better ways to disable caching for a certain part of the website (see COA_INT/USER_INT documentation in TSref).
                'cacheHash' => array(),         // Array: Processed values of the cHash* parameters, handled by core bootstrap internally
-               'cHashExcludedParameters' => 'L',               // String: The the given parameters will be ignored in the cHash calculation. Example: L,tx_search_pi1[query]
+               'cHashExcludedParameters' => 'L, pk_campaign, pk_kwd, utm_source, utm_medium, utm_campaign, utm_term, utm_content',             // String: The the given parameters will be ignored in the cHash calculation. Example: L,tx_search_pi1[query]
                'cHashOnlyForParameters' => '',         // String: Only the given parameters will be evaluated in the cHash calculation. Example: tx_news_pi1[uid]
                'cHashRequiredParameters' => '',                // Optional: Configure Parameters that require a cHash. If no cHash is given but one of the parameters are set, then TYPO3 triggers the configured cHash Error behaviour
                'cHashExcludedParametersIfEmpty' => '',         // Optional: Configure Parameters that are only relevant for the chash if there's an associated value available. And asterisk "*" can be used to skip all empty parameters.
@@ -801,7 +1056,7 @@ return array(
                'transport_smtp_encrypt' => '',         // String: <em>only with transport=smtp</em>: Connect to the server using the specified transport protocol. Requires openssl library. Usually available: <em>ssl, sslv2, sslv3, tls</em>. Check <a href="http://www.php.net/stream_get_transports" target="_blank">stream_get_transports()</a>.
                'transport_smtp_username' => '',                // String: <em>only with transport=smtp</em>: If your SMTP server requires authentication, enter your username here.
                'transport_smtp_password' => '',                // String: <em>only with transport=smtp</em>: If your SMTP server requires authentication, enter your password here.
-               'transport_sendmail_command' => '/usr/sbin/sendmail -bs',               // String: <em>only with transport=sendmail</em>: The command to call to send a mail locally. The default works on most modern UNIX based mail server (sendmail, postfix, exim)
+               'transport_sendmail_command' => '',             // String: <em>only with transport=sendmail</em>: The command to call to send a mail locally.
                'transport_mbox_file' => '',            // String: <em>only with transport=mbox</em>: The file where to write the mails into. This file will be conforming the mbox format described in RFC 4155. It is a simple text file with a concatenation of all mails. Path must be absolute.
                'defaultMailFromAddress' => '',         // String: This default email address is used when no other "from" address is set for a TYPO3-generated email. You can specify an email address only (ex. info@example.org).
                'defaultMailFromName' => '',            // String: This default name is used when no other "from" name is set for a TYPO3-generated email.
@@ -814,7 +1069,7 @@ return array(
                'follow_redirects' => FALSE,            // Boolean: If set, redirects are followed by default. If number of tries are exceeded, an exception is thrown.
                'max_redirects' => 5,           // Integer: Maximum number of tries before an exception is thrown.
                'strict_redirects' => FALSE,            // Boolean: Whether to keep request method on redirects via status 301 and 302 (TRUE, needed for compatibility with <a href="http://www.faqs.org/rfcs/rfc2616">RFC 2616</a>) or switch to GET (FALSE, needed for compatibility with most browsers). There are some <a href="http://pear.php.net/manual/en/package.http.http-request2.adapters.php#package.http.http-request2.adapters.curl">issues with cURL adapter</a>. Defaults to FALSE.
-               'proxy_host' => '',             // String: Default proxy server as "http://proxy.example.org" (You must not set the port here. Set the port below.)
+               'proxy_host' => '',             // String: Default proxy server as "proxy.example.org" (You must not set the protocol or the port here. Set the port below.)
                'proxy_port' => '',             // Integer: Default proxy server port.
                'proxy_user' => '',             // String: Default user name.
                'proxy_password' => '',         // String: Default password.
@@ -829,19 +1084,8 @@ return array(
        ),
        'LOG' => array(
                'writerConfiguration' => array(
-                       \TYPO3\CMS\Core\Log\LogLevel::DEBUG => array(
-                               \TYPO3\CMS\Core\Log\Writer\FileWriter::class => array(
-                                       'logFile' => 'typo3temp/logs/typo3.log'
-                               )
-                       )
-               ),
-               'deprecated' => array(
-                       'writerConfiguration' => array(
-                               \TYPO3\CMS\Core\Log\LogLevel::WARNING => array(
-                                       \TYPO3\CMS\Core\Log\Writer\FileWriter::class => array(
-                                               'logFile' => 'typo3conf/deprecation.log'
-                                       )
-                               )
+                       \TYPO3\CMS\Core\Log\LogLevel::WARNING => array(
+                               \TYPO3\CMS\Core\Log\Writer\FileWriter::class => array()
                        )
                )
        ),