| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 | <?php/** * @file * General functions for the db module *///require_once 'api/tripal_db.api.inc';require_once 'api/tripal_db.DEPRECATED.inc';require_once 'includes/tripal_db.admin.inc';/** * @defgroup tripal_db Database Reference Module * @ingroup tripal_modules * @{ * Provides functions for managing chado database references which link chado content, such * as features and stocks, to records/pages in external databases/websites. For example, * you might have a feature record in your site which is also in the NCBI website and by * adding a database refrence to your feature, an automatic link to the content at NCBI * is created. * @} *//** * Implements hook_menu(). * * @ingroup tripal_db */function tripal_db_menu() {  $items = array();  $items['admin/tripal/legacy/tripal_db'] = array(    'title' => 'Databases',    'description' => 'References to External Database sites such as NCBI',    'page callback' => 'tripal_db_admin_db_listing',    'access arguments' => array('administer db cross-references'),    'type' => MENU_NORMAL_ITEM,  );  $items['admin/tripal/legacy/tripal_db/help'] = array(    'title' => 'Help',    'description' => "A description of the Tripal Database module including a short description of it's usage.",    'page callback' => 'theme',    'page arguments' => array('tripal_db_admin'),    'access arguments' => array('administer db cross-references'),    'type' => MENU_LOCAL_TASK,    'weight' => 10  );  $items['admin/tripal/legacy/tripal_db/edit/%'] = array(    'title' => 'Edit a Database Reference',    'description' => 'Edit existing Database References.',    'page callback' => 'drupal_get_form',    'page arguments' => array('tripal_db_db_edit_form',5),    'access callback' => 'user_access',    'access arguments' => array('administer db cross-references'),    'type' => MENU_CALLBACK,  );  $items['admin/tripal/legacy/tripal_db/add'] = array(    'title' => 'Create a Database Reference',    'description' => 'Create a new reference to an External Database.',    'page callback' => 'drupal_get_form',    'page arguments' => array('tripal_db_db_add_form'),    'access callback' => 'user_access',    'access arguments' => array('administer db cross-references'),    'type' => MENU_CALLBACK,  );  $items['admin/tripal/legacy/tripal_db/views/dbs/enable'] = array(    'title' => 'Enable Database Administrative View',    'page callback' => 'tripal_enable_view',    'page arguments' => array('tripal_db_admin_dbs', 'admin/tripal/legacy/tripal_db'),    'access arguments' => array('administer db cross-references'),    'type' => MENU_CALLBACK,  );  $items['admin/tripal/legacy/tripal_db/views/dbxrefs/enable'] = array(    'title' => 'Enable Reference Administrative View',    'page callback' => 'tripal_enable_view',    'page arguments' => array('tripal_db_admin_dbxrefs', 'admin/tripal/legacy/tripal_db'),    'access arguments' => array('administer db cross-references'),    'type' => MENU_CALLBACK,  );  $items['admin/tripal/legacy/tripal_db/dbxref/auto_name/%/%'] = array(    'page callback' => 'tripal_db_dbxref_accession_autocomplete',    'page arguments' => array(6, 7),    'access arguments' => array('administer db cross-references'),    'type' => MENU_CALLBACK,  );  return $items;}/** * Implements hook_help(). ( * Purpose: Adds a help page to the module list */function tripal_db_help ($path, $arg) {  if ($path == 'admin/help#tripal_db') {    return theme('tripal_db_help', array());  }}/** * Implements hook_permission(). * * Set the permission types that the chado module uses.  Essentially we *  want permissionis that protect creation, editing and deleting of chado *  data objects * * @ingroup tripal_db */function tripal_db_permission() {  return array(    'administer db cross-references' => array(      'title' => t('Administer External Database Cross-references.'),      'description' => t('Allows the user to add, edit or delete external databases references stored in the Chado database.'),    ),  );}/** * Implements hook_views_api(). * * Essentially this hook tells drupal that there is views support for *  for this module which then includes tripal_db.views.inc where all the *  views integration code is * * @ingroup tripal_db */function tripal_db_views_api() {  return array('api' => 3.0);}/** *  Implements hook_theme(). * *  We need to let drupal know about our theme functions and their arguments. *  We create theme functions to allow users of the module to customize the *  look and feel of the output generated in this module * * @ingroup tripal_db */function tripal_db_theme($existing, $type, $theme, $path) { $items = array(    'tripal_db_help' => array(      'template' => 'tripal_db_help',      'variables' =>  array(NULL),      'path' => "$path/theme/templates"    )  );  return $items;}/** * This function is intended to be used in autocomplete forms * for searching for accession that begin with the provided string * * @param $db_id *   The DB ID in which to search for the term * @param $string *   The string to search for * * @return *   A json array of terms that begin with the provided string * * @ingroup tripal_db_api */function tripal_db_dbxref_accession_autocomplete($db_id, $string = '') {  if (!$db_id) {    return drupal_json_output(array());  }  $sql = "    SELECT dbxref_id, accession    FROM {dbxref}    WHERE db_id = :db_id and lower(accession) like lower(:accession)    ORDER by accession    LIMIT 25 OFFSET 0  ";  $results = chado_query($sql, array(':db_id' => $db_id, ':accession' => $string . '%'));  $items = array();  foreach ($results as $ref) {    $items[$ref->accession] = $ref->accession;  }  drupal_json_output($items);}
 |