diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-85970-FileContentObject.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-85970-FileContentObject.rst new file mode 100644 index 0000000000000000000000000000000000000000..07bfaaa94d522b78b7f487baa060105ed2791bc8 --- /dev/null +++ b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-85970-FileContentObject.rst @@ -0,0 +1,57 @@ +.. include:: ../../Includes.txt + +========================================= +Deprecation: #85970 - FILE content object +========================================= + +See :issue:`85970` + +Description +=========== + +The cObject FILE is mixing concerns (rendering an image, or dumping file contents), and +rather became low-level since Fluid's rise in rendering Frontend. + +FILE shows an image if the file is jpg,jpeg,gif,png (but not SVG), and if has a +different file ending, it will check if the file is less than 1MB, it will get its contents +and output that. If the file is 1 byte bigger, nothing is done. +Fluid offers more flexibility nowadays. + +Thus, cObject FILE will be removed in TYPO3 v10. + + +Impact +====== + +Instances using the TypoScript cObject :typoscript:`FILE` will find PHP :php:`E_USER_DEPRECATED` errors for each usage. + + +Affected Installations +====================== + +Instances using the TypoScript cObject :typoscript:`FILE`. + + +Migration +========= + +Use :typoscript:`IMAGE` to show images instead. + +For realising :typoscript:`TEMPLATE`, migrate to using :typoscript:`FLUIDTEMPLATE`. It comes with all +the benefits Fluid offers. + +However due to the flexibility of custom cObject, an extension author could just re-implement +the functionality in a custom extension within minutes. +See this example for ext:frontend where the registration resides in :file:`ext_localconf.php`. + +.. codeblock:: php + + $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects'] = array_merge( + $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects'], + [ + 'FILE' => \TYPO3\CMS\Frontend\ContentObject\FileContentObject::class, + ], + ); + + +.. index:: TypoScript, NotScanned diff --git a/typo3/sysext/frontend/Classes/ContentObject/FileContentObject.php b/typo3/sysext/frontend/Classes/ContentObject/FileContentObject.php index e370119a423b39ba1ff18225cae28567625cfb54..c2fae01da994194e82fd4532f7e662566edaac60 100644 --- a/typo3/sysext/frontend/Classes/ContentObject/FileContentObject.php +++ b/typo3/sysext/frontend/Classes/ContentObject/FileContentObject.php @@ -21,6 +21,7 @@ use TYPO3\CMS\Frontend\Resource\FilePathSanitizer; /** * Contains FILE class object. + * @deprecated FILE cObject will be removed in TYPO3 v10.0. */ class FileContentObject extends AbstractContentObject { @@ -32,6 +33,7 @@ class FileContentObject extends AbstractContentObject */ public function render($conf = []) { + $this->getTypoScriptFrontendController()->logDeprecatedTyposcript('cObject FILE', 'Use IMAGE to show images instead.'); $theValue = ''; $file = isset($conf['file.']) ? $this->cObj->stdWrap($conf['file'], $conf['file.']) : $conf['file']; try {