Index: t3lib/class.t3lib_div.php =================================================================== --- t3lib/class.t3lib_div.php (revision 7711) +++ t3lib/class.t3lib_div.php (working copy) @@ -3625,7 +3625,7 @@ } else { $tabHeader = 'Debug'; } - + if (is_object($var)) { $debug = str_replace( array('"', '/', '<', "\n", "\r"), @@ -5008,9 +5008,10 @@ // Check file-reference prefix; if found, require_once() the file (should be library of code) if (strpos($funcName,':') !== false) { - list($file,$funcRef) = self::revExplode(':',$funcName,2); - $requireFile = self::getFileAbsFileName($file); - if ($requireFile) self::requireOnce($requireFile); + list($file, $funcRef) = self::getFileNameAndClassNameFromString($funcName); + if ($file) { + self::requireOnce($file); + } } else { $funcRef = $funcName; } @@ -5118,10 +5119,11 @@ } else { // Check file-reference prefix; if found, require_once() the file (should be library of code) - if (strpos($classRef,':') !== false) { - list($file,$class) = self::revExplode(':',$classRef,2); - $requireFile = self::getFileAbsFileName($file); - if ($requireFile) self::requireOnce($requireFile); + if (strpos($classRef, ':') !== FALSE) { + list($file, $class) = self::getFileNameAndClassNameFromString($classRef); + if ($file) { + self::requireOnce($file); + } } else { $class = $classRef; } @@ -5176,6 +5178,14 @@ // Get final classname $className = self::getClassName($className); + // Check file-reference prefix; if found, require_once() the file (should be library of code) + if (strpos($className, ':') !== FALSE) { + list($file, $className) = self::getFileNameAndClassNameFromString($className); + if ($file) { + self::requireOnce($file); + } + } + if (isset($instances[$className])) { // it's a singleton, get the existing instance $instance = $instances[$className]; @@ -5228,6 +5238,19 @@ } /** + * Returns the file and class name from a string with syntax EXT:extkexy/path_to_file:classname + * class-extension API. + * + * @param string Definition of class with extkey, classfile and classname + * @return array array with absolute file for inclusion and the final class name to instantiate with "new [classname]" + */ + public function getFileNameAndClassNameFromString($string) { + list($file, $class) = self::revExplode(':', $string, 2); + $file = self::getFileAbsFileName($file); + return array($file, $class); + } + + /** * Find the best service and check if it works. * Returns object of the service class. *