[!!!][TASK] Remove global configuration option GFX/png_to_gif 75/39475/6
authorBenjamin Mack <benni@typo3.org>
Tue, 12 May 2015 04:45:22 +0000 (12:45 +0800)
committerAndreas Fernandez <typo3@scripting-base.de>
Tue, 19 May 2015 09:47:14 +0000 (11:47 +0200)
The option png_to_gif was previously used to minimize
the size of generated images. In the current web development
png (with the support of all major browsers) has overtaken gif
functionality. The option, which was off by default for some
versions, has been removed. All calls to the actual "convert"
method in GraphicalFunction have been removed, the function
itself has been marked for deprecation.

Resolves: #66906
Releases: master
Change-Id: I1e134812f55ce8026e468b12ec12ec61e4d9d104
Reviewed-on: http://review.typo3.org/39475
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Andreas Fernandez <typo3@scripting-base.de>
Tested-by: Andreas Fernandez <typo3@scripting-base.de>
typo3/sysext/core/Classes/Imaging/GraphicalFunctions.php
typo3/sysext/core/Configuration/DefaultConfiguration.php
typo3/sysext/core/Documentation/Changelog/master/Breaking-66906-AutomaticPNGToGIFConversionRemoved.rst [new file with mode: 0644]
typo3/sysext/core/Documentation/Changelog/master/Deprecation-66906-FunctionalityPngToGifConversion.rst [new file with mode: 0644]
typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php
typo3/sysext/frontend/Classes/ContentObject/Menu/GraphicalMenuContentObject.php
typo3/sysext/frontend/Classes/ContentObject/Menu/ImageMenuContentObject.php
typo3/sysext/frontend/Classes/ContentObject/Menu/TextMenuContentObject.php
typo3/sysext/install/Classes/Service/SilentConfigurationUpgradeService.php

