tripal_organism.api.inc 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. /**
  3. * @file
  4. * Provides an API to tripal organisms
  5. */
  6. /**
  7. * Purpose: Create an options array to be used in a form element
  8. * which provides a list of all chado organisms
  9. *
  10. * @return an array(organism_id => common_name)
  11. * for each organism in the chado organism table
  12. *
  13. * @ingroup tripal_organism_api
  14. */
  15. function tripal_organism_get_organism_options() {
  16. $result = chado_query(
  17. "SELECT organism_id, common_name FROM {organism}"
  18. );
  19. $options = array();
  20. while ( $r = db_fetch_object($result) ) {
  21. $options[$r->organism_id] = $r->common_name;
  22. }
  23. return $options;
  24. }
  25. /**
  26. * Purpose: Return a given organism object using the nid
  27. *
  28. * @return organism object created by node load
  29. *
  30. * @ingroup tripal_organism_api
  31. */
  32. function tripal_organism_get_organism_by_nid($nid) {
  33. return node_load($nid);
  34. }
  35. /**
  36. * Purpose: Return a given organism object using the organism id
  37. *
  38. * @return organism object created by node load
  39. *
  40. * @ingroup tripal_organism_api
  41. */
  42. function tripal_organism_get_organism_by_organism_id($organism_id) {
  43. $sql = "SELECT nid FROM {chado_organism} WHERE organism_id=%d";
  44. $r = db_fetch_object(db_query($sql, $organism_id));
  45. if (!empty($r->nid)) {
  46. return node_load($r->nid);
  47. }
  48. else {
  49. drupal_set_message(t("Function: tripal_organism_get_organism_by_organism_id() -no organism with that organism id sync'd with drupal"), 'error');
  50. }
  51. return 0;
  52. }
  53. /**
  54. * @section Chado Table Descriptions
  55. * There should be a default table description for all chado tables included
  56. * in core.
  57. */
  58. /**
  59. * Returns a list of organisms that are currently synced with Drupal
  60. * @ingroup tripal_organism_api
  61. */
  62. function tripal_organism_get_synced() {
  63. // use this SQL for getting synced organisms
  64. $dsql = "SELECT * FROM {chado_organism}";
  65. $orgs = db_query($dsql);
  66. // use this SQL statement for getting the organisms
  67. $csql = "SELECT * FROM {Organism} ".
  68. "WHERE organism_id = %d";
  69. $org_list = array();
  70. // iterate through the organisms and build an array of those that are synced
  71. while ($org = db_fetch_object($orgs)) {
  72. $info = db_fetch_object(chado_query($csql, $org->organism_id));
  73. $org_list[] = $info;
  74. }
  75. return $org_list;
  76. }