[TASK] Remove needless string concatenations 55/60155/5
authorGeorg Ringer <georg.ringer@gmail.com>
Mon, 11 Mar 2019 16:55:14 +0000 (17:55 +0100)
committerDaniel Goerz <daniel.goerz@posteo.de>
Fri, 15 Mar 2019 13:08:06 +0000 (14:08 +0100)
Replace string concatenations like 'abc' . 'def' with 'abcdef'.

Resolves: #87004
Releases: master
Change-Id: I9c1a610e88dd4bd4e617214989a915b1dafda094
Reviewed-on: https://review.typo3.org/c/60155
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Guido Schmechel <guido.schmechel@brandung.de>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
38 files changed:
typo3/sysext/backend/Classes/Controller/FormFlexAjaxController.php
typo3/sysext/backend/Classes/Controller/FormInlineAjaxController.php
typo3/sysext/backend/Classes/Controller/NewRecordController.php
typo3/sysext/backend/Classes/Controller/SiteInlineAjaxController.php
typo3/sysext/backend/Classes/Form/Container/FlexFormSectionContainer.php
typo3/sysext/backend/Classes/Form/Container/InlineControlContainer.php
typo3/sysext/backend/Classes/Form/Container/InlineRecordContainer.php
typo3/sysext/backend/Classes/Form/InlineStackProcessor.php
typo3/sysext/backend/Classes/Tree/View/PagePositionMap.php
typo3/sysext/backend/Classes/View/PageLayoutView.php
typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php
typo3/sysext/core/Classes/Cache/Backend/MemcachedBackend.php
typo3/sysext/core/Classes/Cache/Backend/PdoBackend.php
typo3/sysext/core/Classes/Cache/Backend/SimpleFileBackend.php
typo3/sysext/core/Classes/DataHandling/DataHandler.php
typo3/sysext/core/Classes/Database/QueryGenerator.php
typo3/sysext/core/Classes/FormProtection/FormProtectionFactory.php
typo3/sysext/core/Classes/Html/RteHtmlParser.php
typo3/sysext/core/Classes/Imaging/GraphicalFunctions.php
typo3/sysext/core/Classes/Resource/Service/UserFileInlineLabelService.php
typo3/sysext/core/Classes/TypoScript/ExtendedTemplateService.php
typo3/sysext/core/Classes/Utility/ArrayUtility.php
typo3/sysext/core/Classes/Utility/GeneralUtility.php
typo3/sysext/core/Tests/Unit/Html/RteHtmlParserTest.php
typo3/sysext/core/Tests/Unit/Http/MiddlewareStackResolverTest.php
typo3/sysext/core/Tests/Unit/Utility/CommandUtilityTest.php
typo3/sysext/extensionmanager/Classes/Utility/Connection/TerUtility.php
typo3/sysext/fluid/Tests/Unit/ViewHelpers/FormViewHelperTest.php
typo3/sysext/frontend/Classes/Page/PageRepository.php
typo3/sysext/frontend/Tests/Unit/ContentObject/ContentObjectRendererTest.php
typo3/sysext/install/Classes/Service/ExtensionConfigurationService.php
typo3/sysext/install/Classes/SystemEnvironment/Check.php
typo3/sysext/linkvalidator/Classes/Report/LinkValidatorReport.php
typo3/sysext/recordlist/Classes/RecordList/DatabaseRecordList.php
typo3/sysext/reports/Classes/Report/Status/ConfigurationStatus.php
typo3/sysext/reports/Classes/Task/SystemStatusUpdateTaskNotificationEmailField.php
typo3/sysext/scheduler/Classes/Task/IpAnonymizationAdditionalFieldProvider.php
typo3/sysext/scheduler/Classes/Task/TableGarbageCollectionAdditionalFieldProvider.php

index 47db685..b34995d 100644 (file)
@@ -96,7 +96,7 @@ class FormFlexAjaxController extends AbstractFormEngineAjaxController
         $formData['flexFormContainerIdentifier'] = $flexFormContainerIdentifier;
         $formData['flexFormContainerElementCollapsed'] = false;
 
-        $formData['flexFormFormPrefix'] = '[data][' . $flexFormSheetName . '][lDEF]' . '[' . $flexFormFieldName . ']' . '[el]';
+        $formData['flexFormFormPrefix'] = '[data][' . $flexFormSheetName . '][lDEF][' . $flexFormFieldName . '][el]';
 
         // Set initialized data of that section container from compiler to the array part used
         // by flexFormElementContainer which prepares parameterArray. Important for initialized
index 84b2001..bca3c68 100644 (file)
@@ -719,7 +719,7 @@ class FormInlineAjaxController extends AbstractFormEngineAjaxController
         // Substitute FlexForm addition and make parsing a bit easier
         $domObjectId = str_replace('---', ':', $domObjectId);
         // The starting pattern of an object identifier (e.g. "data-<firstPidValue>-<anything>)
-        $pattern = '/^data' . '-' . '(.+?)' . '-' . '(.+)$/';
+        $pattern = '/^data-(.+?)-(.+)$/';
         if (preg_match($pattern, $domObjectId, $match)) {
             return $match[1];
         }
index d6b8be1..a8b55bc 100644 (file)
@@ -607,7 +607,7 @@ class NewRecordController
                                             include $extEmConfFile;
                                             $thisTitle = $EM_CONF[$_EXTKEY]['title'];
                                         }
-                                        $iconFile[$_EXTKEY] = '<img src="' . PathUtility::getAbsoluteWebPath(ExtensionManagementUtility::getExtensionIcon($extPath, true)) . '" ' . 'width="16" height="16" ' . 'alt="' . $thisTitle . '" />';
+                                        $iconFile[$_EXTKEY] = '<img src="' . PathUtility::getAbsoluteWebPath(ExtensionManagementUtility::getExtensionIcon($extPath, true)) . '" width="16" height="16" alt="' . $thisTitle . '" />';
                                     }
                                 }
                                 if (empty($thisTitle)) {
index 7078085..4d5dbbb 100644 (file)
@@ -397,7 +397,7 @@ class SiteInlineAjaxController extends AbstractFormEngineAjaxController
         // Substitute FlexForm addition and make parsing a bit easier
         $domObjectId = str_replace('---', ':', $domObjectId);
         // The starting pattern of an object identifier (e.g. "data-<firstPidValue>-<anything>)
-        $pattern = '/^data' . '-' . '(.+?)' . '-' . '(.+)$/';
+        $pattern = '/^data-(.+?)-(.+)$/';
         if (preg_match($pattern, $domObjectId, $match)) {
             return (int)$match[1];
         }
index bd500eb..c3d52bb 100644 (file)
@@ -60,7 +60,7 @@ class FlexFormSectionContainer extends AbstractContainer
             $options = $this->data;
             $options['flexFormRowData'] = $existingContainerData['el'];
             $options['flexFormDataStructureArray'] = $containerDataStructure;
-            $options['flexFormFormPrefix'] = $this->data['flexFormFormPrefix'] . '[' . $flexFormFieldName . ']' . '[el]';
+            $options['flexFormFormPrefix'] = $this->data['flexFormFormPrefix'] . '[' . $flexFormFieldName . '][el]';
             $options['flexFormContainerName'] = $existingSectionContainerDataStructureType;
             $options['flexFormContainerIdentifier'] = $flexFormContainerIdentifier;
             $options['flexFormContainerElementCollapsed'] = (bool)$flexFormRowData[$flexFormContainerIdentifier]['_TOGGLE'];
index 0885c83..7a2beb8 100644 (file)
@@ -363,7 +363,7 @@ class InlineControlContainer extends AbstractContainer
         }
         // Add Drag&Drop functions for sorting to FormEngine::$additionalJS_post
         if (count($sortableRecordUids) > 1 && $config['appearance']['useSortable']) {
-            $resultArray['additionalJavaScriptPost'][] = 'inline.createDragAndDropSorting("' . $nameObject . '_records' . '");';
+            $resultArray['additionalJavaScriptPost'][] = 'inline.createDragAndDropSorting("' . $nameObject . '_records");';
         }
         $resultArray['requireJsModules'] = array_merge($resultArray['requireJsModules'], $this->requireJsModules);
 
