diff --git a/classes/Utils.php b/classes/Utils.php index f2d16e15f202dee752f8aec47067805f5b6b10d8..e1cb69feb3b0c14a44d1a2e218ac0399c9f792db 100644 --- a/classes/Utils.php +++ b/classes/Utils.php @@ -87,7 +87,7 @@ class Utils{ foreach($aux as $w){ $row = array(); foreach($w as $k => $v){ - + $row[$k]['value'] = $v['value']; if($v['type'] == 'uri'){ $row[$k]['curie'] = Utils::uri2curie($v['value']); @@ -358,11 +358,11 @@ class Utils{ if(!isset($value['value'])){ $array[$key] = Utils::internalize($value); /*if($firstKeyAppearance){ - $firstKeyAppearance = false; - $array['_first']=$array[$key]; + $firstKeyAppearance = false; + $array['_first']=$array[$key]; }*/ }else{ - if($value['uri'] == 1){ + if(isset($value['uri']) && $value['uri'] == 1){ $value['value'] = preg_replace("|^".$conf['ns']['local']."|", $conf['basedir'], $value['value']); $value['curie'] = Utils::uri2curie($value['value']); $array[$key] = $value; @@ -417,6 +417,39 @@ class Utils{ } + public static function getModelandView($t, $extension){ + global $conf; + //Defining default views and models + $curieType=""; + $modelFile = $conf['model']['default'].$conf['model']['extension'].".".$extension; + $viewFile = $conf['view']['default'].$conf['view']['extension'].".".$extension; + + //Get the first class available + /* TODO: Allow user to priotize + * which class should be used + * Example: URI is foaf:Person and ex:Student + * If both, prefer ex:Student + */ + $typesAndValues = array(); + foreach($t as $v){ + $curie = Utils::uri2curie($v); + $typesAndValues[$curie] = 0; + if(isset($conf['types']['priorities'][$curie]) && $conf['types']['priorities'][$curie] >= 0){ + $typesAndValues[$curie] = $conf['types']['priorities'][$curie]; + } + } + arsort($typesAndValues); + foreach($typesAndValues as $v => $w){ + $auxViewFile = $conf['view']['directory'].$v.$conf['view']['extension'].".".$extension; + $auxModelFile = $conf['model']['directory'].$v.$conf['model']['extension'].".".$extension; + if(file_exists($auxModelFile) && file_exists($auxViewFile) && $v != null){ + $viewFile = $v.$conf['view']['extension'].".".$extension; + $modelFile = $v.$conf['model']['extension'].".".$extension; + break; + } + } + return array($modelFile, $viewFile); + } } diff --git a/common.inc.php b/common.inc.php index deccb0ff9d9f98283d6dc1e48a5970acf6d22e1f..04ac77fa5fa6ccc31bc918f06be5df3aba7e2e47 100644 --- a/common.inc.php +++ b/common.inc.php @@ -37,12 +37,14 @@ $conf['special']['class'] = 'classes/BasicSpecialFunction.php'; //Frontpage when user goes to http://example.org/ $conf['root'] = 'special/index'; +$conf['extension_connector'] = '.'; + +//Priority for rdfs:Resource (default). Priorities should be >=0 +$conf['types']['priorities']['rdfs:Resource'] = -1; //Debug $conf['debug'] = false; -$conf['extension_connector'] = '.'; - include_once('settings.inc.php'); $conf['view']['standard']['baseUrl'] = $conf['basedir']; diff --git a/index.php b/index.php index 11d46219eecee82cde22c19e54aa0e9dd7010cc4..d0f06e6a185eda0aa323fd53451f8f37432bbf5d 100755 --- a/index.php +++ b/index.php @@ -108,28 +108,8 @@ $acceptContentType = $format; //Check if files for model and view exist $t=Queries::getClass($uri, $endpoints['local']); -//Defining default views and models -$curieType=""; -$modelFile = $conf['model']['default'].$conf['model']['extension'].".".$extension; -$viewFile = $conf['view']['default'].$conf['view']['extension'].".".$extension; - -//Get the first class available -/* TODO: Allow user to priotize - * which class should be used - * Example: URI is foaf:Person and ex:Student - * If both, prefer ex:Student - */ - -foreach($t as $v){ - $curieType = Utils::uri2curie($v); - $auxViewFile = $conf['view']['directory'].$curieType.$conf['view']['extension'].".".$extension; - $auxModelFile = $conf['model']['directory'].$curieType.$conf['model']['extension'].".".$extension; - if(file_exists($auxModelFile) && file_exists($auxViewFile) && $curieType != null){ - $viewFile = $curieType.$conf['view']['extension'].".".$extension; - $modelFile = $curieType.$conf['model']['extension'].".".$extension; - break; - } -} +list($modelFile, $viewFile) = Utils::getModelandView($t, $extension); + $base = $conf['view']['standard']; $base['type'] = $modelFile; $base['this']['value'] = $uri;