views_handler_field_dbxref_accession_link.inc 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. $result = db_fetch_object(db_query('SELECT urlprefix FROM db WHERE db_id=%d', $db_id));
  25. tripal_db_set_active($previous_db);
  26. $urlprefix = $result->urlprefix;
  27. if (!empty($urlprefix)) {
  28. $accession_link = $urlprefix . $accession;
  29. return $accession_link;
  30. }
  31. else {
  32. return $accession;
  33. }
  34. }
  35. else {
  36. return $accession;
  37. }
  38. }
  39. }