From af56e83dbfceeb204f933943790666468c590378 Mon Sep 17 00:00:00 2001
From: Kevin Ditscheid <kevin.ditscheid@sgalinski.de>
Date: Mon, 27 Nov 2023 17:44:24 +0100
Subject: [PATCH] [TASK] Change TCA file types to the new file type

---
 Configuration/Extbase/Persistence/Classes.php | 10 +++--
 Configuration/Icons.php                       |  4 +-
 Configuration/TCA/Overrides/sys_template.php  | 30 ++-----------
 Configuration/TCA/Overrides/tt_content.php    | 45 ++++---------------
 .../TCA/tx_sgjobs_domain_model_contact.php    | 15 +++----
 .../TCA/tx_sgjobs_domain_model_job.php        | 10 ++---
 ...tx_sgjobs_domain_model_job_application.php | 33 +++++++-------
 .../TypoScript/Common/setup.typoscript        |  0
 ext_localconf.php                             | 37 ++++++++-------
 9 files changed, 72 insertions(+), 112 deletions(-)
 delete mode 100644 Configuration/TypoScript/Common/setup.typoscript

diff --git a/Configuration/Extbase/Persistence/Classes.php b/Configuration/Extbase/Persistence/Classes.php
index 1c70c6a3..8b7caeb8 100644
--- a/Configuration/Extbase/Persistence/Classes.php
+++ b/Configuration/Extbase/Persistence/Classes.php
@@ -4,14 +4,18 @@ declare(strict_types=1);
 
 // if you need to change this, keep in mind the changes need to be done in
 // Configuration/TypoScript/Common/setup.typoscript for TYPO3 9, too
