/** * Establishes a connection to the DAL module with the given ID. * * @param string $moduleID * The ID of a module that is specified in the following description e.g. * "ReadCSV" * * @param string $moduleDesc * Description of the DAL modules as XML structure as returned by * getDALModules(). * * @return string * An XML structure with the value <true> if the connection was * successfully established, <false> and an error message otherwise. * Example: * <?xml version="1.0"?> * <ReturnValue xmlns="http://www.ontoprise.de/smwplus#"> * <value>true</value> * <message>Successfully connected to module "ReadCSV".</message> * </ReturnValue > * */ public function connectDAL($moduleID, &$moduleDesc) { global $smwgDIIP; require_once $smwgDIIP . '/specials/TermImport/SMW_XMLParser.php'; $retVal = 'true'; $parser = new XMLParser($moduleDesc); $result = $parser->parse(); if ($result !== TRUE) { $msg = $result; $retVal = 'false'; } else { $moduleSpec = $parser->findElementWithContent('ID', $moduleID); if ($moduleSpec) { $className = $moduleSpec['CLASS']['value']; $file = $moduleSpec['FILE']['value']; $inc = TERM_IMPORT_PATH . $file . '.php'; if (include_once $inc) { $this->connectedDAL = new $className(); $msg = wfMsg('smw_ti_succ_connected', $moduleID); } else { $msg = wfMsg('smw_ti_class_not_found', $className); } } else { $msg = wfMsg('smw_ti_no_tl_module_spec', $moduleID); $retVal = 'false'; } } return '<?xml version="1.0"?>' . "\n" . '<ReturnValue xmlns="http://www.ontoprise.de/smwplus#">' . "\n" . '<value>' . $retVal . '</value>' . "\n" . '<message>' . $msg . '</message>' . "\n" . '</ReturnValue >' . "\n"; }