From 470e0b66b609e51aec4989b137a442d48f2802fa Mon Sep 17 00:00:00 2001 From: alvaro <alvaro@alia.(none)> Date: Thu, 20 Sep 2012 15:16:44 -0700 Subject: [PATCH] Adding lodspk.source that contains URLs for the queries used in a service or type --- classes/Convert.php | 36 +++++++++++++++++++++++++++++++ classes/Utils.php | 2 +- classes/modules/serviceModule.php | 1 + classes/modules/typeModule.php | 1 + 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/classes/Convert.php b/classes/Convert.php index 9fbffab1..cfba76c1 100644 --- a/classes/Convert.php +++ b/classes/Convert.php @@ -69,5 +69,41 @@ final class Convert { return $aRetAr; } + + + static public function getPaths ($r, $path, $results) { + global $lodspk; + global $conf; + $arr = array(); + foreach($r as $k => $v){ + if($k == "params" ){ + continue; + } + if($k == "0"){//if query + return NULL; + } + $next = self::getPaths($r->$k, $path."endpoint.".$k."/", $arr); + if($next == NULL){ + $aux = $path.$k; + $root = array(); + $pointer = &$root; + $aux2 = explode("/", $aux); + $key = str_ireplace("endpoint.", "", array_shift($aux2)); + foreach($aux2 as $w){ + $x = str_ireplace("endpoint.", "", $w); + $pointer[$x] = array(); + $pointer = &$pointer[$x]; + } + $pointer = $lodspk['baseUrl'].'lodspeakr/components/'.$conf[$lodspk['module']]['prefix']."/".$lodspk['componentName']."/queries/".$aux.".query"; + if(isset($lodspk['source'][$key])){ + $lodspk['source'][$key] = array_merge($lodspk['source'][$key], $root); + }else{ + $lodspk['source'][$key] = $root; + } + } + } + return 1; + } + } ?> diff --git a/classes/Utils.php b/classes/Utils.php index 860a8309..2321ea25 100644 --- a/classes/Utils.php +++ b/classes/Utils.php @@ -540,9 +540,9 @@ class Utils{ 'cache_dir' => $conf['home'].'cache/', )); $models = $data; + Convert::getPaths($models, ""); $first = $lodspk['firstResults']; unset($lodspk['firstResults']); - $lodspk = $lodspk; //unset($lodspk); $vars = compact('uri','lodspk', 'models', 'first'); if($conf['debug']){ diff --git a/classes/modules/serviceModule.php b/classes/modules/serviceModule.php index 738fc7cf..adbf2f19 100644 --- a/classes/modules/serviceModule.php +++ b/classes/modules/serviceModule.php @@ -33,6 +33,7 @@ class ServiceModule extends abstractModule{ $lodspk['model'] = $conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$qArr[0].'/'; $lodspk['view'] = $conf['view']['directory'].'/'.$conf['service']['prefix'].'/'.$qArr[0].'/'.$extension.'.template'; $lodspk['serviceName'] = $qArr[0]; + $lodspk['componentName'] = $qArr[0]; $modelFile = $lodspk['model'].$extension.'.queries'; if(file_exists($lodspk['model'].$extension.'.queries')){ if(!file_exists($lodspk['view'])){ diff --git a/classes/modules/typeModule.php b/classes/modules/typeModule.php index 71cb91a9..bc673f4f 100644 --- a/classes/modules/typeModule.php +++ b/classes/modules/typeModule.php @@ -138,6 +138,7 @@ class TypeModule extends abstractModule{ $auxViewFile = $conf['view']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/'.$extension.'.template'; $auxModelFile = $conf['model']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/'.$extension.'.queries'; if($v == null){continue;} + $lodspk['componentName'] = $v; if(file_exists($auxModelFile)){ $objResult['modelFile'] = $auxModelFile;//$conf['type']['prefix'].'/'.$v.'/'.$extensionModel.'queries'; if(file_exists($auxViewFile)){ -- GitLab