1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- /**
- * A class the controller will use for instantiating the TripalTerm entity.
- */
- class TripalTerm extends Entity {
- public function __construct($values = array()) {
- parent::__construct($values, 'TripalTerm');
- // Get the vocabulary for this term
- $vocab = entity_load('TripalVocab', array('id' => $this->vocab_id));
- $vocab = reset($vocab);
- $this->vocab = $vocab;
- // Get the term description from the storage backend
- $this->definition = NULL;
- $this->url = NULL;
- // TODO: we need some sort of administrative interface that lets the user
- // switch to the desired vocabulary type. For now, we'll just use the
- // first one in the list.
- $stores = module_invoke_all('vocab_storage_info');
- if (is_array($stores) and count($stores) > 0) {
- $keys = array_keys($stores);
- $module = $stores[$keys[0]]['module'];
- $function = $module . '_vocab_get_term';
- if (function_exists($function)) {
- $term_details = $function($vocab->vocabulary, $this->accession);
- if ($term_details) {
- // $this->details = $term_details;
- if ($term_details and $term_details['definition']) {
- $this->definition = $term_details['definition'];
- $this->url = $term_details['url'];
- }
- }
- }
- }
- }
- protected function defaultLabel() {
- return $this->name;
- }
- protected function defaultUri() {
- $vocab = 'TODO';
- return array('path' => '/vocabulary/' . $vocab . '/term/' . $this->id);
- }
- // Getters //
- public function getName() {
- return $this->name;
- }
- public function getAccession() {
- return $this->name;
- }
- public function getDefinition() {
- return $this->definition;
- }
- public function getURL() {
- return $this->url;
- }
- public function getVocab() {
- return $this->vocab;
- }
- public function getID() {
- return $this->id;
- }
- }
|