index b22cf55..a7dac44 100644 (file)
@@ -2623,27 +2623,10 @@ class GraphicalFunctions {
         *
         * @param string $theFile The filename with path
         * @return string New filename or the old file name if no conversion happened
+        * @deprecated since TYPO3 CMS 7, will be removed with TYPO3 CMS 8, as the png_to_gif option has been removed with TYPO3 CMS 7
         */
        static public function pngToGifByImagemagick($theFile) {
-               if (!$GLOBALS['TYPO3_CONF_VARS']['FE']['png_to_gif']
-                       || !$GLOBALS['TYPO3_CONF_VARS']['GFX']['im']
-                       || !$GLOBALS['TYPO3_CONF_VARS']['GFX']['im_path_lzw']
-                       || strtolower(substr($theFile, -4, 4)) !== '.png'
-                       || !@is_file($theFile)
-               ) {
-                       return $theFile;
-               }
-
-               $newFile = substr($theFile, 0, -4) . '.gif';
-               $cmd = GeneralUtility::imageMagickCommand(
-                       'convert', '"' . $theFile . '" "' . $newFile . '"', $GLOBALS['TYPO3_CONF_VARS']['GFX']['im_path_lzw']
-               );
-               CommandUtility::exec($cmd);
-               $theFile = $newFile;
-               if (@is_file($newFile)) {
-                       GeneralUtility::fixPermissions($newFile);
-               }
-
+               GeneralUtility::logDeprecatedFunction();
                return $theFile;
        }
 
index d75a64d..18c1c83 100644 (file)
@@ -756,7 +756,6 @@ return array(
                'XCLASS' => array()
        ),
        'FE' => array( // Configuration for the TypoScript frontend (FE). Nothing here relates to the administration backend!
-               'png_to_gif' => FALSE,          // Boolean: Enables conversion back to gif of all png-files generated in the frontend libraries. Notice that this leaves an increased number of temporary files in typo3temp/
                'addAllowedPaths' => '',                // Additional relative paths (comma-list) to allow TypoScript resources be in. Should be prepended with '/'. If not, then any path where the first part is like this path will match. That is: 'myfolder/ , myarchive' will match eg. 'myfolder/', 'myarchive/', 'myarchive_one/', 'myarchive_2/' ... No check is done to see if this directory actually exists in the root of the site. Paths are matched by simply checking if these strings equals the first part of any TypoScript resource filepath. (See class template, function init() in \TYPO3\CMS\Core\TypoScript\Parser\TypoScriptParser)
                'debug' => FALSE,               // Boolean: If set, some debug HTML-comments may be output somewhere. Can also be set by TypoScript.
                'noPHPscriptInclude' => FALSE,          // Boolean: If set, PHP-scripts are not included by TypoScript configurations, unless they reside in the folders typo3/ext/, typo3/sysext/ or typo3conf/ext. This is a security option to ensure that users with template-access do not terrorize
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-66906-AutomaticPNGToGIFConversionRemoved.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-66906-AutomaticPNGToGIFConversionRemoved.rst
new file mode 100644 (file)
index 0000000..21d5216
--- /dev/null
@@ -0,0 +1,21 @@
+==========================================================
+Breaking: #66906 - Automatic PNG to GIF conversion removed
+==========================================================
+
+Description
+===========
+
+The configuration setting ``$TYPO3_CONF_VARS[GFX][png_to_gif]`` has been removed.
+
+
+Impact
+======
+
+If the option is set in an installation, then PNG images used in the TYPO3 Frontend will now be kept as PNG, instead
+of converting them to GIF files.
+
+
+Affected Installations
+======================
+
+Installations having the option ``$TYPO3_CONF_VARS[GFX][png_to_gif]`` activated.
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-66906-FunctionalityPngToGifConversion.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-66906-FunctionalityPngToGifConversion.rst
new file mode 100644 (file)
index 0000000..7ea6166
--- /dev/null
@@ -0,0 +1,31 @@
+=============================================================
+Deprecation: #66906 - Functionality for png_to_gif conversion
+=============================================================
+
+Description
+===========
+
+The global option ``$TYPO3_CONF_VARS[GFX][png_to_gif]`` has been removed. The according functionality within
+``GraphicalFunctions->pngToGifByImagemagick()`` has been marked for deprecation.
+
+
+Impact
+======
+
+Any direct calls using ``pngToGifByImagemagick()`` will now throw a deprecation warning. All installations having the
+option png_to_gif activated will now always show png files instead of gifs when resizing PNG images in the
+TYPO3 Frontend.
+
+
+Affected Installations
+======================
+
+Any installation having png_to_gif activated or having third-party extensions calling
+``GraphicalFunctions->pngToGifByImagemagick()`` directly.
+
+
+Migration
+=========
+
+Remove calls to the functionality, as the result will be a PNG. If GIF conversion is needed, the functionality needs
+to be implemented in a custom FAL Processor inside an extension.
index fb317f8..3b72b25 100644 (file)
@@ -1474,8 +1474,7 @@ class ContentObjectRenderer {
                        return '';
                }
                if (is_file(PATH_site . $info['3'])) {
-                       $source = GeneralUtility::rawUrlEncodeFP(GraphicalFunctions::pngToGifByImagemagick($info[3]));
-                       $source = $GLOBALS['TSFE']->absRefPrefix . $source;
+                       $source = $GLOBALS['TSFE']->absRefPrefix . GeneralUtility::rawUrlEncodeFP($info['3']);
                } else {
                        $source = $info[3];
                }
index 330ec2e..9fe7e17 100644 (file)
@@ -257,7 +257,6 @@ class GraphicalMenuContentObject extends AbstractMenuContentObject {
                                $gifCreator->output($this->result[$resKey][$key]['output_file']);
                                $gifCreator->destroy();
                        }
-                       $this->result[$resKey][$key]['output_file'] = GraphicalFunctions::pngToGifByImagemagick($this->result[$resKey][$key]['output_file']);
                        // counter is increased
                        $Hcounter += $this->result[$resKey][$key]['output_h'];
                        // counter is increased
index 6f44386..1b31a69 100644 (file)
@@ -216,7 +216,6 @@ class ImageMenuContentObject extends AbstractMenuContentObject {
                                        $cache->set($imgHash, $imgMap, array('ident_MENUIMAGEMAP'), 0);
                                }
                                $imgMap .= $this->mconf['imgMapExtras'];
-                               $gifFileName = GraphicalFunctions::pngToGifByImagemagick($gifFileName);
                                $this->result = array('output_file' => $gifFileName, 'output_w' => $w, 'output_h' => $h, 'imgMap' => $imgMap);
                        }
                }
index 9d6b6d7..71183ad 100644 (file)
@@ -175,7 +175,6 @@ class TextMenuContentObject extends AbstractMenuContentObject {
        public function getBeforeAfter($pref) {
                $res = '';
                if ($imgInfo = $this->WMcObj->getImgResource($this->I['val'][$pref . 'Img'], $this->I['val'][$pref . 'Img.'])) {
-                       $imgInfo[3] = GraphicalFunctions::pngToGifByImagemagick($imgInfo[3]);
                        $theName = $this->imgNamePrefix . $this->I['uid'] . $this->I['INPfix'] . $pref;
                        $name = ' ' . $this->nameAttribute . '="' . $theName . '"';
                        $GLOBALS['TSFE']->imagesOnPage[] = $imgInfo[3];
index 6900983..ae66bbb 100644 (file)
@@ -87,7 +87,9 @@ class SilentConfigurationUpgradeService {
                // #66902
                'SYS/loginCopyrightShowVersion',
                // #66903
-               'BE/RTEenabled'
+               'BE/RTEenabled',
+               // #66906
+               'GFX/png_to_gif',
        );
 
        /**