[TASK] Deprecate options `value` and `noscript` of SVG content object 12/53712/7
authorFrank Naegler <frank.naegler@typo3.org>
Wed, 16 Aug 2017 10:00:35 +0000 (12:00 +0200)
committerSusanne Moog <susanne.moog@typo3.org>
Thu, 17 Aug 2017 07:02:01 +0000 (09:02 +0200)
This patch deprecates the options value (if `renderMode` is not set to
`inline`) and `noscript`. Both are used for an very old SVG render mode.
The alternative for inline rendering is in place.

Resolves: #82110
Releases: master
Change-Id: I5d4184155a25f0e332f1d2422c7cf92076273288
Reviewed-on: https://review.typo3.org/53712
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Joerg Boesche <typo3@joergboesche.de>
Tested-by: Joerg Boesche <typo3@joergboesche.de>
Reviewed-by: Susanne Moog <susanne.moog@typo3.org>
Tested-by: Susanne Moog <susanne.moog@typo3.org>
typo3/sysext/core/Documentation/Changelog/master/Deprecation-82110-DeprecateValueAndNoscriptOptionsInSVGContentObject.rst [new file with mode: 0644]
typo3/sysext/frontend/Classes/ContentObject/ScalableVectorGraphicsContentObject.php

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-82110-DeprecateValueAndNoscriptOptionsInSVGContentObject.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-82110-DeprecateValueAndNoscriptOptionsInSVGContentObject.rst
new file mode 100644 (file)
index 0000000..1569370
--- /dev/null
@@ -0,0 +1,45 @@
+.. include:: ../../Includes.txt
+
+===================================================================================
+Deprecation: #82110 - Deprecate option "value" and "noscript" in SVG content object
+===================================================================================
+
+See :issue:`82110`
+
+Description
+===========
+
+The following TypoScript settings of the SVG content object have been marked as deprecated:
+
+* :typoscript:`value` (in case :typoscript:`renderMode` is not set to inline)
+* :typoscript:`noscript`
+
+The SVG content object renderer has used the two options "value" and "noscript" to render the given
+value into a :html:`<script type="image/svg+xml">` tag.
+This kind of implementation is very old and has been marked as deprecated.
+
+The SVG content object supports two render variants:
+
+1) the :html:`<object>` tag variant (:typoscript:`renderMode = object`) [default]
+2) the :html:`<svg>` tag variant (:typoscript:`renderMode = inline`)
+
+The second one is nearly the same as the script tag variant, so an alternative is still in place.
+
+Impact
+======
+
+Using one of the two options will trigger a deprecation log entry.
+
+
+Affected Installations
+======================
+
+Instances which use at least one of the two options.
+
+
+Migration
+=========
+
+Use the new :typoscript:`renderMode = inline` to render a SVG file as :html:`<svg>`
+
+.. index:: Frontend, TypoScript, NotScanned
index 5f068d5..ffcd252 100644 (file)
@@ -98,6 +98,14 @@ class ScalableVectorGraphicsContentObject extends AbstractContentObject
         $value = isset($conf['value.']) ? $this->cObj->stdWrap($conf['value'], $conf['value.']) : $conf['value'];
         $noscript = isset($conf['noscript.']) ? $this->cObj->stdWrap($conf['noscript'], $conf['noscript.']) : $conf['noscript'];
 
+        // @deprecated since TYPO3 v9, will be removed in TYPO3 v10 - see method usages
+        if (!empty($conf['noscript.']) || !empty($conf['noscript'])) {
+            GeneralUtility::deprecationLog('The option "noscript" of the SVG content object has been deprecated in v9 and will be remove in v10.');
+        }
+        if (!empty($conf['value.']) || !empty($conf['value'])) {
+            GeneralUtility::deprecationLog('The option "value" without setting renderMode=inline of the SVG content object has been deprecated in v9 and will be remove in v10.');
+        }
+
         $content = [];
         if ($src) {
             $content[] = '<!--[if IE]>';
@@ -109,6 +117,7 @@ class ScalableVectorGraphicsContentObject extends AbstractContentObject
             $content[] = $noscript;
             $content[] = '</object>';
         } else {
+            // @deprecated since TYPO3 v9, will be removed in TYPO3 v10 - see method usages
             $content[] = '<script type="image/svg+xml">';
             $content[] = '  <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="' . (int)$width . '" height="' . (int)$height . '">';
             $content[] = $value;