2 namespace TYPO3\CMS\Install\FolderStructure;
36 'Root node must implement RootNodeInterface',
43 'Structure facade must implement StructureFacadeInterface',
47 return $structureFacade;
58 $filePermission =
$GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'fileCreateMask'];
59 $directoryPermission =
$GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'folderCreateMask'];
64 $structureAdditional = array();
66 $structureAdditional = array(
68 'name' =>
'index.php',
69 'type' => LinkNode::class,
70 'target' =>
'typo3_src/index.php',
74 'type' => LinkNode::class,
75 'target' =>
'typo3_src/typo3',
78 'name' =>
'typo3_src',
79 'type' => LinkNode::class,
83 $structureBase = array(
85 'name' =>
'typo3temp',
86 'type' => DirectoryNode::class,
87 'targetPermission' => $directoryPermission,
90 'name' =>
'index.html',
91 'type' => FileNode::class,
92 'targetPermission' => $filePermission,
93 'targetContent' =>
'',
96 'name' =>
'compressor',
97 'type' => DirectoryNode::class,
98 'targetPermission' => $directoryPermission,
102 'type' => DirectoryNode::class,
103 'targetPermission' => $directoryPermission,
107 'type' => DirectoryNode::class,
108 'targetPermission' => $directoryPermission,
112 'type' => DirectoryNode::class,
113 'targetPermission' => $directoryPermission,
117 'type' => DirectoryNode::class,
118 'targetPermission' => $directoryPermission,
122 'type' => DirectoryNode::class,
123 'targetPermission' => $directoryPermission,
127 'type' => DirectoryNode::class,
128 'targetPermission' => $directoryPermission,
132 'type' => DirectoryNode::class,
133 'targetPermission' => $directoryPermission,
137 'type' => DirectoryNode::class,
138 'targetPermission' => $directoryPermission,
141 'name' =>
'_processed_',
142 'type' => DirectoryNode::class,
143 'targetPermission' => $directoryPermission,
148 'name' =>
'typo3conf',
149 'type' => DirectoryNode::class,
150 'targetPermission' => $directoryPermission,
154 'type' => DirectoryNode::class,
155 'targetPermission' => $directoryPermission,
159 'type' => DirectoryNode::class,
160 'targetPermission' => $directoryPermission,
166 'type' => DirectoryNode::class,
167 'targetPermission' => $directoryPermission,
170 'name' =>
'index.html',
171 'type' => FileNode::class,
172 'targetPermission' => $filePermission,
173 'targetContentFile' => PATH_site .
'typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/uploads-index.html',
177 'type' => DirectoryNode::class,
178 'targetPermission' => $directoryPermission,
181 'name' =>
'index.html',
182 'type' => FileNode::class,
183 'targetPermission' => $filePermission,
184 'targetContent' =>
'',
190 'type' => DirectoryNode::class,
191 'targetPermission' => $directoryPermission,
194 'name' =>
'index.html',
195 'type' => FileNode::class,
196 'targetPermission' => $filePermission,
197 'targetContent' =>
'',
202 'name' =>
'tx_felogin',
203 'type' => DirectoryNode::class,
204 'targetPermission' => $directoryPermission,
209 'name' => !empty(
$GLOBALS[
'TYPO3_CONF_VARS'][
'BE'][
'fileadminDir']) ? rtrim(
$GLOBALS[
'TYPO3_CONF_VARS'][
'BE'][
'fileadminDir'],
'/') :
'fileadmin',
210 'type' => DirectoryNode::class,
211 'targetPermission' => $directoryPermission,
215 'type' => DirectoryNode::class,
216 'targetPermission' => $directoryPermission,
219 'name' =>
'.htaccess',
220 'type' => FileNode::class,
221 'targetPermission' => $filePermission,
222 'targetContentFile' => PATH_site .
'typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/fileadmin-temp-htaccess',
225 'name' =>
'index.html',
226 'type' => FileNode::class,
227 'targetPermission' => $filePermission,
228 'targetContentFile' => PATH_site .
'typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/fileadmin-temp-index.html',
233 'name' =>
'user_upload',
234 'type' => DirectoryNode::class,
235 'targetPermission' => $directoryPermission,
239 'type' => DirectoryNode::class,
240 'targetPermission' => $directoryPermission,
243 'name' =>
'index.html',
244 'type' => FileNode::class,
245 'targetPermission' => $filePermission,
246 'targetContent' =>
'',
249 'name' =>
'importexport',
250 'type' => DirectoryNode::class,
251 'targetPermission' => $directoryPermission,
254 'name' =>
'.htaccess',
255 'type' => FileNode::class,
256 'targetPermission' => $filePermission,
257 'targetContentFile' => PATH_site .
'typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/fileadmin-user_upload-temp-importexport-htaccess',
260 'name' =>
'index.html',
261 'type' => FileNode::class,
262 'targetPermission' => $filePermission,
263 'targetContentFile' => PATH_site .
'typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/fileadmin-temp-index.html',
270 'name' =>
'index.html',
271 'type' => FileNode::class,
272 'targetPermission' => $filePermission,
273 'targetContent' =>
'',
283 'name' => substr(PATH_site, 0, -1),
284 'targetPermission' => $directoryPermission,
285 'children' => array_merge($structureAdditional, $structureBase)