Something went wrong on our end
-
Alvaro Graves authoredAlvaro Graves authored
uriModule.php 3.52 KiB
<?
require_once('abstractModule.php');
class UriModule extends abstractModule{
//Uri module
public function match($uri){
global $conf;
global $localUri;
global $uri;
global $acceptContentType;
global $endpoints;
global $lodspk;
require_once('classes/MetaDb.php');
$metaDb = new MetaDb($conf['metadata']['db']['location']);
$pair = Queries::getMetadata($localUri, $acceptContentType, $metaDb);
if($pair == NULL){ // Original URI is not in metadata
if(Queries::uriExist($uri, $endpoints['local'])){
$page = Queries::createPage($uri, $localUri, $acceptContentType, $metaDb);
if($page == NULL){
Utils::send500("Can't write sqlite database.");
}
Utils::send303($page, $acceptContentType);
exit(0);
}else{
return false; //Utils::send404($uri);
}
}
$extension = Utils::getExtension($pair[2]);
$curie = Utils::uri2curie($pair[0]);
list($modelFile, $viewFile) = $this->getModelandView($curie, $extension);
if($modelFile == NULL){
return FALSE;
}
return $pair;
}
public function execute($pair){
global $conf;
global $localUri;
global $uri;
global $acceptContentType;
global $endpoints;
global $lodspk;
global $results;
global $first;
list($res, $page, $format) = $pair;
$uri = $res;
$curie = Utils::uri2curie($res);
//If resource is not the page, send a 303 to the document
if($res == $localUri){
Utils::send303($page, $acceptContentType);
}
$uri = $res;
if($conf['mirror_external_uris']){
$localUri = preg_replace("|^".$conf['ns']['local']."|", $conf['basedir'], $res);
}
$extension = Utils::getExtension($format);
/*Redefine Content type based on the
* dcterms:format for this page
*/
$acceptContentType = $format;
$curie = Utils::uri2curie($uri);
list($modelFile, $viewFile) = $this->getModelandView($curie, $extension);
if($modelFile == NULL){
return;
}
$lodspk = $conf['view']['standard'];
$lodspk['type'] = $modelFile;
$lodspk['module'] = 'uri';
$lodspk['add_mirrored_uris'] = true;
$lodspk['this']['value'] = $uri;
$lodspk['this']['curie'] = Utils::uri2curie($uri);
$lodspk['thislocal']['value'] = $localUri;
$lodspk['thislocal']['curie'] = Utils::uri2curie($localUri);
$lodspk['this']['contentType'] = $acceptContentType;
$lodspk['model']['directory'] = $conf['model']['directory'];
$lodspk['view']['directory'] = $conf['view']['directory'];
$lodspk['ns'] = $conf['ns'];
chdir($conf['home'].$conf['model']['directory']);
Utils::queryFile($modelFile, $endpoints['local'], $results, $first);
$results = Utils::internalize($results);
$lodspk['first'] = Utils::getFirsts($results);
chdir($conf['home']);
if(is_array($results)){
$resultsObj = Convert::array_to_object($results);
}else{
$resultsObj = $results;
}
Utils::processDocument($viewFile, $lodspk, $resultsObj);
}
private static function getModelandView($uri, $extension){
global $conf;
$auxViewFile = $conf['view']['directory'].$conf['uri']['prefix'].$uri.'/'.$extension.'.template';
$auxModelFile = $conf['model']['directory'].$conf['uri']['prefix'].$uri.'/'.$extension.'.queries';
if(file_exists($auxModelFile) && file_exists($auxViewFile) ){
$viewFile = $conf['uri']['prefix'].$uri.'/'.$extension.'.template';
$modelFile = $conf['uri']['prefix'].$uri.'/'.$extension.'.queries';
return array($modelFile, $viewFile);
}
return array(NULL, NULL);
}
}
?>