views_handler_field_dbxref_accession_link.inc 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * @file
  4. * Used for a custom field so that field can render the database reference link
  5. *
  6. * @ingroup views_field_handlers
  7. * @ingroup tripal_core
  8. */
  9. class views_handler_field_dbxref_accession_link extends views_handler_field {
  10. function construct() {
  11. parent::construct();
  12. $this->additional_fields['accession'] = 'accession';
  13. $this->additional_fields['db_id'] = 'db_id';
  14. }
  15. function query() {
  16. $this->ensure_my_table();
  17. $this->add_additional_fields();
  18. }
  19. function render($values) {
  20. $accession = $values->{$this->aliases['accession']};
  21. $db_id = $values->{$this->aliases['db_id']};
  22. if (!empty($db_id) AND !empty($accession)) {
  23. $previous_db = tripal_db_set_active('chado');
  24. // @coder-ignore: non-drupal schema therefore table prefixing does not apply
  25. $result = db_fetch_object(db_query('SELECT urlprefix FROM db WHERE db_id=%d', $db_id));
  26. tripal_db_set_active($previous_db);
  27. $urlprefix = $result->urlprefix;
  28. if (!empty($urlprefix)) {
  29. $accession_link = $urlprefix . $accession;
  30. return $accession_link;
  31. }
  32. else {
  33. return $accession;
  34. }
  35. }
  36. else {
  37. return $accession;
  38. }
  39. }
  40. }