index 0c216a8..86bcaab 100644 (file)
@@ -314,7 +314,7 @@ class InlineRecordContainer extends AbstractContainer
 
         $altText = BackendUtility::getRecordIconAltText($rec, $foreignTable);
 
-        $iconImg = '<span title="' . $altText . '" id="' . htmlspecialchars($objectId) . '_icon' . '">' . $this->iconFactory->getIconForRecord($foreignTable, $rec, Icon::SIZE_SMALL)->render() . '</span>';
+        $iconImg = '<span title="' . $altText . '" id="' . htmlspecialchars($objectId) . '_icon">' . $this->iconFactory->getIconForRecord($foreignTable, $rec, Icon::SIZE_SMALL)->render() . '</span>';
         $label = '<span id="' . $objectId . '_label">' . $recordTitle . '</span>';
         $ctrl = $this->renderForeignRecordHeaderControl($data);
         $thumbnail = false;
@@ -552,14 +552,14 @@ class InlineRecordContainer extends AbstractContainer
                     $title = htmlspecialchars($languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_mod_web_list.xlf:unHide' . ($isPagesTable ? 'Page' : '')));
                     $cells['hide'] = '
                         <a class="btn btn-default hiddenHandle ' . $className . '" href="#" onclick="
-                            ' . htmlspecialchars($onClick) . '"' . 'title="' . $title . '">
+                            ' . htmlspecialchars($onClick) . '" title="' . $title . '">
                             ' . $this->iconFactory->getIcon('actions-edit-unhide', Icon::SIZE_SMALL)->render() . '
                         </a>';
                 } else {
                     $title = htmlspecialchars($languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_mod_web_list.xlf:hide' . ($isPagesTable ? 'Page' : '')));
                     $cells['hide'] = '
                         <a class="btn btn-default hiddenHandle ' . $className . '" href="#" onclick="
-                            ' . htmlspecialchars($onClick) . '"' . 'title="' . $title . '">
+                            ' . htmlspecialchars($onClick) . '" title="' . $title . '">
                             ' . $this->iconFactory->getIcon('actions-edit-hide', Icon::SIZE_SMALL)->render() . '
                         </a>';
                 }
@@ -584,7 +584,7 @@ class InlineRecordContainer extends AbstractContainer
         if ($lockInfo = BackendUtility::isRecordLocked($foreignTable, $rec['uid'])) {
             $cells['locked'] = '
                                <a class="btn btn-default" href="#" data-toggle="tooltip" data-title="' . htmlspecialchars($lockInfo['msg']) . '">
-                                       ' . '<span title="' . htmlspecialchars($lockInfo['msg']) . '">' . $this->iconFactory->getIcon('warning-in-use', Icon::SIZE_SMALL)->render() . '</span>' . '
+                                       <span title="' . htmlspecialchars($lockInfo['msg']) . '">' . $this->iconFactory->getIcon('warning-in-use', Icon::SIZE_SMALL)->render() . '</span>
                                </a>';
         }
         // Hook: Post-processing of single controls for specific child records:
index 276664d..315ae2f 100644 (file)
@@ -62,7 +62,7 @@ class InlineStackProcessor
         // Substitute FlexForm addition and make parsing a bit easier
         $domObjectId = str_replace('---', ':', $domObjectId);
         // The starting pattern of an object identifier (e.g. "data-<firstPidValue>-<anything>)
-        $pattern = '/^data' . '-' . '(.+?)' . '-' . '(.+)$/';
+        $pattern = '/^data-(.+?)-(.+)$/';
 
         if (preg_match($pattern, $domObjectId, $match)) {
             $inlineFirstPid = $match[1];
@@ -167,7 +167,7 @@ class InlineStackProcessor
         $inlineDomObjectId = '';
         // If there are still more inline levels available
         if ($current !== false) {
-            $inlineDomObjectId = 'data' . '-' . $inlineFirstPid . '-' . $this->getStructurePath();
+            $inlineDomObjectId = 'data-' . $inlineFirstPid . '-' . $this->getStructurePath();
         }
         return $inlineDomObjectId;
     }
index f01e348..3cb0b0f 100644 (file)
@@ -527,7 +527,7 @@ class PagePositionMap
             $uid = '';
         }
         $cc = hexdec(substr(md5($uid . '-' . $vv . '-' . $kk), 0, 4));
