diff --git a/typo3/sysext/install/Classes/FolderStructure/DefaultFactory.php b/typo3/sysext/install/Classes/FolderStructure/DefaultFactory.php index e682cddbbc0216e52782b6a243c61918037636af..97e9417065207666a32ecc25a96952380168e07a 100644 --- a/typo3/sysext/install/Classes/FolderStructure/DefaultFactory.php +++ b/typo3/sysext/install/Classes/FolderStructure/DefaultFactory.php @@ -98,6 +98,33 @@ class DefaultFactory ], ], ], + [ + 'name' => 'typo3conf', + 'type' => DirectoryNode::class, + 'targetPermission' => $directoryPermission, + 'children' => [ + [ + 'name' => 'ext', + 'type' => DirectoryNode::class, + 'targetPermission' => $directoryPermission, + ], + [ + 'name' => 'l10n', + 'type' => DirectoryNode::class, + 'targetPermission' => $directoryPermission, + ], + [ + 'name' => 'sites', + 'type' => DirectoryNode::class, + 'targetPermission' => $directoryPermission, + ], + [ + 'name' => 'system', + 'type' => DirectoryNode::class, + 'targetPermission' => $directoryPermission, + ], + ], + ], $this->getFileadminStructure(), ], ]; @@ -118,36 +145,6 @@ class DefaultFactory 'targetContentFile' => self::TEMPLATE_PATH . '/root-web-config', ]; } - - if (!Environment::isComposerMode()) { - $structure['children'][] = [ - 'name' => 'typo3conf', - 'type' => DirectoryNode::class, - 'targetPermission' => $directoryPermission, - 'children' => [ - [ - 'name' => 'ext', - 'type' => DirectoryNode::class, - 'targetPermission' => $directoryPermission, - ], - [ - 'name' => 'l10n', - 'type' => DirectoryNode::class, - 'targetPermission' => $directoryPermission, - ], - [ - 'name' => 'sites', - 'type' => DirectoryNode::class, - 'targetPermission' => $directoryPermission, - ], - [ - 'name' => 'system', - 'type' => DirectoryNode::class, - 'targetPermission' => $directoryPermission, - ], - ], - ]; - } } else { // This is when the public path is a subfolder (e.g. public/ or web/) $publicPath = substr(Environment::getPublicPath(), strlen(Environment::getProjectPath()) + 1); @@ -167,6 +164,11 @@ class DefaultFactory $this->getTemporaryAssetsFolderStructure(), ], ], + [ + 'name' => 'typo3conf', + 'type' => DirectoryNode::class, + 'targetPermission' => $directoryPermission, + ], $this->getFileadminStructure(), ]; @@ -187,14 +189,6 @@ class DefaultFactory ]; } - if (!Environment::isComposerMode()) { - $publicPathSubStructure[] = [ - 'name' => 'typo3conf', - 'type' => DirectoryNode::class, - 'targetPermission' => $directoryPermission, - ]; - } - $structure = [ // Note that root node has no trailing slash like all others 'name' => Environment::getProjectPath(), diff --git a/typo3/sysext/install/Classes/Report/InstallStatusReport.php b/typo3/sysext/install/Classes/Report/InstallStatusReport.php index 94117ce5ca2074bc735db6f0ac88b14c9a617762..c44c3c263269a6eed1ac1873b3f195929d2dc2c9 100644 --- a/typo3/sysext/install/Classes/Report/InstallStatusReport.php +++ b/typo3/sysext/install/Classes/Report/InstallStatusReport.php @@ -91,6 +91,7 @@ final class InstallStatusReport implements StatusProviderInterface $varPath . '/transient/' => 2, $varPath . '/charset/' => 2, $varPath . '/lock/' => 2, + $sitePath . '/typo3conf/' => 2, Environment::getLabelsPath() => 0, $sitePath . '/' . $GLOBALS['TYPO3_CONF_VARS']['BE']['fileadminDir'] => -1, $sitePath . '/' . $GLOBALS['TYPO3_CONF_VARS']['BE']['fileadminDir'] . '_temp_/' => 0, @@ -99,8 +100,6 @@ final class InstallStatusReport implements StatusProviderInterface // Check for writable extension folder files in non-composer mode only if (!Environment::isComposerMode()) { $checkWritable[Environment::getExtensionsPath()] = 0; - $checkWritable[$sitePath . '/typo3conf/'] = 2; - } foreach ($checkWritable as $path => $requirementLevel) {