[BUGFIX] IMAGE param stdWrap-function not working
[Packages/TYPO3.CMS.git] / typo3 / sysext / frontend / Classes / ContentObject / ContentObjectRenderer.php
index fddde98..1ef57d7 100644 (file)
@@ -1277,11 +1277,9 @@ class ContentObjectRenderer {
                        // This array is used to collect the image-refs on the page...
                        $GLOBALS['TSFE']->imagesOnPage[] = $source;
                        $altParam = $this->getAltParam($conf);
-                       $params = '';
-                       if ($conf['params'] && !isset($conf['params.'])) {
-                               $params = ' ' . $conf['params'];
-                       } elseif ($conf['params'] && is_array($conf['params.'])) {
-                               $params = ' ' . $this->stdWrap($conf['params'], $conf['params.']);
+                       $params = $this->stdWrapValue('params', $conf);
+                       if ($params !== '' && $params{0} !== ' ') {
+                               $params = ' ' . $params;
                        }
 
                        $imageTagValues = array(
@@ -2106,6 +2104,28 @@ class ContentObjectRenderer {
        }
 
        /**
+        * Gets a configuration value by passing them through stdWrap first and taking a default value if stdWrap doesn't yield a result.
+        *
+        * @param string $key The config variable key (from TS array).
+        * @param array $config The TypoScript array.
+        * @param string $defaultValue Optional default value.
+        * @return string Value of the config variable
+        */
+       public function stdWrapValue($key, array $config, $defaultValue = '') {
+               if (isset($config[$key])) {
+                       if (!isset($config[$key . '.'])) {
+                               return $config[$key];
+                       }
+               } elseif (isset($config[$key . '.'])) {
+                       $config[$key] = '';
+               } else {
+                       return $defaultValue;
+               }
+               $stdWrapped = $this->stdWrap($config[$key], $config[$key . '.']);
+               return $stdWrapped ?: $defaultValue;
+       }
+
+       /**
         * stdWrap pre process hook
         * can be used by extensions authors to modify the behaviour of stdWrap functions to their needs
         * this hook will execute functions before any other stdWrap function can modify anything