Skip to content
Snippets Groups Projects
Commit 3496f753 authored by alangrafu's avatar alangrafu
Browse files

Adding multiple queries when generating a page

Instead of creating a file for the model, create a dir (e.g.,
foaf:Person.view.html). Inside add different files (the name doesn't
matter). In the view file, they will be accessed as r.filename and can
be operated as usual
parent 4fe08c8b
No related branches found
No related tags found
No related merge requests found
...@@ -52,7 +52,7 @@ class Utils{ ...@@ -52,7 +52,7 @@ class Utils{
return $ns[$parts[0]].$parts[1]; return $ns[$parts[0]].$parts[1];
} }
public static function getPrefix($curie){ public static function getPrefix($curie){
global $conf; global $conf;
$ns = $conf['ns']; $ns = $conf['ns'];
$parts = explode(':', $curie); $parts = explode(':', $curie);
...@@ -102,8 +102,16 @@ class Utils{ ...@@ -102,8 +102,16 @@ class Utils{
'template_dir' => './', 'template_dir' => './',
'cache_dir' => 'cache/', 'cache_dir' => 'cache/',
)); ));
$r = Utils::sparqlResult2Obj($data);
$vars = compact('base', 'r'); $r = array();
if(!isset($data['results'])){
foreach($data as $k => $v){
$r[$k] = Utils::sparqlResult2Obj($v);
}
}else{
$r = Utils::sparqlResult2Obj($data);
}
$vars = compact('base', 'r');
if(is_file($view)){ if(is_file($view)){
Haanga::Load($view, $vars); Haanga::Load($view, $vars);
}else{ }else{
...@@ -148,13 +156,9 @@ class Utils{ ...@@ -148,13 +156,9 @@ class Utils{
} }
public static function processDocument($uri, $contentType, $data, $viewFile){ private static function serializeByQueryType($data){
global $conf; global $conf;
$extension = Utils::getExtension($contentType); if(preg_match("/describe/i", $data['query'])){
header('Content-Type: '.$contentType);
if(preg_match("/describe/i", $data['query'])){
require('lib/arc2/ARC2.php'); require('lib/arc2/ARC2.php');
$parser = ARC2::getRDFParser(); $parser = ARC2::getRDFParser();
$parser->parse($conf['basedir'], $data['results']); $parser->parse($conf['basedir'], $data['results']);
...@@ -181,6 +185,21 @@ class Utils{ ...@@ -181,6 +185,21 @@ class Utils{
Utils::send404($uri); Utils::send404($uri);
} }
} }
return $results;
}
public static function processDocument($uri, $contentType, $data, $viewFile){
global $conf;
$extension = Utils::getExtension($contentType);
header('Content-Type: '.$contentType);
if(!isset($data['results'])){
foreach($data as $k => $v){
$results[$k] = Utils::serializeByQueryType($v);
}
}else{
$results = Utils::serializeByQueryType($data);
}
Utils::showView($uri, $results, $viewFile); Utils::showView($uri, $results, $viewFile);
exit(0); exit(0);
...@@ -195,7 +214,7 @@ class Utils{ ...@@ -195,7 +214,7 @@ class Utils{
}elseif(preg_match("/construct/i", $query)){ }elseif(preg_match("/construct/i", $query)){
return $conf['endpoint']['describe']['output']; return $conf['endpoint']['describe']['output'];
}else{ }else{
Utils::send500($uri); Utils::send500(null);
} }
} }
......
...@@ -74,11 +74,26 @@ if(!file_exists($modelFile) || !file_exists($viewFile) || $curieType == null){ ...@@ -74,11 +74,26 @@ if(!file_exists($modelFile) || !file_exists($viewFile) || $curieType == null){
$modelFile = $conf['model']['directory'].$conf['model']['default'].$conf['model']['extension'].".".$extension; $modelFile = $conf['model']['directory'].$conf['model']['default'].$conf['model']['extension'].".".$extension;
$viewFile = $conf['view']['directory'].$conf['view']['default'].$conf['view']['extension'].".".$extension; $viewFile = $conf['view']['directory'].$conf['view']['default'].$conf['view']['extension'].".".$extension;
} }
$query = file_get_contents($modelFile);
$query = preg_replace("|".$conf['resource']['url_delimiter']."|", "<".$uri.">", $query);
$data['results'] = $endpoint->query($query, Utils::getResultsType($query)); if(!is_dir($modelFile)){
$data['query'] = $query; $query = file_get_contents($modelFile);
$query = preg_replace("|".$conf['resource']['url_delimiter']."|", "<".$uri.">", $query);
$data['results'] = $endpoint->query($query, Utils::getResultsType($query));
$data['query'] = $query;
}else{
$modelDir = $modelFile;
$handle = opendir($modelDir);
while (false !== ($modelFile = readdir($handle))) {
if($modelFile != "." && $modelFile != ".."){
$query = file_get_contents($modelDir."/".$modelFile);
$query = preg_replace("|".$conf['resource']['url_delimiter']."|", "<".$uri.">", $query);
$data[$modelFile]['results'] = $endpoint->query($query, Utils::getResultsType($query));
$data[$modelFile]['query'] = $query;
}
}
closedir($handle);
}
Utils::processDocument($uri, $acceptContentType, $data, $viewFile); Utils::processDocument($uri, $acceptContentType, $data, $viewFile);
//} //}
......
...@@ -92,9 +92,13 @@ cp $root_htaccess $parent_htaccess ...@@ -92,9 +92,13 @@ cp $root_htaccess $parent_htaccess
cd views cd views
ln -s default.view.rdf default.view.nt ln -s default.view.rdf default.view.nt
ln -s default.view.rdf default.view.ttl ln -s default.view.rdf default.view.ttl
ln -s owl:Class.view.html rdfs:Class.view.html
cd ../models cd ../models
ln -s default.model.rdf default.model.nt ln -s default.model.rdf default.model.nt
ln -s default.model.rdf default.model.ttl ln -s default.model.rdf default.model.ttl
ln -s owl:Class.model.html rdfs:Class.view.html
cd .. cd ..
mkdir cache mkdir cache
......
SELECT DISTINCT ?instances WHERE {
?instances a %u .
}
SELECT ?instances WHERE{
?instances a %u .
}
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?class WHERE{
%u a ?class .
}
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" {% for i, ns in base.ns %}xmlns:{{i}}="{{ns}}" <html xmlns="http://www.w3.org/1999/xhtml" {% for i, ns in base.ns %}xmlns:{{i}}="{{ns}}"
{%endfor%}version="XHTML+RDFa 1.0" xml:lang="en"> {%endfor%}version="XHTML+RDFa 1.0" xml:lang="en">
<link href="{{base.baseUrl}}/lodspeakr/css/basic.css" rel="stylesheet" type="text/css" media="screen" />
<head> <head>
<title>Page about {{base.this.value}}</title> <title>Page about {{base.this.value}}</title>
</head> </head>
...@@ -11,13 +12,23 @@ ...@@ -11,13 +12,23 @@
<div> <div>
<h2>Instances of {{base.this.curie}}</h2> <h2>Instances of {{base.this.curie}}</h2>
<ul> <ul>
{% for row in r %} {% for row in r.instances %}
{% if row.value.instances != null %} {% if row.value.instances != null %}
<li><a href='{{ row.value.instances }}'>{{row.curie.instances}}</a></li> <li><a href='{{ row.value.instances }}'>{{row.curie.instances}}</a></li>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
<div>
<h2>Superclass of {{base.this.curie}}</h2>
<ul>
{% for row in r.superclasses %}
{% if row.value.class != null %}
<li><a href='{{ row.value.class }}'>{{row.curie.class}}</a></li>
{% endif %}
{% endfor %}
</ul>
</div>
</body> </body>
</html> </html>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment