Ejemplo n.º 1
0
 /**
  * This function sets up the modules of the import framework according to the
  * settings, reads the terms and creates articles for them.
  *
  * @param string $settings
  * 		This XML string contains the modules (Transport Layer, Data Access Layer),
  * 		the data source, the import sets and the input, mapping and conflict
  * 		policy.
  *
  * @return mixed (boolean, string)
  * 		<true>, if all terms were successfully imported or an
  * 		error message, otherwise.
  *
  */
 public function importTerms($settings, $termImportName)
 {
     echo "Starting to import terms...\n";
     echo "\n" . $settings;
     global $smwgDIIP;
     require_once $smwgDIIP . '/specials/TermImport/SMW_XMLParser.php';
     $parser = new XMLParser($settings);
     $result = $parser->parse();
     if ($result !== TRUE) {
         return $result;
     }
     $tlModule = $parser->getValuesOfElement(array('TLModules', 'Module', 'id'));
     if (count($tlModule) == 0) {
         return "Error: Transport layer module was not defined.";
         //todo: language
     }
     $dalModule = $parser->getValuesOfElement(array('DALModules', 'Module', 'id'));
     if (count($dalModule) == 0) {
         return "Error: Data access layer module was not defined.";
         //todo: language
     }
     global $smwgDIIP;
     require_once $smwgDIIP . '/specials/TermImport/SMW_WIL.php';
     $wil = new WIL();
     $tlModules = $wil->getTLModules();
     echo "\n WIL connected";
     $res = $wil->connectTL($tlModule[0], $tlModules);
     if (stripos($res, '<value>true</value>') === false) {
         return "Connecting the transport layer module {$tlModule['0']} failed.";
         //todo: language
     }
     $dalModules = $wil->getDALModules();
     $res = $wil->connectDAL($dalModule[0], $dalModules);
     if (stripos($res, '<value>true</value>') === false) {
         return "Connecting the data access layer module {$dalModule['0']} failed.";
         //todo: language
     }
     $source = $parser->serializeElement(array('DataSource'));
     $importSets = $parser->serializeElement(array('ImportSets'));
     $inputPolicy = $parser->serializeElement(array('InputPolicy'));
     $conflictPolicy = $parser->serializeElement(array('ConflictPolicy'));
     echo "\nGet Terms";
     $terms = $wil->getTerms($source, $importSets, $inputPolicy, $conflictPolicy);
     echo "\nTerms in place";
     $mappingPolicy = $parser->serializeElement(array('MappingPolicy'));
     try {
         $result = $this->createArticles($terms, $mappingPolicy, $conflictPolicy, $wil, $termImportName);
         echo "Bot finished!\n";
         if ($result === true) {
             $result = wfMsg('smw_ti_import_successful');
         }
     } catch (Exception $e) {
         $result = "Something bad happened during the Term Import: " . $e;
     }
     return $result;
 }