-        return '<a href="#" onclick="' . htmlspecialchars($this->onClickInsertRecord($row, $vv, $moveUid, $pid, $this->cur_sys_language)) . '" data-dismiss="modal">' . '<i class="t3-icon fa fa-long-arrow-left" name="mImgEnd' . $cc . '" title="' . htmlspecialchars($this->getLanguageService()->getLL($this->l_insertNewRecordHere)) . '"></i></a>';
+        return '<a href="#" onclick="' . htmlspecialchars($this->onClickInsertRecord($row, $vv, $moveUid, $pid, $this->cur_sys_language)) . '" data-dismiss="modal"><i class="t3-icon fa fa-long-arrow-left" name="mImgEnd' . $cc . '" title="' . htmlspecialchars($this->getLanguageService()->getLL($this->l_insertNewRecordHere)) . '"></i></a>';
     }
 
     /**
index 1909486..12f78f8 100644 (file)
@@ -966,7 +966,7 @@ class PageLayoutView implements LoggerAwareInterface
                 if ($this->getBackendUser()->checkLanguageAccess($lP) && $columnId !== 'unused') {
                     $content[$columnId] .= '
                     <div class="t3-page-ce t3js-page-ce" data-page="' . (int)$id . '" id="' . StringUtility::getUniqueId() . '">
-                        <div class="t3js-page-new-ce t3-page-ce-wrapper-new-ce" id="colpos-' . $columnId . '-' . 'page-' . $id . '-' . StringUtility::getUniqueId() . '">'
+                        <div class="t3js-page-new-ce t3-page-ce-wrapper-new-ce" id="colpos-' . $columnId . '-page-' . $id . '-' . StringUtility::getUniqueId() . '">'
                             . $link
                             . '</div>
                         <div class="t3-page-ce-dropzone-available t3js-page-ce-dropzone-available"></div>
@@ -1024,7 +1024,7 @@ class PageLayoutView implements LoggerAwareInterface
                                 . $row['uid'] . '" data-table="tt_content" data-uid="' . $row['uid'] . '"' . $displayNone . '>' . $singleElementHTML . '</div>';
 
                             $singleElementHTML .= '<div class="t3-page-ce" data-colpos="' . $columnId . '">';
-                            $singleElementHTML .= '<div class="t3js-page-new-ce t3-page-ce-wrapper-new-ce" id="colpos-' . $columnId . '-' . 'page-' . $id .
+                            $singleElementHTML .= '<div class="t3js-page-new-ce t3-page-ce-wrapper-new-ce" id="colpos-' . $columnId . '-page-' . $id .
                                 '-' . StringUtility::getUniqueId() . '">';
                             // Add icon "new content element below"
                             if (!$disableMoveAndNewButtons
@@ -1412,7 +1412,7 @@ class PageLayoutView implements LoggerAwareInterface
                         }
                         $out .= '
                         <tr>
-                                                       <td valign="top" class="t3-grid-cell">' . implode('</td>' . '
+                                                       <td valign="top" class="t3-grid-cell">' . implode('</td>
                                                        <td valign="top" class="t3-grid-cell">', $cCont) . '</td>
                                                </tr>';
                     }
@@ -1472,7 +1472,7 @@ class PageLayoutView implements LoggerAwareInterface
         $localizedTableTitle = htmlspecialchars($this->getLanguageService()->sL($GLOBALS['TCA'][$table]['ctrl']['title']));
         $out .= '<tr><th class="col-icon"></th>'
             . '<th colspan="' . (count($theData) - 2) . '"><span class="c-table">'
-            . $localizedTableTitle . '</span> (' . $dbCount . ')</td>' . '<td class="col-icon"></td>'
+            . $localizedTableTitle . '</span> (' . $dbCount . ')</td><td class="col-icon"></td>'
             . '</tr>';
         // Column's titles
         if ($this->doEdit) {
@@ -1587,7 +1587,7 @@ class PageLayoutView implements LoggerAwareInterface
                     if ($GLOBALS['TCA'][$table]['columns'][$fName2]) {
                         $out[$fieldName] .= '<strong>' . htmlspecialchars($this->getLanguageService()->sL(
                             $GLOBALS['TCA'][$table]['columns'][$fName2]['label']
-                        )) . '</strong>' . '&nbsp;&nbsp;' . htmlspecialchars(GeneralUtility::fixed_lgd_cs(
+                        )) . '</strong>&nbsp;&nbsp;' . htmlspecialchars(GeneralUtility::fixed_lgd_cs(
                             BackendUtility::getProcessedValue($table, $fName2, $row[$fName2], 0, 0, 0, $row['uid']),
                             25
                         )) . '<br />';
index cea788c..1a45cac 100644 (file)
@@ -2491,7 +2491,7 @@ This is a dump of the failures:
     private function emailAtLogin()
     {
         // Send notify-mail
-        $subject = 'At "' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'] . '"' . ' from ' . GeneralUtility::getIndpEnv('REMOTE_ADDR');
+        $subject = 'At "' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'] . '" from ' . GeneralUtility::getIndpEnv('REMOTE_ADDR');
         $msg = sprintf(
             'User "%s" logged in from %s at "%s" (%s)',
             $this->user['username'],
index 4c948bd..e5a9e51 100644 (file)
@@ -96,7 +96,7 @@ class MemcachedBackend extends AbstractBackend implements TaggableBackendInterfa
     public function __construct($context, array $options = [])
     {
         if (!extension_loaded('memcache') && !extension_loaded('memcached')) {
-            throw new Exception('The PHP extension "memcache" or "memcached" must be installed and loaded in ' . 'order to use the Memcached backend.', 1213987706);
+            throw new Exception('The PHP extension "memcache" or "memcached" must be installed and loaded in order to use the Memcached backend.', 1213987706);
         }
 
         parent::__construct($context, $options);
index 3149479..b579880 100644 (file)
@@ -209,7 +209,7 @@ class PdoBackend extends AbstractBackend implements TaggableBackendInterface
      */
     public function collectGarbage()
     {
-        $statementHandle = $this->databaseHandle->prepare('DELETE FROM "tags" WHERE "context"=? AND "cache"=? AND "identifier" IN ' . '(SELECT "identifier" FROM "cache" WHERE "context"=? AND "cache"=? AND "lifetime" > 0 AND "created" + "lifetime" < ' . $GLOBALS['EXEC_TIME'] . ')');
+        $statementHandle = $this->databaseHandle->prepare('DELETE FROM "tags" WHERE "context"=? AND "cache"=? AND "identifier" IN (SELECT "identifier" FROM "cache" WHERE "context"=? AND "cache"=? AND "lifetime" > 0 AND "created" + "lifetime" < ' . $GLOBALS['EXEC_TIME'] . ')');
         $statementHandle->execute([$this->context, $this->cacheIdentifier, $this->context, $this->cacheIdentifier]);
         $statementHandle = $this->databaseHandle->prepare('DELETE FROM "cache" WHERE "context"=? AND "cache"=? AND "lifetime" > 0 AND "created" + "lifetime" < ' . $GLOBALS['EXEC_TIME']);
         $statementHandle->execute([$this->context, $this->cacheIdentifier]);
index 4584b52..4b820be 100644 (file)
@@ -94,7 +94,7 @@ class SimpleFileBackend extends AbstractBackend implements PhpCapableBackendInte
         $this->cacheDirectory = $finalCacheDirectory;
         $this->cacheEntryFileExtension = $cache instanceof PhpFrontend ? '.php' : '';
         if (strlen($this->cacheDirectory) + 23 > PHP_MAXPATHLEN) {
-            throw new Exception('The length of the temporary cache file path "' . $this->cacheDirectory . '" exceeds the ' . 'maximum path length of ' . (PHP_MAXPATHLEN - 23) . '. Please consider ' . 'setting the temporaryDirectoryBase option to a shorter path.', 1248710426);
+            throw new Exception('The length of the temporary cache file path "' . $this->cacheDirectory . '" exceeds the maximum path length of ' . (PHP_MAXPATHLEN - 23) . '. Please consider setting the temporaryDirectoryBase option to a shorter path.', 1248710426);
         }
     }
 
