Index: typo3/sysext/cms/tslib/class.tslib_content.php =================================================================== --- typo3/sysext/cms/tslib/class.tslib_content.php (revision 7251) +++ typo3/sysext/cms/tslib/class.tslib_content.php (working copy) @@ -5716,27 +5716,26 @@ * @access private * @see getData() */ - function getGlobal($var, $source=NULL) { - $vars = explode('|', $var); - $c = count($vars); - $k = trim($vars[0]); - $theVar = isset($source) ? $source[$k] : $GLOBALS[$k]; - - for ($a=1;$a<$c;$a++) { - if (!isset($theVar)) { break; } + function getGlobal($keyString, $source=NULL) { + $keyArray = explode('|', $keyString); + $levelsCount = count($keyArray); + $rootKey = trim($vars[0]); + $value = isset($source) ? $source[$rootKey] : $GLOBALS[$rootKey]; - $key = trim($vars[$a]); - if (is_object($theVar)) { - $theVar = $theVar->$key; - } elseif (is_array($theVar)) { - $theVar = $theVar[$key]; + for ($i=1;$i<$levelsCount;$i++) { + if (!isset($value)) { break; } + $currentKey = trim($keyArray[$i]); + if (is_object($value)) { + $value = $value->$currentKey; + } elseif (is_array($value)) { + $value = $value[$currentKey]; } else { return ''; } } - if (!is_array($theVar) && !is_object($theVar)) { - return $theVar; + if (!is_array($value) && !is_object($value)) { + return $value; } else { return ''; }