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
$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
? 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%'"
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%'"
$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']);
}
/* 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.');