From b8bd52a7fd57b959d607447f51a936215aadae76 Mon Sep 17 00:00:00 2001 From: preecej Date: Wed, 7 Sep 2011 22:30:23 +0000 Subject: [PATCH] Updated test.TermSearch_JSON.php to use Test env vars svn path=/; revision=178 --- .../services/test.TermSearch_JSON.php | 54 +++++++++++++++---- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/preecej/semantic_wiki/services/test.TermSearch_JSON.php b/preecej/semantic_wiki/services/test.TermSearch_JSON.php index 2bb7d9b..f60dcc5 100644 --- a/preecej/semantic_wiki/services/test.TermSearch_JSON.php +++ b/preecej/semantic_wiki/services/test.TermSearch_JSON.php @@ -5,7 +5,8 @@ if(isset($_GET['user']) && ($_GET['user']) == 'paw') { $arr_field_names = array('name','acc'); - + $arr_ontologies = array('go','po'); + /* read the params and/or set our own */ $type = isset($_GET['type']) ? $_GET['type'] : autocomplete; // autocomplete is the default @@ -17,6 +18,10 @@ if(isset($_GET['user']) && ($_GET['user']) == 'paw') { $number_of_terms = isset($_GET['max']) ? intval($_GET['max']) : 10; //10 is the default if ($number_of_terms > 50) { $number_of_terms = 50; } + $ont = isset($_GET['ontology']) && in_array(strtolower($_GET['ontology']),$arr_ontologies) + ? strtolower($_GET['ontology']) + : die('"ontology" is a required parameter and must match an available data field.'); + $qval = $_GET['qval']; $qval = isset($_GET['qval']) && strlen($_GET['qval']) > 0 @@ -27,17 +32,33 @@ if(isset($_GET['user']) && ($_GET['user']) == 'paw') { ? strtolower($_GET['format']) : 'json'; //json is the default - /* connect to the db */ - $link = mysql_connect($_SERVER['test_po_host'], $_SERVER['test_po_user'], $_SERVER['test_po_pw']) or die('Cannot connect to the DB'); - mysql_select_db($_SERVER['test_po_db'],$link) or die('Cannot select the DB'); + /* connect to the appropriate db */ + switch ($ont) { + case 'po': + $link = mysql_connect($_SERVER['test_po_host'], $_SERVER['test_po_user'], $_SERVER['test_po_pw']) or die('Cannot connect to the DB'); + mysql_select_db($_SERVER['test_po_db'],$link) or die('Cannot select the DB'); + + $term_types = "'plant_anatomy','plant_growth_and_development_stage'"; + break; + + case 'go': + $link = mysql_connect($_SERVER['test_go_host'], $_SERVER['test_go_user'], $_SERVER['test_go_pw']) or die('Cannot connect to the DB'); + mysql_select_db($_SERVER['test_go_db'],$link) or die('Cannot select the DB'); + $term_types = "'biological_process','cellular_component','molecular_function'"; + break; + + default: + die('Sorry, this ontology type is not available.'); + } + switch ($type) { case 'autocomplete': /* grab the terms from the db */ $query = "SELECT t.$field FROM term t" . " LEFT JOIN term_definition d ON d.term_id = t.id" . " WHERE t.$field LIKE '%$qval%'" - . " AND t.term_type in ('plant_anatomy','plant_growth_and_development_stage')" + . " AND t.term_type in ($term_types)" . " AND t.is_obsolete = 0" . " AND UCASE(t.name) NOT LIKE 'OBSOLETE%'" . " AND UCASE(d.term_definition) NOT LIKE 'OBSOLETE%'" @@ -64,11 +85,11 @@ if(isset($_GET['user']) && ($_GET['user']) == 'paw') { case 'term_detail': /* grab the ontology data from the db */ - $query = "SELECT DISTINCT t.acc as 'acc', t.term_type as 'type', d.term_definition as 'definition', d.term_comment as 'comment'" + $query = "SELECT DISTINCT t.name as 'name', t.acc as 'acc', t.term_type as 'type', d.term_definition as 'definition', d.term_comment as 'comment'" . " FROM term t" . " LEFT JOIN term_definition d ON d.term_id = t.id" - . " WHERE t.name = '$qval'" - . " AND t.term_type in ('plant_anatomy','plant_growth_and_development_stage')" + . " WHERE t.$field = '$qval'" + . " AND t.term_type in ($term_types)" . " AND t.is_obsolete = 0" . " AND UCASE(t.name) NOT LIKE 'OBSOLETE%'" . " AND UCASE(d.term_definition) NOT LIKE 'OBSOLETE%'" @@ -79,9 +100,22 @@ if(isset($_GET['user']) && ($_GET['user']) == 'paw') { $terms = array(); if(mysql_num_rows($result)) { while($term = mysql_fetch_assoc($result)) { + switch($term['type']) { + case 'plant_anatomy': + $term_type_formal = "Plant Anatomy"; break; + case 'plant_growth_and_development_stage': + $term_type_formal = "Plant Growth and Development Stage"; break; + case 'biological_process': + $term_type_formal = "Biological Process"; break; + case 'cellular_component': + $term_type_formal = "Cellular Component"; break; + case 'molecular_function': + $term_type_formal = "Molecular Function"; break; + } $terms[] = array( + 'name'=>$term['name'], 'id'=>$term['acc'], - 'aspect'=>$term['type'] == "plant_anatomy" ? "Plant Anatomy" : "Plant Growth and Development Stage", + 'aspect'=>$term_type_formal, 'definition'=>$term['definition'], 'comment'=>$term['comment']); } @@ -89,7 +123,7 @@ if(isset($_GET['user']) && ($_GET['user']) == 'paw') { /* output in necessary format */ if($format == 'json') { header('Content-type: application/json'); - echo json_encode(array('PO_result'=>$terms)); + echo json_encode(array('term_detail_result'=>$terms)); } else { die('Sorry, this request cannot be fulfilled in '.$format.' format.'); -- 2.34.1