+use SGalinski\SgJobs\Domain\Model\ExperienceLevel;
+use SGalinski\SgJobs\Domain\Model\FileReference;
+use SGalinski\SgJobs\Domain\Model\JobApplication;
+
 return [
-	\SGalinski\SgJobs\Domain\Model\FileReference::class => [
+	FileReference::class => [
 		'tableName' => 'sys_file_reference'
 	],
-	\SGalinski\SgJobs\Domain\Model\JobApplication::class => [
+	JobApplication::class => [
 		'tableName' => 'tx_sgjobs_domain_model_job_application'
 	],
-	\SGalinski\SgJobs\Domain\Model\ExperienceLevel::class => [
+	ExperienceLevel::class => [
 		'tableName' => 'tx_sgjobs_domain_model_experience_level'
 	]
 ];
diff --git a/Configuration/Icons.php b/Configuration/Icons.php
index 4fad03d9..621beb0c 100644
--- a/Configuration/Icons.php
+++ b/Configuration/Icons.php
@@ -6,6 +6,8 @@
  * Either use a closure here, or do not call your variable $icons.
  */
 
+use TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider;
+
 $iconList = [];
 $sgJobsIcons = [
 	'extension-sg_jobs-module' => 'module-sgjobs.svg',
@@ -13,7 +15,7 @@ $sgJobsIcons = [
 
 foreach ($sgJobsIcons as $identifier => $path) {
 	$iconList[$identifier] = [
-		'provider' => \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
+		'provider' => SvgIconProvider::class,
 		'source' => 'EXT:sg_jobs/Resources/Public/Icons/' . $path,
 	];
 }
diff --git a/Configuration/TCA/Overrides/sys_template.php b/Configuration/TCA/Overrides/sys_template.php
index 641c18aa..5b5fb8ea 100644
--- a/Configuration/TCA/Overrides/sys_template.php
+++ b/Configuration/TCA/Overrides/sys_template.php
@@ -1,33 +1,9 @@
 <?php
 
-defined('TYPO3') or die();
-/**
- *
- * Copyright notice
- *
- * (c) sgalinski Internet Services (https://www.sgalinski.de)
- *
- * All rights reserved
- *
- * This script is part of the TYPO3 project. The TYPO3 project is
- * free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * The GNU General Public License can be found at
- * http://www.gnu.org/copyleft/gpl.html.
- *
- * This script is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * This copyright notice MUST APPEAR in all copies of the script!
- */
-
 // Adds the static TypoScript template.
-\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
+use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
+
+ExtensionManagementUtility::addStaticFile(
 	'sg_jobs',
 	'Configuration/TypoScript/Frontend',
 	'SgJobs - Configuration'
diff --git a/Configuration/TCA/Overrides/tt_content.php b/Configuration/TCA/Overrides/tt_content.php
index 613a2895..4ecddf37 100644
--- a/Configuration/TCA/Overrides/tt_content.php
+++ b/Configuration/TCA/Overrides/tt_content.php
@@ -1,70 +1,43 @@
 <?php
 
-defined('TYPO3') or die();
-/**
- *
- * Copyright notice
- *
- * (c) sgalinski Internet Services (https://www.sgalinski.de)
- *
- * All rights reserved
- *
- * This script is part of the TYPO3 project. The TYPO3 project is
- * free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * The GNU General Public License can be found at
- * http://www.gnu.org/copyleft/gpl.html.
- *
- * This script is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * This copyright notice MUST APPEAR in all copies of the script!
- */
-
 // Register frontend plugins
-\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
+use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
+use TYPO3\CMS\Extbase\Utility\ExtensionUtility;
+
+ExtensionUtility::registerPlugin(
 	'sg_jobs',
 	'Joblist',
 	'LLL:EXT:sg_jobs/Resources/Private/Language/locallang_backend.xlf:listPlugin'
 );
 
 // Register frontend plugins
-\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
+ExtensionUtility::registerPlugin(
 	'sg_jobs',
 	'JobApplication',
 	'LLL:EXT:sg_jobs/Resources/Private/Language/locallang_backend.xlf:applyPlugin'
 );
 
 // Register frontend plugins
-\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
+ExtensionUtility::registerPlugin(
 	'sg_jobs',
 	'JobTeaser',
 	'LLL:EXT:sg_jobs/Resources/Private/Language/locallang_backend.xlf:teaserPlugin'
 );
 
 $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist']['sgjobs_joblist'] = 'pi_flexform';
-\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
+ExtensionManagementUtility::addPiFlexFormValue(
 	'sgjobs_joblist',
 	'FILE:EXT:sg_jobs/Configuration/FlexForms/Joblist.xml'
 );
 
 $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist']['sgjobs_jobapplication'] = 'pi_flexform';
-\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
+ExtensionManagementUtility::addPiFlexFormValue(
 	'sgjobs_jobapplication',
 	'FILE:EXT:sg_jobs/Configuration/FlexForms/JobApplication.xml'
 );
 
 $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist']['sgjobs_jobteaser'] = 'pi_flexform';
-\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
+ExtensionManagementUtility::addPiFlexFormValue(
 	'sgjobs_jobteaser',
 	'FILE:EXT:sg_jobs/Configuration/FlexForms/JobTeaser.xml'
 );
-
-$GLOBALS['TCA']['tt_content']['types']['list']['previewRenderer']['sgjobs_joblist'] = \SGalinski\SgJobs\Preview\PreviewRenderer::class;
-$GLOBALS['TCA']['tt_content']['types']['list']['previewRenderer']['sgjobs_jobapplication'] = \SGalinski\SgJobs\Preview\PreviewRenderer::class;
-$GLOBALS['TCA']['tt_content']['types']['list']['previewRenderer']['sgjobs_jobteaser'] = \SGalinski\SgJobs\Preview\PreviewRenderer::class;
diff --git a/Configuration/TCA/tx_sgjobs_domain_model_contact.php b/Configuration/TCA/tx_sgjobs_domain_model_contact.php
index 994d3c52..ca6084d0 100644
--- a/Configuration/TCA/tx_sgjobs_domain_model_contact.php
+++ b/Configuration/TCA/tx_sgjobs_domain_model_contact.php
@@ -174,16 +174,11 @@ $columns = [
 		'image' => [
 			'exclude' => TRUE,
 			'label' => 'LLL:EXT:sg_jobs/Resources/Private/Language/locallang_db.xlf:tx_sgjobs_domain_model_contact.image',
-			'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
-				'image',
-				[
-					'appearance' => [
-						'useSortable' => TRUE,
-					],
-					'minitems' => 0,
-					'maxitems' => 1,
-				]
-			),
+			'config' =>  [
+				'type' => 'file',
+				'minitems' => 0,
+				'maxitems' => 1,
+			]
 		],
 		'phone' => [
 			'exclude' => TRUE,
diff --git a/Configuration/TCA/tx_sgjobs_domain_model_job.php b/Configuration/TCA/tx_sgjobs_domain_model_job.php
index 399ea858..5038d376 100644
--- a/Configuration/TCA/tx_sgjobs_domain_model_job.php
+++ b/Configuration/TCA/tx_sgjobs_domain_model_job.php
@@ -209,11 +209,11 @@ $columns = [
 		'attachment' => [
 			'exclude' => TRUE,
 			'label' => 'LLL:EXT:sg_jobs/Resources/Private/Language/locallang_db.xlf:tx_sgjobs_domain_model_job.attachment',
-			'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
-				'attachment',
-				['maxitems' => 1],
-				'pdf'
-			)
+			'config' => [
+				'type' => 'file',
+				'maxitems' => 1,
+				'allowed' => ['pdf']
+			]
 		],
 		'department' => [
 			'exclude' => TRUE,
diff --git a/Configuration/TCA/tx_sgjobs_domain_model_job_application.php b/Configuration/TCA/tx_sgjobs_domain_model_job_application.php
index 4a0a4991..ff021298 100644
--- a/Configuration/TCA/tx_sgjobs_domain_model_job_application.php
+++ b/Configuration/TCA/tx_sgjobs_domain_model_job_application.php
@@ -332,29 +332,32 @@ $columns = [
 		'cover_letter' => [
 			'exclude' => FALSE,
 			'label' => 'LLL:EXT:sg_jobs/Resources/Private/Language/locallang_db.xlf:tx_sgjobs_domain_model_job_application.cover_letter',
-			'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
-				'cover_letter',
-				['maxitems' => 1, 'minitems' => 1],
-				'pdf'
-			),
+			'config' => [
+				'type' => 'file',
+				'maxitems' => 1,
+				'minitems' => 1,
+				'allowed' => ['pdf']
+			]
 		],
 		'certificate' => [
 			'exclude' => FALSE,
 			'label' => 'LLL:EXT:sg_jobs/Resources/Private/Language/locallang_db.xlf:tx_sgjobs_domain_model_job_application.certificate',
-			'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
-				'certificate',
-				['maxitems' => 1, 'minitems' => 1],
-				'pdf'
-			),
+			'config' => [
+				'type' => 'file',
+				'maxitems' => 1,
+				'minitems' => 1,
+				'allowed' => ['pdf']
+			]
 		],
 		'cv' => [
 			'exclude' => FALSE,
 			'label' => 'LLL:EXT:sg_jobs/Resources/Private/Language/locallang_db.xlf:tx_sgjobs_domain_model_job_application.cv',
-			'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
-				'cv',
-				['maxitems' => 1, 'minitems' => 1],
-				'pdf'
-			),
+			'config' => [
+				'type' => 'file',
+				'maxitems' => 1,
+				'minitems' => 1,
+				'allowed' => ['pdf']
+			]
 		],
 		'privacy_policy' => [
 			'exclude' => FALSE,
diff --git a/Configuration/TypoScript/Common/setup.typoscript b/Configuration/TypoScript/Common/setup.typoscript
deleted file mode 100644
index e69de29b..00000000
diff --git a/ext_localconf.php b/ext_localconf.php
index 33970f02..46b69995 100644
--- a/ext_localconf.php
+++ b/ext_localconf.php
@@ -1,60 +1,67 @@
 <?php
 
+use SGalinski\SgAjax\Service\AjaxRegistration;
+use SGalinski\SgJobs\Controller\Ajax\UploadController;
+use SGalinski\SgJobs\Controller\JoblistController;
+use SGalinski\SgJobs\Controller\JobTeaserController;
+use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
+use TYPO3\CMS\Extbase\Utility\ExtensionUtility;
+
 call_user_func(
 	static function () {
-		\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptSetup(
+		ExtensionManagementUtility::addTypoScriptSetup(
 			'@import "EXT:sg_jobs/Configuration/TypoScript/Common/setup.typoscript"'
 		);
 		// Configure frontend plugins
-		\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
+		ExtensionUtility::configurePlugin(
 			'SgJobs',
 			'Joblist',
 			[
 				// Available actions
-				\SGalinski\SgJobs\Controller\JoblistController::class => 'index'
+				JoblistController::class => 'index'
 			],
 			[
 				// Non-Cache actions
-				\SGalinski\SgJobs\Controller\JoblistController::class => 'index'
+				JoblistController::class => 'index'
 			]
 		);
-		\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
+		ExtensionUtility::configurePlugin(
 			'SgJobs',
 			'JobApplication',
 			[
 				// Available actions
-				\SGalinski\SgJobs\Controller\JoblistController::class => 'applyForm, apply, empty'
+				JoblistController::class => 'applyForm, apply, empty'
 			],
 			[
 				// Non-Cache actions
-				\SGalinski\SgJobs\Controller\JoblistController::class => 'applyForm, apply, empty'
+				JoblistController::class => 'applyForm, apply, empty'
 			]
 		);
-		\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
+		ExtensionUtility::configurePlugin(
 			'SgJobs',
 			'JobTeaser',
 			[
 				// Available actions
-				\SGalinski\SgJobs\Controller\JobTeaserController::class => 'index'
+				JobTeaserController::class => 'index'
 			],
 			[
 				// Non-Cache actions
-				\SGalinski\SgJobs\Controller\JobTeaserController::class => ''
+				JobTeaserController::class => ''
 			]
 		);
 
-		\SGalinski\SgAjax\Service\AjaxRegistration::configureAjaxFrontendPlugin(
+		AjaxRegistration::configureAjaxFrontendPlugin(
 			'sg_jobs',
 			[
-				\SGalinski\SgJobs\Controller\Ajax\UploadController::class => 'uploadCoverletter, uploadCv, uploadCertificate',
+				UploadController::class => 'uploadCoverletter, uploadCv, uploadCertificate',
 			]
 		);
 
-		\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptConstants(
+		ExtensionManagementUtility::addTypoScriptConstants(
 			'@import "EXT:sg_jobs/Configuration/TypoScript/Backend/constants.typoscript"'
 		);
 
-		\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptSetup(
+		ExtensionManagementUtility::addTypoScriptSetup(
 			'@import "EXT:sg_jobs/Configuration/TypoScript/Backend/setup.typoscript"'
 		);
 
@@ -63,7 +70,7 @@ call_user_func(
 		$GLOBALS['sg_mail']['sg_jobs']['ApplicantMail'] = 'EXT:sg_jobs/Configuration/SgMail/ApplicantMail.php';
 
 		//include Plugin sg_jobs
-		\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig(
+		ExtensionManagementUtility::addPageTSConfig(
 			'@import "EXT:sg_jobs/Configuration/TsConfig/Page/NewContentElementWizard.tsconfig"'
 		);
 
-- 
GitLab