From 9ee5825b0330ce64fc777e5956a946d038cffa14 Mon Sep 17 00:00:00 2001
From: Alvaro Graves <alvaro@graves.cl>
Date: Wed, 27 Jul 2011 14:05:44 -0700
Subject: [PATCH] trying different output depending if it is a select or
 describe

---
 classes/Endpoint.php | 8 ++++++++
 common.inc.php       | 9 ++++++---
 index.php            | 5 +++--
 3 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/classes/Endpoint.php b/classes/Endpoint.php
index 94578554..22eec3fc 100644
--- a/classes/Endpoint.php
+++ b/classes/Endpoint.php
@@ -9,6 +9,14 @@ class Endpoint{
   	$this->params = $params;
   }
   
+  public function query($q, $output){
+    $aux = $this->params['output'];
+    $this->params['output'] = $output;
+    $r = $this->query($q);
+    $this->params['output'] = $aux;
+    return $r;
+  }
+  
   public function query($q){
   	global $conf;
   	$context = stream_context_create(array(
diff --git a/common.inc.php b/common.inc.php
index 84a21ecc..bbe616af 100644
--- a/common.inc.php
+++ b/common.inc.php
@@ -1,15 +1,18 @@
 <?
 include_once('settings.inc.php');
 
-$conf['endpoint']['config']['output'] = 'json';
+$conf['endpoint']['config']['select']['output'] = 'json';
+$conf['endpoint']['config']['describe']['output'] = 'xml';
+$conf['endpoint']['config']['output'] = $conf['endpoint']['config']['select']['output'];
 $conf['endpoint']['config']['named_graph'] = '';
 $conf['endpoint']['config']['show_inline'] = 0;
 
-$conf['metaendpoint']['config']['output'] = 'json';
+$conf['metaendpoint']['config']['select']['output'] = 'json';
+$conf['metaendpoint']['config']['describe']['output'] = 'xml';
+$conf['metaendpoint']['config']['output'] = $conf['metaendpoint']['config']['select']['output'];
 $conf['metaendpoint']['config']['show_inline'] = 0;
 $conf['metaendpoint']['config']['named_graph'] = 'http://slodps.org/metadata';
 
-
 $conf['ns']['rdf']     = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
 $conf['ns']['rdfs']    = 'http://www.w3.org/2000/01/rdf-schema#';
 $conf['ns']['dcterms'] = 'http://purl.org/dc/terms/';
diff --git a/index.php b/index.php
index 176ce3dd..ceefc83d 100755
--- a/index.php
+++ b/index.php
@@ -60,10 +60,10 @@ if($res != NULL && $page == NULL){ // Original URI is a page
   }
   $query = file_get_contents($modelFile);
   $query = preg_replace("|".$conf['resource']['url_delimiter']."|", "<".$uri.">", $query);
-  $results = $endpoint->query($query);
   
   header('Content-Type: '.$acceptContentType);
   if(preg_match("/describe/i", $query)){
+  	$results = $endpoint->query($query);
   	require('lib/arc2/ARC2.php');
   	$parser = ARC2::getRDFParser();
   	$parser->parse($conf['basedir'], $results);
@@ -84,7 +84,8 @@ if($res != NULL && $page == NULL){ // Original URI is a page
   	echo $doc;
   	exit(0);
   }
-  if(preg_match("/select/i", $query)){
+  elseif(preg_match("/select/i", $query)){
+  	$results = $endpoint->query($query);
   	if(sizeof($results['results']['bindings']) == 0){
   	  Utils::send404($uri);
   	}
-- 
GitLab