diff --git a/classes/Utils.php b/classes/Utils.php index ac0c979d6642e3e136b09afd404329de23e27714..07b1997dc1266467b1c00520f17a12598c339634 100644 --- a/classes/Utils.php +++ b/classes/Utils.php @@ -222,7 +222,7 @@ class Utils{ public static function processDocument($viewFile, $lodspk, $data){ global $conf; - $contentType = $lodspk['this']['contentType']; + $contentType = $lodspk['contentType']; $extension = Utils::getExtension($contentType); header('Content-Type: '.$contentType); @@ -251,7 +251,7 @@ class Utils{ global $lodspk; global $endpoints; global $results; - $lodspk['model']['directory'] = $modelDir; + $lodspk['model'] = $modelDir; $originalDir = getcwd(); $subDirs= array(); trigger_error("Entering $modelDir from ".getcwd(), E_USER_NOTICE); @@ -290,7 +290,7 @@ class Utils{ } } closedir($handle); - $originalDir = $lodspk['model']['directory']; + $originalDir = $lodspk['model']; if(isset($subDirs)){ foreach($subDirs as $v){ if(!isset($r[$modelDir])){ @@ -332,8 +332,11 @@ class Utils{ $models = Convert::array_to_object($r2); $f = Convert::array_to_object($first); $vars = compact('uri', 'lodspk', 'models', 'f'); - - $fnc = Haanga::compile(file_get_contents($modelFile)); + $q = file_get_contents($modelFile); + if($q == false){ + Utils::send500("I can't load ".$modelFile." in ".getcwd()); + } + $fnc = Haanga::compile($q); $query = $fnc($vars, TRUE); if(is_object($lodspk)){ @@ -497,13 +500,12 @@ class Utils{ global $extension; //$lodspk = $conf['view']['standard']; $lodspk = $lodspkData; - if(isset($lodspkData['params'])){ $lodspk['this']['params'] = $lodspkData['params']; } - require_once('lib/Haanga/lib/Haanga.php'); + require_once($conf['home'].'lib/Haanga/lib/Haanga.php'); Haanga::configure(array( - 'template_dir' => $lodspk['view']['directory'], + 'template_dir' => $lodspk['view'], 'cache_dir' => $conf['home'].'cache/', )); $models = $data; @@ -517,7 +519,7 @@ class Utils{ } if(is_string($data)){ echo($data); - }elseif(is_file($lodspk['view']['directory'].$view)){ + }elseif(is_file($lodspk['view'].$view)){ Haanga::Load($view, $vars); }else{ $fnc = Haanga::compile($view); diff --git a/classes/modules/serviceModule.php b/classes/modules/serviceModule.php index d358b49f27c0348a34d41aaa2bda128b442dc4ab..487b55a679c809b964fe16ce7bd0b6ba62eee987 100644 --- a/classes/modules/serviceModule.php +++ b/classes/modules/serviceModule.php @@ -14,15 +14,15 @@ class ServiceModule extends abstractModule{ return FALSE; } $extension = Utils::getExtension($acceptContentType); - $lodspk['model']['directory'] = $conf['home'].$conf['model']['directory'].$conf['service']['prefix'].$qArr[0]."/"; - $lodspk['view']['directory'] = $conf['home'].$conf['view']['directory'].$conf['service']['prefix'].$qArr[0].'/'; + $lodspk['model'] = $conf['home'].$conf['model']['directory'].$conf['service']['prefix'].$qArr[0]."/"; + $lodspk['view'] = $conf['home'].$conf['view']['directory'].$conf['service']['prefix'].$qArr[0].'/'; $viewFile = $extension.".template"; $modelFile = $extension.".queries"; - if(file_exists($lodspk['model']['directory'].$modelFile) && file_exists($lodspk['view']['directory'].$viewFile) && $qArr[0] != null){ + if(file_exists($lodspk['model'].$modelFile) && file_exists($lodspk['view'].$viewFile) && $qArr[0] != null){ trigger_error("Using model ".$modelFile." and view ".$viewFile, E_USER_NOTICE); return array($modelFile, $viewFile); - }elseif($extension != 'html' && file_exists($conf['model']['directory'].$conf['service']['prefix'].$qArr[0].'/html.queries')){ - $modelFile = $conf['home'].$conf['model']['directory'].$conf['service']['prefix'].$qArr[0].'/html.queries'; + }elseif($extension != 'html' && file_exists($lodspk['model'].$conf['service']['prefix'].$qArr[0].'/html.queries')){ + $modelFile = $conf['home'].$lodspk['model'].$conf['service']['prefix'].$qArr[0].'/html.queries'; $viewFile = null; trigger_error("Using ".$modelFile." as model. It will be used as a CONSTRUCT", E_USER_NOTICE); return array($modelFile, $viewFile); @@ -72,31 +72,30 @@ public function execute($service){ $args["arg".$i]=$params[$i]; } $results['params'] = $params; - //$lodspk = $conf['view']['standard']; - $lodspk['type'] = $modelFile; - $lodspk['root'] = $conf['root']; + + $lodspk['home'] = $conf['basedir']; + $lodspk['baseUrl'] = $conf['basedir']; + $lodspk['module'] = 'service'; + $lodspk['root'] = $conf['root']; + $lodspk['contentType'] = $acceptContentType; + $lodspk['ns'] = $conf['ns']; $lodspk['this']['value'] = $uri; $lodspk['this']['curie'] = Utils::uri2curie($uri); - $lodspk['this']['contentType'] = $acceptContentType; - //$lodspk['model']['directory'] = $conf['model']['directory']; - //$lodspk['view']['directory'] = $conf['view']['directory']; - $lodspk['ns'] = $conf['ns']; + $lodspk['this']['local'] = $localUri; + $lodspk['contentType'] = $acceptContentType; $lodspk['endpoint'] = $conf['endpoint']; + $lodspk['type'] = $modelFile; $lodspk['header'] = $prefixHeader; $lodspk['args'] = $args; - $lodspk['module'] = 'service'; $lodspk['add_mirrored_uris'] = false; $lodspk['baseUrl'] = $conf['basedir']; $lodspk['this']['value'] = $uri; - $lodspk['this']['contentType'] = $acceptContentType; - //$lodspk['view']['directory'] = $viewFile;//$conf['home'].$conf['view']['directory'];//.$conf['service']['prefix'].$f.'/'; - //$lodspk['model']['directory'] = $conf['home'].$conf['model']['directory']; if($viewFile == null){ $lodspk['transform_select_query'] = true; } - chdir($lodspk['model']['directory']); + chdir($lodspk['model']); Utils::queryFile($modelFile, $endpoints['local'], $results, $first); $results = Utils::internalize($results); diff --git a/classes/modules/typeModule.php b/classes/modules/typeModule.php index 7cc6a0e95987d34e122ad930b5b071bb35dd46e1..7f5f7592f73326235287b2a5de8a6d0737c5aa81 100644 --- a/classes/modules/typeModule.php +++ b/classes/modules/typeModule.php @@ -57,32 +57,31 @@ class TypeModule extends abstractModule{ * dcterms:format for this page */ $acceptContentType = $format; - //Check if files for model and view exist $t=Queries::getClass($uri, $endpoints['local']); - list($modelFile, $viewFile) = $this->getModelandView($t, $extension); - $lodspk = $conf['view']['standard']; + $obj = $this->getModelandView($t, $extension); + $modelFile = $obj['modelFile']; + $lodspk['model'] = $obj['modelDir']; + $viewFile = $obj['viewFile']; + $lodspk['view'] = $obj['viewDir']; if($viewFile == null){ $lodspk['transform_select_query'] = true; } + $lodspk['home'] = $conf['basedir']; + $lodspk['baseUrl'] = $conf['basedir']; $lodspk['module'] = 'type'; + $lodspk['root'] = $conf['root']; + $lodspk['contentType'] = $acceptContentType; + $lodspk['ns'] = $conf['ns']; + $lodspk['endpoint'] = $conf['endpoint']; + $lodspk['add_mirrored_uris'] = true; - $lodspk['type'] = $modelFile; $lodspk['this']['value'] = $uri; $lodspk['this']['curie'] = Utils::uri2curie($uri); - $lodspk['thislocal']['value'] = $localUri; - $lodspk['thislocal']['curie'] = Utils::uri2curie($localUri); - - $lodspk['this']['extension'] = $extension; - $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']); - + $lodspk['this']['local'] = $localUri; + $lodspk['this']['extension'] = $extension; + chdir($conf['home'].$lodspk['model']); Utils::queryFile($modelFile, $endpoints['local'], $results, $first); $results = Utils::internalize($results); @@ -93,7 +92,7 @@ class TypeModule extends abstractModule{ }else{ $resultsObj = $results; } - Utils::processDocument($viewFile, $lodspk, $resultsObj); + Utils::processDocument($viewFile, $lodspk, $resultsObj); } @@ -102,12 +101,15 @@ class TypeModule extends abstractModule{ global $results; global $rPointer; global $lodspk; + $objResult = array(); //Defining default views and models $curieType=""; - $modelFile = 'type.rdfs:Resource/html.queries'; - $viewFile = null;//'type.rdfs:Resource/html.template'; + $objResult['modelFile'] = 'main.query'; + $objResult['viewFile'] = null;//'html.template'; + $objResult['modelDir'] = $conf['model']['directory'].'type.rdfs:Resource/html.queries/'; + $objResult['viewDir'] = $conf['view']['directory'].'type.rdfs:Resource/'; - //Get the first type available + //Get the first type available $typesAndValues = array(); foreach($t as $v){ $curie = Utils::uri2curie($v); @@ -118,24 +120,28 @@ class TypeModule extends abstractModule{ } arsort($typesAndValues); foreach($typesAndValues as $v => $w){ - $auxViewFile = $conf['view']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.template'; - $auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.queries'; + $auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/'; + $auxViewFile = $conf['view']['directory'].$conf['type']['prefix'].$v.'/'; if(file_exists($auxModelFile) && file_exists($auxViewFile) && $v != null){ - $viewFile = $conf['type']['prefix'].$v.'/'.$extension.'.template'; - $modelFile = $conf['type']['prefix'].$v.'/'.$extension.'.queries'; + $auxViewFile = $conf['view']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.template'; + $auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.queries'; + $objResult['viewFile'] = $extension.'.template'; + $objResult['modelFile'] = $extension.'.queries'; break; }elseif($extension != 'html' && file_exists($conf['model']['directory'].$conf['type']['prefix'].$v.'/html.queries')){ - $modelFile = $conf['type']['prefix'].$v.'/html.queries'; - $viewFile = null; + $auxViewFile = $conf['view']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.template'; + $auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.queries'; + $objResult['modelFile'] = $conf['type']['prefix'].$v.'/html.queries'; + $objResult['viewFile'] = null; trigger_error("LODSPeaKr can't find the proper query. Using HTML query instead.", E_USER_NOTICE); break; } } - if($viewFile == null && $extension == 'html'){ - $viewFile = 'type.rdfs:Resource/html.template'; + if($objResult['viewFile'] == null && $extension == 'html'){ + $objResult['viewFile'] = 'html.template'; } - return array($modelFile, $viewFile); + return $objResult; } } diff --git a/classes/modules/uriModule.php b/classes/modules/uriModule.php index b89e199144123f0cc15a7181cedae210d1f4ffbb..a85e265e53f66d47e1ce1d86df42a612776b2e5d 100644 --- a/classes/modules/uriModule.php +++ b/classes/modules/uriModule.php @@ -84,8 +84,8 @@ class UriModule extends abstractModule{ $lodspk['thislocal']['curie'] = Utils::uri2curie($localUri); $lodspk['this']['contentType'] = $acceptContentType; - $lodspk['model']['directory'] = $conf['model']['directory']; - $lodspk['view']['directory'] = $conf['view']['directory']; + $lodspk['model'] = $conf['model']['directory']; + $lodspk['view'] = $conf['view']['directory']; $lodspk['ns'] = $conf['ns']; diff --git a/meta/db.sqlite b/meta/db.sqlite old mode 100644 new mode 100755 index d8164d52c0d35251135622116b11a99a996ec341..ce45aa5749f978dcd10eba8fecebb2e3129ff0f3 Binary files a/meta/db.sqlite and b/meta/db.sqlite differ diff --git a/models/service.classes/html.queries/main.query b/models/service.classes/html.queries/main.query index 754216a5d06ad3f63d94f16f9d259fb1a255a73a..19319b6a1a62ea40d336e82941d53606fd464f11 100644 --- a/models/service.classes/html.queries/main.query +++ b/models/service.classes/html.queries/main.query @@ -2,7 +2,7 @@ PREFIX {{h.prefix}}: <{{h.ns}}> {%endfor%} SELECT DISTINCT ?resource WHERE { - {%if base.args.arg0 %}GRAPH <{{base.args.arg0}}>{ {%endif%} + {%if base.args.arg0 %}GRAPH <{{base.args.arg0}}>{ {%else%} GRAPH?g { {%endif%} [] a ?resource . {%if base.args.arg0 %} } {%endif%} } diff --git a/models/service.instances/html.queries/main.query b/models/service.instances/html.queries/main.query index 5ff6cf27a42a08634ab1974a5b043a59ebcd2431..f50a15c6cd2f549779ca29478dfbe21bb6c6996a 100644 --- a/models/service.instances/html.queries/main.query +++ b/models/service.instances/html.queries/main.query @@ -2,5 +2,7 @@ PREFIX {{h.prefix}}: <{{h.ns}}> {%endfor%} SELECT DISTINCT ?resource WHERE { - ?resource a {{lodspk.args.arg0}} + GRAPH ?g{ + ?resource a {{lodspk.args.arg0}} + } } diff --git a/utils/modules/create-service.sh b/utils/modules/create-service.sh index 4fdddb342249dc1535dfe0c0f1b558aebcfbe737..d7908926f3ec7da4584095c2333e58a79229de2d 100755 --- a/utils/modules/create-service.sh +++ b/utils/modules/create-service.sh @@ -9,7 +9,7 @@ modelHtml=$(cat <<QUERY PREFIX {{h.prefix}}: <{{h.ns}}> {%endfor%} SELECT DISTINCT ?resource WHERE { - {%if base.args.arg0 %}GRAPH <{{lodspk.args.arg0}}>{ {%endif%} + {%if base.args.arg0 %}GRAPH <{{lodspk.args.arg0}}>{ {%else%} GRAPH?g { {%endif%} [] a ?resource . {%if base.args.arg0 %} } {%endif%} } diff --git a/views/type.rdfs:Resource/html.template b/views/type.rdfs:Resource/html.template index 847e3b911b55106f401f7352c0275ab4cb50c7ca..6b5a78bde0888e15c32443f3933f6808e61c4e76 100644 --- a/views/type.rdfs:Resource/html.template +++ b/views/type.rdfs:Resource/html.template @@ -5,7 +5,7 @@ {%endfor%}version="XHTML+RDFa 1.0" xml:lang="en"> <head> <title>Page about {{lodspk.this.value}}</title> - <link href="{{lodspk.baseUrl}}css/basic.css" rel="stylesheet" type="text/css" media="screen" /> + <link href="{{lodspk.home}}css/basic.css" rel="stylesheet" type="text/css" media="screen" /> <link rel="alternate" type="application/rdf+xml" title="RDF/XML Version" href="{{lodspk.this.value}}.rdf" /> <link rel="alternate" type="text/turtle" title="Turtle Version" href="{{lodspk.this.value}}.ttl" /> <link rel="alternate" type="text/plain" title="N-Triples Version" href="{{lodspk.this.value}}.nt" /> @@ -13,7 +13,8 @@ </head> <body about="{{lodspk.this.value}}"> <h1>Page about <a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a></h1> - <div> + {{lodspk.endpoint.local}} + <div> <h2>Information from {{lodspk.this.curie}}</h2> <table> {% for row in models.main %}