/** * The main code goes here */ function execute($par) { global $wgOut, $wgRequest; try { $this->setHeaders(); $submitButtonText = "Import"; // For now, print the result XML from the SPARQL query if ($wgRequest->getText('action') === 'import') { if (RDFIOUtils::currentUserHasWriteAccess()) { $offset = $wgRequest->getVal('offset', 0); $limit = $this->triplesPerBatch; $submitButtonText = "Import next {$limit} triples..."; $wgOut->addHTML($this->getHTMLForm($submitButtonText)); $importInfo = $this->import($limit, $offset); $externalSparqlUrl = $importInfo['externalSparqlUrl']; $dataSourceImporter = new RDFIORDFImporter(); $dataSourceImporter->addDataSource($externalSparqlUrl, 'SPARQL'); } else { $errTitle = "No write access"; $errMsg = "The current logged in user does not have write access"; RDFIOUtils::showErrorMessage($errTitle, $errMsg); } } else { $wgOut->addHTML($this->getHTMLForm($submitButtonText)); $wgOut->addHTML('<div id=sources style="display:none">'); $wgOut->addWikiText('{{#ask: [[Category:RDFIO Data Source]] [[RDFIO Import Type::SPARQL]] |format=list }}'); $wgOut->addHTML('</div>'); } } catch (RDFIOException $e) { RDFIOUtils::showErrorMessage('Error!', $e->getMessage()); } }
/** * Get data from the request object and store it in class variables */ function getRequestData() { global $wgRequest, $wgArticlePath; $requestData = new RDFIORequestData(); $requestData->action = $wgRequest->getText('action'); $requestData->editToken = $wgRequest->getText('token'); $requestData->importSource = $wgRequest->getText('importsrc'); $requestData->nsPrefixInWikiTitlesProperties = $wgRequest->getBool('nspintitle_prop', false); // TODO: Remove? $requestData->nsPrefixInWikiTitlesEntities = $wgRequest->getBool('nspintitle_ent', false); // TODO: Remove? $requestData->externalRdfUrl = $wgRequest->getText('extrdfurl'); $requestData->importData = $wgRequest->getText('importdata'); $requestData->dataFormat = $wgRequest->getText('dataformat'); $requestData->hasWriteAccess = RDFIOUtils::currentUserHasWriteAccess(); $requestData->articlePath = $wgArticlePath; return $requestData; }