Index: branches/5.2.x/core/install/install_toolkit.php =================================================================== diff -u -N -r14863 -r14999 --- branches/5.2.x/core/install/install_toolkit.php (.../install_toolkit.php) (revision 14863) +++ branches/5.2.x/core/install/install_toolkit.php (.../install_toolkit.php) (revision 14999) @@ -1,6 +1,6 @@ getPrerequisiteObject($module_path); /* @var $prerequisite_object InPortalPrerequisites */ - if ( method_exists($prerequisite_object, 'setToolkit') ) { - $prerequisite_object->setToolkit($this); - } - // some errors possible return $prerequisite_object->CheckPrerequisites($versions, $mode); } @@ -167,29 +153,44 @@ */ function CallPrerequisitesMethod($module_path, $method) { - static $prerequisit_classes = Array (); + $prerequisite_object =& $this->getPrerequisiteObject($module_path); + /* @var $prerequisite_object InPortalPrerequisites */ + return $prerequisite_object->$method(); + } + + /** + * Returns prerequisite object to be used for checks + * + * @param string $module_path + * @param string $versions + * @return bool + * @access protected + */ + protected function &getPrerequisiteObject($module_path) + { + static $prerequisite_classes = Array (); + $prerequisites_file = sprintf(PREREQUISITE_FILE, $module_path); - if ( !file_exists($prerequisites_file)) { - return Array (); + if ( !file_exists($prerequisites_file) ) { + return false; } - if ( !isset($prerequisit_classes[$module_path]) ) { + if ( !isset($prerequisite_classes[$module_path]) ) { // save class name, because 2nd time // (in after call $prerequisite_class variable will not be present) include_once $prerequisites_file; - $prerequisit_classes[$module_path] = $prerequisite_class; + $prerequisite_classes[$module_path] = $prerequisite_class; } - $prerequisite_object = new $prerequisit_classes[$module_path](); + $prerequisite_object = new $prerequisite_classes[$module_path](); /* @var $prerequisite_object InPortalPrerequisites */ if ( method_exists($prerequisite_object, 'setToolkit') ) { $prerequisite_object->setToolkit($this); } - // some errors possible - return $prerequisite_object->$method(); + return $prerequisite_object; } /**