index 489efd9..b046660 100644 (file)
@@ -5943,7 +5943,7 @@ class DataHandler implements LoggerAwareInterface
         $res = false;
 
         if ($GLOBALS['TCA'][$table] && (int)$id > 0) {
-            $cacheId = 'checkRecordUpdateAccess' . '_' . $table . '_' . $id;
+            $cacheId = 'checkRecordUpdateAccess_' . $table . '_' . $id;
 
             // If information is cached, return it
             $cachedValue = $this->runtimeCache->get($cacheId);
@@ -6069,7 +6069,7 @@ class DataHandler implements LoggerAwareInterface
      */
     protected function doesRecordExist_pageLookUp($id, $perms, $columns = ['uid'])
     {
-        $cacheId = md5('doesRecordExist_pageLookUp' . '_' . $id . '_' . $perms . '_' . implode(
+        $cacheId = md5('doesRecordExist_pageLookUp_' . $id . '_' . $perms . '_' . implode(
             '_',
             $columns
         ) . '_' . (string)$this->admin);
index 4818e6e..1195baf 100644 (file)
@@ -670,14 +670,14 @@ class QueryGenerator
                     $lineHTML[] = '<div class="form-inline">';
                     $lineHTML[] = $this->makeComparisonSelector($subscript, $fieldName, $conf);
                     if ($conf['comparison'] === 68 || $conf['comparison'] === 69 || $conf['comparison'] === 162 || $conf['comparison'] === 163) {
-                        $lineHTML[] = '<select class="form-control" name="' . $fieldPrefix . '[inputValue]' . '[]" multiple="multiple">';
+                        $lineHTML[] = '<select class="form-control" name="' . $fieldPrefix . '[inputValue][]" multiple="multiple">';
                     } elseif ($conf['comparison'] === 66 || $conf['comparison'] === 67) {
                         if (is_array($conf['inputValue'])) {
                             $conf['inputValue'] = implode(',', $conf['inputValue']);
                         }
-                        $lineHTML[] = '<input class="form-control t3js-clearable" type="text" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $fieldPrefix . '[inputValue]' . '">';
+                        $lineHTML[] = '<input class="form-control t3js-clearable" type="text" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $fieldPrefix . '[inputValue]">';
                     } else {
-                        $lineHTML[] = '<select class="form-control t3js-submit-change" name="' . $fieldPrefix . '[inputValue]' . '">';
+                        $lineHTML[] = '<select class="form-control t3js-submit-change" name="' . $fieldPrefix . '[inputValue]">';
                     }
                     if ($conf['comparison'] != 66 && $conf['comparison'] != 67) {
                         $lineHTML[] = $this->makeOptionList($fieldName, $conf, $this->table);
@@ -688,7 +688,7 @@ class QueryGenerator
                 case 'boolean':
                     $lineHTML[] = '<div class="form-inline">';
                     $lineHTML[] = $this->makeComparisonSelector($subscript, $fieldName, $conf);
-                    $lineHTML[] = '<input type="hidden" value="1" name="' . $fieldPrefix . '[inputValue]' . '">';
+                    $lineHTML[] = '<input type="hidden" value="1" name="' . $fieldPrefix . '[inputValue]">';
                     $lineHTML[] = '</div>';
                     break;
                 default:
@@ -696,10 +696,10 @@ class QueryGenerator
                     $lineHTML[] = $this->makeComparisonSelector($subscript, $fieldName, $conf);
                     if ($conf['comparison'] === 37 || $conf['comparison'] === 36) {
                         // between:
-                        $lineHTML[] = '<input class="form-control t3js-clearable" type="text" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $fieldPrefix . '[inputValue]' . '">';
-                        $lineHTML[] = '<input class="form-control t3js-clearable" type="text" value="' . htmlspecialchars($conf['inputValue1']) . '" name="' . $fieldPrefix . '[inputValue1]' . '">';
+                        $lineHTML[] = '<input class="form-control t3js-clearable" type="text" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $fieldPrefix . '[inputValue]">';
+                        $lineHTML[] = '<input class="form-control t3js-clearable" type="text" value="' . htmlspecialchars($conf['inputValue1']) . '" name="' . $fieldPrefix . '[inputValue1]">';
                     } else {
-                        $lineHTML[] = '<input class="form-control t3js-clearable" type="text" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $fieldPrefix . '[inputValue]' . '">';
+                        $lineHTML[] = '<input class="form-control t3js-clearable" type="text" value="' . htmlspecialchars($conf['inputValue']) . '" name="' . $fieldPrefix . '[inputValue]">';
                     }
                     $lineHTML[] = '</div>';
             }
@@ -746,7 +746,7 @@ class QueryGenerator
         $lineHTML[] = '        <div class="input-group">';
         $lineHTML[] = $this->mkCompSelect($fieldPrefix . '[comparison]', $conf['comparison'], $conf['negate'] ? 1 : 0);
         $lineHTML[] = '        <div class="input-group-addon">';
-        $lineHTML[] = '                <input type="checkbox" class="checkbox t3js-submit-click"' . ($conf['negate'] ? ' checked' : '') . ' name="' . htmlspecialchars($fieldPrefix) . '[negate]' . '">';
+        $lineHTML[] = '                <input type="checkbox" class="checkbox t3js-submit-click"' . ($conf['negate'] ? ' checked' : '') . ' name="' . htmlspecialchars($fieldPrefix) . '[negate]">';
         $lineHTML[] = '        </div>';
         $lineHTML[] = '        </div>';
         return implode(LF, $lineHTML);
index 8f2d149..4f4fee5 100644 (file)
@@ -186,7 +186,7 @@ class FormProtectionFactory
     protected static function createInstance($className, ...$constructorArguments)
     {
         if (!class_exists($className)) {
-            throw new \InvalidArgumentException('$className must be the name of an existing class, but ' . 'actually was "' . $className . '".', 1285352962);
+            throw new \InvalidArgumentException('$className must be the name of an existing class, but actually was "' . $className . '".', 1285352962);
         }
         $instance = GeneralUtility::makeInstance($className, ...$constructorArguments);
         if (!$instance instanceof AbstractFormProtection) {
index 4619820..ae700a4 100644 (file)
@@ -228,7 +228,7 @@ class RteHtmlParser extends HtmlParser implements LoggerAwareInterface
                             // Transform empty paragraphs into spacing paragraphs
                             $value = str_replace('<p></p>', '<p>&nbsp;</p>', $value);
                             // Double any trailing spacing paragraph so that it does not get removed by divideIntoLines()
-                            $value = preg_replace('/<p>&nbsp;<\/p>$/', '<p>&nbsp;</p>' . '<p>&nbsp;</p>', $value);
+                            $value = preg_replace('/<p>&nbsp;<\/p>$/', '<p>&nbsp;</p><p>&nbsp;</p>', $value);
                             $value = $this->TS_transform_db($value);
                             break;
                         default:
index 4b7bd33..740157b 100644 (file)
@@ -809,7 +809,7 @@ class GraphicalFunctions
      */
     public function addToMap($cords, $conf)
     {
-        $this->map .= '<area' . ' shape="poly"' . ' coords="' . implode(',', $cords) . '"'
+        $this->map .= '<area shape="poly" coords="' . implode(',', $cords) . '"'
             . ' href="' . htmlspecialchars($conf['url']) . '"'
             . ($conf['target'] ? ' target="' . htmlspecialchars($conf['target']) . '"' : '')
             . ((string)$conf['titleText'] !== '' ? ' title="' . htmlspecialchars($conf['titleText']) . '"' : '')
index 34df9b7..098a81c 100644 (file)
@@ -78,7 +78,7 @@ class UserFileInlineLabelService
                 continue;
             }
             $labelText = LocalizationUtility::translate('LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file.' . $field, 'lang');
-            $title[] = '<dt>' . htmlspecialchars($labelText) . '</dt>' . '<dd>' . $value . '</dd>';
+            $title[] = '<dt>' . htmlspecialchars($labelText) . '</dt><dd>' . $value . '</dd>';
         }
         $params['title'] = '<dl>' . implode('', $title) . '</dl>';
     }
index dd5ff85..ae9467e 100644 (file)
@@ -946,9 +946,9 @@ class ExtendedTemplateService extends TemplateService
                                     $editableComments[$const]['subcat'] = $this->subCategories[$catSplit[1]][1]
                                         . '/' . $catSplit[1] . '/' . $orderIdentifier . 'z';
                                 } elseif (isset($catSplit[2])) {
-                                    $editableComments[$const]['subcat'] = 'x' . '/' . trim($catSplit[2]) . 'z';
+                                    $editableComments[$const]['subcat'] = 'x/' . trim($catSplit[2]) . 'z';
                                 } else {
-                                    $editableComments[$const]['subcat'] = 'x' . '/' . $counter . 'z';
+                                    $editableComments[$const]['subcat'] = 'x/' . $counter . 'z';
                                 }
                                 break;
                             case 'label':
@@ -1146,7 +1146,7 @@ class ExtendedTemplateService extends TemplateService
 
                             $p_field =
                                 '<input class="form-control" id="' . $idName . '" type="number"'
-                                . ' name="' . $fN . '" value="' . $fV . '"' . ' onChange="uFormUrl(' . $aname . ')"' . $additionalAttributes . ' />';
+                                . ' name="' . $fN . '" value="' . $fV . '" onChange="uFormUrl(' . $aname . ')"' . $additionalAttributes . ' />';
                             break;
                         case 'color':
                             $p_field = '
index e9b1cdb..02cea56 100644 (file)
@@ -425,7 +425,7 @@ class ArrayUtility
             } elseif (is_int($value) || is_float($value)) {
                 $lines .= $value . ',' . LF;
             } elseif ($value === null) {
-                $lines .= 'null' . ',' . LF;
+                $lines .= 'null,' . LF;
             } elseif (is_bool($value)) {
                 $lines .= $value ? 'true' : 'false';
                 $lines .= ',' . LF;
@@ -433,7 +433,7 @@ class ArrayUtility
                 // Quote \ to \\
                 // Quote ' to \'
                 $stringContent = str_replace(['\\', '\''], ['\\\\', '\\\''], $value);
-                $lines .= '\'' . $stringContent . '\'' . ',' . LF;
+                $lines .= '\'' . $stringContent . '\',' . LF;
             } else {
                 throw new \RuntimeException('Objects are not supported', 1342294987);
             }
index b616ebc..216b0ad 100644 (file)
@@ -3586,7 +3586,7 @@ class GeneralUtility
     {
         self::checkInstanceClassName($className, $instance);
         if ($instance instanceof SingletonInterface) {
-            throw new \InvalidArgumentException('$instance must not be an instance of TYPO3\\CMS\\Core\\SingletonInterface. ' . 'For setting singletons, please use setSingletonInstance.', 1288969325);
+            throw new \InvalidArgumentException('$instance must not be an instance of TYPO3\\CMS\\Core\\SingletonInterface. For setting singletons, please use setSingletonInstance.', 1288969325);
         }
         if (!isset(self::$nonSingletonInstances[$className])) {
             self::$nonSingletonInstances[$className] = [];
index 67159fa..a9c1ed2 100644 (file)
@@ -149,7 +149,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p><br /></p>' . CRLF . '<hr />',
             ],
             'Preserved div followed by hr' => [
-                '<div>Some text</div>' . '<hr />',
+                '<div>Some text</div><hr />',
                 '<div><p>Some text</p></div>' . CRLF . '<hr />',
             ],
             'Preserved div followed by linebreak and hr' => [
@@ -217,7 +217,7 @@ class RteHtmlParserTest extends UnitTestCase
                 CRLF,
             ],
             'Double spacing paragraph' => [
-                '<p>&nbsp;</p>' . '<p>&nbsp;</p>',
+                '<p>&nbsp;</p><p>&nbsp;</p>',
                 CRLF . CRLF,
             ],
             'Plain text' => [
@@ -233,7 +233,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph</p>',
             ],
             'Paragraph followed by paragraph' => [
-                '<p>paragraph1</p>' . '<p>paragraph2</p>',
+                '<p>paragraph1</p><p>paragraph2</p>',
                 '<p>paragraph1</p>' . CRLF . '<p>paragraph2</p>',
             ],
             'Paragraph followed by paragraph, linebreak-separated' => [
@@ -249,7 +249,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph</p>',
             ],
             'Paragraph followed by spacing paragraph' => [
-                '<p>paragraph</p>' . '<p>&nbsp;</p>',
+                '<p>paragraph</p><p>&nbsp;</p>',
                 '<p>paragraph</p>' . CRLF . CRLF,
             ],
             'Paragraph followed by spacing paragraph, linebreak-separated' => [
@@ -257,7 +257,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph</p>' . CRLF . CRLF,
             ],
             'Paragraph followed by double spacing paragraph' => [
-                '<p>paragraph</p>' . '<p>&nbsp;</p>' . '<p>&nbsp;</p>',
+                '<p>paragraph</p><p>&nbsp;</p><p>&nbsp;</p>',
                 '<p>paragraph</p>' . CRLF . CRLF . CRLF,
             ],
             'Paragraph followed by double spacing paragraph, linebreak-separated' => [
@@ -265,7 +265,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph</p>' . CRLF . CRLF . CRLF,
             ],
             'Paragraph followed by spacing paragraph and by paragraph' => [
-                '<p>paragraph1</p>' . '<p>&nbsp;</p>' . '<p>paragraph2</p>',
+                '<p>paragraph1</p><p>&nbsp;</p><p>paragraph2</p>',
                 '<p>paragraph1</p>' . CRLF . CRLF . '<p>paragraph2</p>',
             ],
             'Paragraph followed by spacing paragraph and by paragraph, linebreak-separated' => [
@@ -273,7 +273,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph1</p>' . CRLF . CRLF . '<p>paragraph2</p>',
             ],
             'Paragraph followed by double spacing paragraph and by paragraph' => [
-                '<p>paragraph1</p>' . '<p>&nbsp;</p>' . '<p>&nbsp;</p>' . '<p>paragraph2</p>',
+                '<p>paragraph1</p><p>&nbsp;</p><p>&nbsp;</p><p>paragraph2</p>',
                 '<p>paragraph1</p>' . CRLF . CRLF . CRLF . '<p>paragraph2</p>',
             ],
             'Paragraph followed by double spacing paragraph and by paragraph, linebreak-separated' => [
@@ -281,7 +281,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph1</p>' . CRLF . CRLF . CRLF . '<p>paragraph2</p>',
             ],
             'Paragraph followed by block' => [
-                '<p>paragraph</p>' . '<h1>block</h1>',
+                '<p>paragraph</p><h1>block</h1>',
                 '<p>paragraph</p>' . CRLF . '<h1>block</h1>',
             ],
             'Paragraph followed by block, linebreak-separated' => [
@@ -289,7 +289,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph</p>' . CRLF . '<h1>block</h1>',
             ],
             'Paragraph followed by spacing paragraph and block' => [
-                '<p>paragraph</p>' . '<p>&nbsp;</p>' . '<h1>block</h1>',
+                '<p>paragraph</p><p>&nbsp;</p><h1>block</h1>',
                 '<p>paragraph</p>' . CRLF . CRLF . '<h1>block</h1>',
             ],
             'Paragraph followed by spacing paragraph and block, linebreak-separated' => [
@@ -297,7 +297,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph</p>' . CRLF . CRLF . '<h1>block</h1>',
             ],
             'Paragraph followed by double spacing paragraph and block' => [
-                '<p>paragraph</p>' . '<p>&nbsp;</p>' . '<p>&nbsp;</p>' . '<h1>block</h1>',
+                '<p>paragraph</p><p>&nbsp;</p><p>&nbsp;</p><h1>block</h1>',
                 '<p>paragraph</p>' . CRLF . CRLF . CRLF . '<h1>block</h1>',
             ],
             'Paragraph followed by double spacing paragraph and block, linebreak-separated' => [
@@ -305,7 +305,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph</p>' . CRLF . CRLF . CRLF . '<h1>block</h1>',
             ],
             'Block followed by block' => [
-                '<h1>block1</h1>' . '<h1>block2</h1>',
+                '<h1>block1</h1><h1>block2</h1>',
                 '<h1>block1</h1>' . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by block, linebreak-separated' => [
@@ -313,7 +313,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<h1>block1</h1>' . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by empty paragraph and block' => [
-                '<h1>block1</h1>' . '<p></p>' . '<h1>block2</h1>',
+                '<h1>block1</h1><p></p><h1>block2</h1>',
                 '<h1>block1</h1>' . CRLF . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by empty paragraph aand block, linebreak-separated' => [
@@ -321,7 +321,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<h1>block1</h1>' . CRLF . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by spacing paragraph' => [
-                '<h1>block1</h1>' . '<p>&nbsp;</p>',
+                '<h1>block1</h1><p>&nbsp;</p>',
                 '<h1>block1</h1>' . CRLF . CRLF,
             ],
             'Block followed by spacing paragraph, linebreak-separated' => [
@@ -329,7 +329,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<h1>block1</h1>' . CRLF . CRLF,
             ],
             'Block followed by spacing paragraph and block' => [
-                '<h1>block1</h1>' . '<p>&nbsp;</p>' . '<h1>block2</h1>',
+                '<h1>block1</h1><p>&nbsp;</p><h1>block2</h1>',
                 '<h1>block1</h1>' . CRLF . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by spacing paragraph and block, linebreak-separated' => [
@@ -337,7 +337,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<h1>block1</h1>' . CRLF . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by double spacing paragraph and by block' => [
-                '<h1>block1</h1>' . '<p>&nbsp;</p>' . '<p>&nbsp;</p>' . '<h1>block2</h1>',
+                '<h1>block1</h1><p>&nbsp;</p><p>&nbsp;</p><h1>block2</h1>',
                 '<h1>block1</h1>' . CRLF . CRLF . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by double spacing paragraph and by block, linebreak-separated' => [
@@ -345,7 +345,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<h1>block1</h1>' . CRLF . CRLF . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by paragraph and block' => [
-                '<h1>block1</h1>' . '<p>paragraph</p>' . '<h1>block2</h1>',
+                '<h1>block1</h1><p>paragraph</p><h1>block2</h1>',
                 '<h1>block1</h1>' . CRLF . '<p>paragraph</p>' . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by paragraph and block, linebreak-separated' => [
@@ -353,7 +353,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<h1>block1</h1>' . CRLF . '<p>paragraph</p>' . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by paragraph, spacing paragraph and block' => [
-                '<h1>block1</h1>' . '<p>paragraph</p>' . '<p>&nbsp;</p>' . '<h1>block2</h1>',
+                '<h1>block1</h1><p>paragraph</p><p>&nbsp;</p><h1>block2</h1>',
                 '<h1>block1</h1>' . CRLF . '<p>paragraph</p>' . CRLF . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by paragraph, spacing paragraph and block, linebreak-separated' => [
@@ -425,7 +425,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph1</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>paragraph2</p>',
             ],
             'Paragraph followed by block' => [
-                'paragraph' . '<h1>block</h1>',
+                'paragraph<h1>block</h1>',
                 '<p>paragraph</p>' . CRLF . '<h1>block</h1>',
             ],
             'Paragraph followed by linebreak and block' => [
@@ -441,7 +441,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<h1>block</h1>',
             ],
             'Block followed by block' => [
-                '<h1>block1</h1>' . '<h1>block2</h1>',
+                '<h1>block1</h1><h1>block2</h1>',
                 '<h1>block1</h1>' . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by single linebreak and block' => [
@@ -505,7 +505,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>plain text </p>',
             ],
             'Plain text followed by paragraph' => [
-                'plain text' . '<p>paragraph</p>',
+                'plain text<p>paragraph</p>',
                 '<p>plain text</p>' . CRLF . '<p>paragraph</p>',
             ],
             'Spacing paragraph' => [
@@ -533,7 +533,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>&nbsp;</p>',
             ],
             'Paragraph followed by paragraph' => [
-                '<p>paragraph1</p>' . '<p>paragraph2</p>',
+                '<p>paragraph1</p><p>paragraph2</p>',
                 '<p>paragraph1</p>' . CRLF . '<p>paragraph2</p>',
             ],
             'Paragraph followed by paragraph, linebreak-separated' => [
@@ -541,7 +541,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph1</p>' . CRLF . '<p>paragraph2</p>',
             ],
             'Paragraph followed by spacing paragraph and by paragraph' => [
-                '<p>paragraph1</p>' . '<p>&nbsp;</p>' . '<p>paragraph2</p>',
+                '<p>paragraph1</p><p>&nbsp;</p><p>paragraph2</p>',
                 '<p>paragraph1</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>paragraph2</p>',
             ],
             'Paragraph followed by spacing paragraph and by paragraph, linebreak-separated' => [
@@ -549,7 +549,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph1</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>paragraph2</p>',
             ],
             'Paragraph followed by double spacing paragraph and by paragraph' => [
-                '<p>paragraph1</p>' . '<p>&nbsp;</p>' . '<p>&nbsp;</p>' . '<p>paragraph2</p>',
+                '<p>paragraph1</p><p>&nbsp;</p><p>&nbsp;</p><p>paragraph2</p>',
                 '<p>paragraph1</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>paragraph2</p>',
             ],
             'Paragraph followed by double spacing paragraph and by paragraph, linebreak-separated' => [
@@ -557,7 +557,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph1</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>paragraph2</p>',
             ],
             'Paragraph followed by block' => [
-                '<p>paragraph</p>' . '<h1>block</h1>',
+                '<p>paragraph</p><h1>block</h1>',
                 '<p>paragraph</p>' . CRLF . '<h1>block</h1>',
             ],
             'Paragraph followed by block, linebreak-separated' => [
@@ -565,7 +565,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph</p>' . CRLF . '<h1>block</h1>',
             ],
             'Paragraph followed by spacing paragraph and by block' => [
-                '<p>paragraph</p>' . '<p>&nbsp;</p>' . '<h1>block</h1>',
+                '<p>paragraph</p><p>&nbsp;</p><h1>block</h1>',
                 '<p>paragraph</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<h1>block</h1>',
             ],
             'Paragraph followed by spacing paragraph and by block, linebreak-separated' => [
@@ -573,7 +573,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<h1>block</h1>',
             ],
             'Paragraph followed by double spacing paragraph and by block' => [
-                '<p>paragraph</p>' . '<p>&nbsp;</p>' . '<p>&nbsp;</p>' . '<h1>block</h1>',
+                '<p>paragraph</p><p>&nbsp;</p><p>&nbsp;</p><h1>block</h1>',
                 '<p>paragraph</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<h1>block</h1>',
             ],
             'Paragraph followed by double spacing paragraph and by block, linebreak-separated' => [
@@ -581,7 +581,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<p>paragraph</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<h1>block</h1>',
             ],
             'Block followed by block' => [
-                '<h1>block1</h1>' . '<h1>block2</h1>',
+                '<h1>block1</h1><h1>block2</h1>',
                 '<h1>block1</h1>' . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by block, linebreak-separated' => [
@@ -589,7 +589,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<h1>block1</h1>' . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by empty paragraph and by block' => [
-                '<h1>block1</h1>' . '<p></p>' . '<h1>block2</h1>',
+                '<h1>block1</h1><p></p><h1>block2</h1>',
                 '<h1>block1</h1>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by empty paragraph and by block, linebreak-separated' => [
@@ -597,7 +597,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<h1>block1</h1>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by spacing paragraph and by block' => [
-                '<h1>block1</h1>' . '<p>&nbsp;</p>' . '<h1>block2</h1>',
+                '<h1>block1</h1><p>&nbsp;</p><h1>block2</h1>',
                 '<h1>block1</h1>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by spacing paragraph and by block, linebreak-separated' => [
@@ -605,7 +605,7 @@ class RteHtmlParserTest extends UnitTestCase
                 '<h1>block1</h1>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by double spacing paragraph and by block' => [
-                '<h1>block1</h1>' . '<p>&nbsp;</p>' . '<p>&nbsp;</p>' . '<h1>block2</h1>',
+                '<h1>block1</h1><p>&nbsp;</p><p>&nbsp;</p><h1>block2</h1>',
                 '<h1>block1</h1>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<p>&nbsp;</p>' . CRLF . '<h1>block2</h1>',
             ],
             'Block followed by double spacing paragraph and by block, linebreak-separated' => [
index 2b19639..e82312a 100644 (file)
@@ -34,9 +34,9 @@ class MiddlewareStackResolverTest extends UnitTestCase
     public function resolveReturnsMiddlewareStack()
     {
         $package1 = $this->prophesize(Package::class);
-        $package1->getPackagePath()->willReturn(__DIR__ . '/' . 'Fixtures/Package1/');
+        $package1->getPackagePath()->willReturn(__DIR__ . '/Fixtures/Package1/');
         $package2 = $this->prophesize(Package::class);
-        $package2->getPackagePath()->willReturn(__DIR__ . '/' . 'Fixtures/Package2/');
+        $package2->getPackagePath()->willReturn(__DIR__ . '/Fixtures/Package2/');
         $packageManagerProphecy = $this->prophesize(PackageManager::class);
         $packageManagerProphecy->getActivePackages()->willReturn([$package1->reveal(), $package2->reveal()]);
         $dependencyOrderingServiceProphecy = $this->prophesize(DependencyOrderingService::class);
@@ -86,9 +86,9 @@ class MiddlewareStackResolverTest extends UnitTestCase
     public function resolveAllowsDisablingAMiddleware()
     {
         $package1 = $this->prophesize(Package::class);
-        $package1->getPackagePath()->willReturn(__DIR__ . '/' . 'Fixtures/Package1/');
+        $package1->getPackagePath()->willReturn(__DIR__ . '/Fixtures/Package1/');
         $package2 = $this->prophesize(Package::class);
-        $package2->getPackagePath()->willReturn(__DIR__ . '/' . 'Fixtures/Package2Disables1/');
+        $package2->getPackagePath()->willReturn(__DIR__ . '/Fixtures/Package2Disables1/');
         $packageManagerProphecy = $this->prophesize(PackageManager::class);
         $packageManagerProphecy->getActivePackages()->willReturn([$package1->reveal(), $package2->reveal()]);
         $dependencyOrderingServiceProphecy = $this->prophesize(DependencyOrderingService::class);
@@ -115,9 +115,9 @@ class MiddlewareStackResolverTest extends UnitTestCase
     public function resolveAllowsReplacingAMiddleware()
     {
         $package1 = $this->prophesize(Package::class);
-        $package1->getPackagePath()->willReturn(__DIR__ . '/' . 'Fixtures/Package1/');
+        $package1->getPackagePath()->willReturn(__DIR__ . '/Fixtures/Package1/');
         $package2 = $this->prophesize(Package::class);
-        $package2->getPackagePath()->willReturn(__DIR__ . '/' . 'Fixtures/Package2Replaces1/');
+        $package2->getPackagePath()->willReturn(__DIR__ . '/Fixtures/Package2Replaces1/');
         $packageManagerProphecy = $this->prophesize(PackageManager::class);
         $packageManagerProphecy->getActivePackages()->willReturn([$package1->reveal(), $package2->reveal()]);
         $dependencyOrderingServiceProphecy = $this->prophesize(DependencyOrderingService::class);
index e2014ab..bd2c040 100644 (file)
@@ -64,11 +64,11 @@ class CommandUtilityTest extends UnitTestCase
                 $defaultExpected
             ],
             'separated by char(10)' => [
-                'perl=/usr/bin/perl' . '\'.chr(10).\'' . 'unzip=/usr/local/bin/unzip',
+                'perl=/usr/bin/perl\'.chr(10).\'unzip=/usr/local/bin/unzip',
                 $defaultExpected
             ],
             'separated by LF as string' => [
-                'perl=/usr/bin/perl' . '\' . LF . \'' . 'unzip=/usr/local/bin/unzip',
+                'perl=/usr/bin/perl\' . LF . \'unzip=/usr/local/bin/unzip',
                 $defaultExpected
             ]
         ];
index 023e35c..8acf85d 100644 (file)
@@ -117,7 +117,7 @@ class TerUtility
             if (function_exists('gzuncompress')) {
                 $parts[2] = gzuncompress($parts[2]);
             } else {
-                throw new ExtensionManagerException('Decoding Error: No decompressor available for compressed content. gzcompress()/gzuncompress() ' . 'functions are not available!', 1344761814);
+                throw new ExtensionManagerException('Decoding Error: No decompressor available for compressed content. gzcompress()/gzuncompress() functions are not available!', 1344761814);
             }
         }
         if (md5($parts[2]) === $parts[0]) {
@@ -126,7 +126,7 @@ class TerUtility
                 throw new ExtensionManagerException('Error: Content could not be unserialized to an array. Strange (since MD5 hashes match!)', 1344761938);
             }
         } else {
-            throw new ExtensionManagerException('Error: MD5 mismatch. Maybe the extension file was downloaded and saved as a text file by the ' . 'browser and thereby corrupted!? (Always select "All" filetype when saving extensions)', 1344761991);
+            throw new ExtensionManagerException('Error: MD5 mismatch. Maybe the extension file was downloaded and saved as a text file by the browser and thereby corrupted!? (Always select "All" filetype when saving extensions)', 1344761991);
         }
         return $output;
     }
index e2a9d0f..5e407d7 100644 (file)
@@ -195,7 +195,7 @@ class FormViewHelperTest extends ViewHelperBaseTestcase
         $viewHelper->expects($this->once())->method('renderAdditionalIdentityFields')->will($this->returnValue('additionalIdentityFields'));
         $viewHelper->expects($this->once())->method('renderHiddenReferrerFields')->will($this->returnValue('hiddenReferrerFields'));
         $viewHelper->expects($this->once())->method('renderChildren')->will($this->returnValue('formContent'));
-        $expectedResult =  \chr(10) . '<div>' . 'hiddenIdentityFieldadditionalIdentityFieldshiddenReferrerFields' . \chr(10) . '</div>' . \chr(10) . 'formContent';
+        $expectedResult =  \chr(10) . '<div>hiddenIdentityFieldadditionalIdentityFieldshiddenReferrerFields' . \chr(10) . '</div>' . \chr(10) . 'formContent';
         $this->tagBuilder->expects($this->once())->method('setContent')->with($expectedResult);
         $viewHelper->_set('tag', $this->tagBuilder);
         $viewHelper->render();
@@ -217,7 +217,7 @@ class FormViewHelperTest extends ViewHelperBaseTestcase
         $viewHelper->expects($this->once())->method('renderAdditionalIdentityFields')->will($this->returnValue('additionalIdentityFields'));
         $viewHelper->expects($this->once())->method('renderHiddenReferrerFields')->will($this->returnValue('hiddenReferrerFields'));
         $viewHelper->expects($this->once())->method('renderChildren')->will($this->returnValue('formContent'));
-        $expectedResult =  \chr(10) . '<div class="hidden">' . 'hiddenIdentityFieldadditionalIdentityFieldshiddenReferrerFields' . \chr(10) . '</div>' . \chr(10) . 'formContent';
+        $expectedResult =  \chr(10) . '<div class="hidden">hiddenIdentityFieldadditionalIdentityFieldshiddenReferrerFields' . \chr(10) . '</div>' . \chr(10) . 'formContent';
         $this->tagBuilder->expects($this->once())->method('setContent')->with($expectedResult);
         $viewHelper->setArguments(['hiddenFieldClassName' => 'hidden']);
         $viewHelper->_set('tag', $this->tagBuilder);
index e283dca..ffe6273 100644 (file)
@@ -1309,7 +1309,7 @@ class PageRepository implements LoggerAwareInterface
                 }
             }
         } else {
-            throw new \InvalidArgumentException('There is no entry in the $TCA array for the table "' . $table . '". This means that the function enableFields() is ' . 'called with an invalid table name as argument.', 1283790586);
+            throw new \InvalidArgumentException('There is no entry in the $TCA array for the table "' . $table . '". This means that the function enableFields() is called with an invalid table name as argument.', 1283790586);
         }
 
         return empty($constraints) ? '' : ' AND ' . $expressionBuilder->andX(...$constraints);
index becb7b1..1ddfa83 100644 (file)
@@ -633,7 +633,7 @@ class ContentObjectRendererTest extends UnitTestCase
             . chr(229) . 'rh' . chr(248) . 'j</a> implemented</strong> the '
             . 'original version of the crop function.';
         $textWithEntities = 'Kasper Sk&aring;rh&oslash;j implemented the; '
-            . 'original ' . 'version of the crop function.';
+            . 'original version of the crop function.';
         $textWithLinebreaks = "Lorem ipsum dolor sit amet,\n"
             . "consetetur sadipscing elitr,\n"
             . 'sed diam nonumy eirmod tempor invidunt ut labore e'
@@ -8198,7 +8198,7 @@ class ContentObjectRendererTest extends UnitTestCase
                     '&lt;' . $comment . '&gt;',
                     $indent1
                 ),
-                '1|' . '<' . $comment . '>',
+                '1|<' . $comment . '>',
                 '<' . $content . '>'
             ],
         ];
index 76ab1bf..0270a3b 100644 (file)
@@ -280,9 +280,9 @@ class ExtensionConfigurationService
                                     $editableComments[$const]['subcat'] = $this->subCategories[$catSplit[1]][1]
                                         . '/' . $catSplit[1] . '/' . $orderIdentifier . 'z';
                                 } elseif (isset($catSplit[2])) {
-                                    $editableComments[$const]['subcat'] = 'x' . '/' . trim($catSplit[2]) . 'z';
+                                    $editableComments[$const]['subcat'] = 'x/' . trim($catSplit[2]) . 'z';
                                 } else {
-                                    $editableComments[$const]['subcat'] = 'x' . '/' . $counter . 'z';
+                                    $editableComments[$const]['subcat'] = 'x/' . $counter . 'z';
                                 }
                                 break;
                             case 'label':
index 2e6b52a..d1be056 100644 (file)
@@ -232,7 +232,7 @@ class Check implements CheckInterface
                     . $recommendedMemoryLimit . 'MB.'
                     . ' A slim TYPO3 instance without many extensions will probably work, but you should monitor your'
                     . ' system for "allowed memory size of X bytes exhausted" messages, especially if using the backend.'
-                    . ' To be on the safe side,' . ' we recommend a minimum PHP memory limit of '
+                    . ' To be on the safe side, we recommend a minimum PHP memory limit of '
                     . $recommendedMemoryLimit . 'MB:' . LF
                     . 'memory_limit=' . $recommendedMemoryLimit . 'M',
                 'PHP Memory limit below ' . $recommendedMemoryLimit . 'MB',
index 55e8457..adbbfd3 100644 (file)
@@ -718,7 +718,7 @@ class LinkValidatorReport
                         $hookSectionMarker['option'] = '<input type="checkbox"' . $additionalAttr
                             . ' id="' . $prefix . '_SET_' . $type
                             . '" name="' . $prefix . '_SET[' . $type . ']" value="1"'
-                            . ' ' . $checked . '/>' . '<label for="'
+                            . ' ' . $checked . '/><label for="'
                             . $prefix . '_SET_' . $type . '">&nbsp;' . htmlspecialchars($translation) . '</label>';
 
                         $hookSectionContent .= $this->templateService->substituteMarkerArray(
index d7bb737..fac6c60 100644 (file)
@@ -2142,7 +2142,7 @@ class DatabaseRecordList
                     $deleteAction = $this->spaceIcon;
                 } else {
                     $title = BackendUtility::getRecordTitle($table, $row);
-                    $warningText = $this->getLanguageService()->getLL($actionName . 'Warning') . ' "' . $title . '" ' . '[' . $table . ':' . $row['uid'] . ']' . $refCountMsg;
+                    $warningText = $this->getLanguageService()->getLL($actionName . 'Warning') . ' "' . $title . '" [' . $table . ':' . $row['uid'] . ']' . $refCountMsg;
 
                     $params = 'cmd[' . $table . '][' . $row['uid'] . '][delete]=1';
                     $icon = $this->iconFactory->getIcon('actions-edit-' . $actionName, Icon::SIZE_SMALL)->render();
index c31527d..0ccbd8b 100644 (file)
@@ -161,7 +161,7 @@ class ConfigurationStatus implements StatusProviderInterface
         if (!empty($failedConnections)) {
             $value = $this->getLanguageService()->getLL('status_connectionFailed');
             $severity = ReportStatus::WARNING;
-            $message = $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:warning.memcache_not_usable') . '<br /><br />' . '<ul><li>' . implode('</li><li>', $failedConnections) . '</li></ul>';
+            $message = $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:warning.memcache_not_usable') . '<br /><br /><ul><li>' . implode('</li><li>', $failedConnections) . '</li></ul>';
         }
         return GeneralUtility::makeInstance(ReportStatus::class, $this->getLanguageService()->getLL('status_memcachedConfiguration'), $value, $message, $severity);
     }
index 073b69c..d99ea07 100644 (file)
@@ -62,7 +62,7 @@ class SystemStatusUpdateTaskNotificationEmailField extends AbstractAdditionalFie
         // build html for additional email field
         $fieldName = $this->getFullFieldName('notificationEmail');
         $fieldId = 'task_' . $fieldName;
-        $fieldHtml = '<textarea class="form-control" ' . 'rows="5" cols="50" name="tx_scheduler[' . $fieldName . ']" ' . 'id="' . $fieldId . '" ' . '>' . htmlspecialchars($taskInfo[$fieldName]) . '</textarea>';
+        $fieldHtml = '<textarea class="form-control" rows="5" cols="50" name="tx_scheduler[' . $fieldName . ']" id="' . $fieldId . '" >' . htmlspecialchars($taskInfo[$fieldName]) . '</textarea>';
 
         $additionalFields = [];
         $additionalFields[$fieldId] = [
index b3f12d2..7c782f6 100644 (file)
@@ -102,7 +102,7 @@ class IpAnonymizationAdditionalFieldProvider extends AbstractAdditionalFieldProv
             $taskInfo[$fieldId] = $task->numberOfDays ?? 180;
         }
         $fieldName = 'tx_scheduler[' . $fieldId . ']';
-        $fieldHtml = '<input class="form-control" type="text" ' . 'name="' . $fieldName . '" ' . 'id="' . $fieldId . '" ' . 'value="' . (int)$taskInfo[$fieldId] . '" ' . 'size="4">';
+        $fieldHtml = '<input class="form-control" type="text" name="' . $fieldName . '" id="' . $fieldId . '" value="' . (int)$taskInfo[$fieldId] . '" size="4">';
         $fieldConfiguration = [
             'code' => $fieldHtml,
             'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.ipAnonymization.numberOfDays',
@@ -136,7 +136,7 @@ class IpAnonymizationAdditionalFieldProvider extends AbstractAdditionalFieldProv
                 . '</option>';
         }
 
-        $fieldHtml = '<select class="form-control" name="' . $fieldName . '" ' . 'id="' . $fieldId . '">' . $fieldHtml . '</select>';
+        $fieldHtml = '<select class="form-control" name="' . $fieldName . '" id="' . $fieldId . '">' . $fieldHtml . '</select>';
 
         $fieldConfiguration = [
             'code' => $fieldHtml,
index 9a8ab88..cd0b014 100644 (file)
@@ -82,7 +82,7 @@ class TableGarbageCollectionAdditionalFieldProvider extends AbstractAdditionalFi
 
         $fieldName = 'tx_scheduler[scheduler_tableGarbageCollection_allTables]';
         $fieldId = 'task_tableGarbageCollection_allTables';
-        $fieldHtml = '<div class="checkbox"><label><input type="checkbox" ' . $checked . ' name="' . $fieldName . '" ' . 'id="' . $fieldId . '"></label></div>';
+        $fieldHtml = '<div class="checkbox"><label><input type="checkbox" ' . $checked . ' name="' . $fieldName . '" id="' . $fieldId . '"></label></div>';
         $fieldConfiguration = [
             'code' => $fieldHtml,
             'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.tableGarbageCollection.allTables',
@@ -127,7 +127,7 @@ class TableGarbageCollectionAdditionalFieldProvider extends AbstractAdditionalFi
         $fieldId = 'task_tableGarbageCollection_table';
         $fieldHtml = [];
         // Add table drop down html
-        $fieldHtml[] = '<select class="form-control" name="' . $fieldName . '" ' . $disabled . ' id="' . $fieldId . '">' . implode(LF, $options) . '</select>';
+        $fieldHtml[] = '<select class="form-control" name="' . $fieldName . '"' . $disabled . ' id="' . $fieldId . '">' . implode(LF, $options) . '</select>';
         // Add js array for default 'number of days' values
         $fieldHtml[] = '<script type="text/javascript">/*<![CDATA[*/<!--';
         $fieldHtml[] = 'var defaultNumberOfDays = ' . json_encode($this->defaultNumberOfDays) . ';';
@@ -171,7 +171,7 @@ class TableGarbageCollectionAdditionalFieldProvider extends AbstractAdditionalFi
         }
         $fieldName = 'tx_scheduler[scheduler_tableGarbageCollection_numberOfDays]';
         $fieldId = 'task_tableGarbageCollection_numberOfDays';
-        $fieldHtml = '<input class="form-control" type="text" ' . 'name="' . $fieldName . '" ' . 'id="' . $fieldId . '" ' . $disabled . 'value="' . (int)$taskInfo['scheduler_tableGarbageCollection_numberOfDays'] . '" ' . 'size="4">';
+        $fieldHtml = '<input class="form-control" type="text" name="' . $fieldName . '" id="' . $fieldId . '"' . $disabled . ' value="' . (int)$taskInfo['scheduler_tableGarbageCollection_numberOfDays'] . '" size="4">';
         $fieldConfiguration = [
             'code' => $fieldHtml,
             'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.tableGarbageCollection.numberOfDays',