views_handler_field_dbxref_accession_link.inc 1019 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. /**
  3. *
  4. * @ingroup views_field_handlers
  5. * @ingroup tripal_core
  6. */
  7. class views_handler_field_dbxref_accession_link extends views_handler_field {
  8. function construct() {
  9. parent::construct();
  10. $this->additional_fields['accession'] = 'accession';
  11. $this->additional_fields['db_id'] = 'db_id';
  12. }
  13. function query() {
  14. $this->ensure_my_table();
  15. $this->add_additional_fields();
  16. }
  17. function render($values) {
  18. $accession = $values->{$this->aliases['accession']};
  19. $db_id = $values->{$this->aliases['db_id']};
  20. if (!empty($db_id) AND !empty($accession)) {
  21. $previous_db = tripal_db_set_active('chado');
  22. $result = db_fetch_object(db_query('SELECT urlprefix FROM db WHERE db_id=%d', $db_id));
  23. tripal_db_set_active($previous_db);
  24. $urlprefix = $result->urlprefix;
  25. if (!empty($urlprefix)) {
  26. $accession_link = $urlprefix . $accession;
  27. return($accession_link);
  28. } else {
  29. return $accession;
  30. }
  31. } else {
  32. return $accession;
  33. }
  34. }
  35. }