[BUGFIX] Fatal error in configuration ($BE_USER->uc)
authorSusanne Moog <typo3@susannemoog.de>
Wed, 25 Jan 2012 19:23:29 +0000 (20:23 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Sat, 30 Jun 2012 08:46:23 +0000 (10:46 +0200)
This happens because an object is handed over as
$arr[$key].
In this case convert $arr[$key] to a real array.

Change-Id: I128de2da656a3d4782bcb9b8b2a9519aade6ce9f
Fixes: #33444
Releases: 4.6, 4.7, 6.0
Reviewed-on: http://review.typo3.org/8693
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
t3lib/class.t3lib_arraybrowser.php

index 351ba72..6444ff5 100644 (file)
@@ -76,12 +76,15 @@ class t3lib_arrayBrowser {
                        $a++;
                        $depth = $depth_in . $key;
                        $goto = 'a' . substr(md5($depth), 0, 6);
-
-                       $deeper = (is_array($arr[$key]) && ($this->depthKeys[$depth] || $this->expAll)) ? 1 : 0;
+                       if (is_object($arr[$key])) {
+                               $arr[$key] = (array)$arr[$key];
+                       }
+                       $isArray = is_array($arr[$key]);
+                       $deeper = ($isArray && ($this->depthKeys[$depth] || $this->expAll));
                        $PM = 'join';
                        $LN = ($a == $c) ? 'blank' : 'line';
                        $BTM = ($a == $c) ? 'bottom' : '';
-                       $PM = is_array($arr[$key]) ? ($deeper ? 'minus' : 'plus') : 'join';
+                       $PM = $isArray ? ($deeper ? 'minus' : 'plus') : 'join';
 
 
                        $HTML .= $depthData;
@@ -98,9 +101,9 @@ class t3lib_arrayBrowser {
                        }
 
                        $label = $key;
-                       $HTML .= $this->wrapArrayKey($label, $depth, !is_array($arr[$key]) ? $arr[$key] : '');
+                       $HTML .= $this->wrapArrayKey($label, $depth, !$isArray ? $arr[$key] : '');
 
-                       if (!is_array($arr[$key])) {
+                       if (!$isArray) {
                                $theValue = $arr[$key];
                                if ($this->fixedLgd) {
                                        $imgBlocks = ceil(1 + strlen($depthData) / 77);
@@ -252,4 +255,4 @@ class t3lib_arrayBrowser {
        }
 }
 
-?>
\ No newline at end of file
+?>