123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- <?php
- class ChadoField extends TripalField {
-
- public static $default_label = 'Chado Field';
-
- public static $default_description = 'The generic base class for all Chado fields. Replace this text as appropriate for the child implementation.';
-
-
-
-
-
- public static $default_settings = array(
- 'storage' => 'field_chado_storage',
- );
-
-
-
-
-
-
-
- public static $default_instance_settings = array(
-
- 'term_vocabulary' => 'schema',
-
- 'term_name' => 'Thing',
-
- 'term_accession' => 'Thing',
-
-
-
- 'term_fixed' => FALSE,
-
- 'chado_table' => '',
-
- 'chado_column' => '',
-
- 'base_table' => '',
- );
-
-
- public static $download_formatters = array(
- 'TripalTabDownloader',
- 'TripalCSVDownloader',
- );
-
- public static $module = 'tripal_chado';
-
- public function query($query, $condition) {
-
-
- $chado_table = $this->instance['settings']['chado_table'];
- $base_table = $this->instance['settings']['base_table'];
- $bschema = chado_get_schema($base_table);
- $bpkey = $bschema['primary key'][0];
- $alias = 'dbx_linker';
- $operator = $condition['operator'];
-
- if ($chado_table == $base_table) {
-
-
- $base_field = chado_get_semweb_column($chado_table, $condition['column']);
- $query->condition('base.' . $base_field , $condition['value'], $operator);
- }
- else {
-
-
- }
- }
-
- public function queryOrder($query, $order) {
-
-
- $chado_table = $this->instance['settings']['chado_table'];
- $base_table = $this->instance['settings']['base_table'];
- $bschema = chado_get_schema($base_table);
- $bpkey = $bschema['primary key'][0];
- $alias = 'dbx_linker';
- $operator = $condition['operator'];
-
- if ($chado_table == $base_table) {
-
-
- $base_field = chado_get_semweb_column($chado_table, $order['column']);
- $query->orderBy('base.' . $base_field, $order['direction']);
- }
- else {
-
-
- }
- }
-
- protected function queryJoinOnce($query, $table, $alias, $condition, $type = 'INNER') {
- $joins = $query->getTables();
-
- if (in_array($alias, array_keys($joins))) {
- return;
- }
- switch($type) {
- case 'LEFT OUTER':
- $query->leftjoin($table, $alias, $condition);
- break;
- case 'RIGHT OUTER':
- $query->rightjoin($table, $alias, $condition);
- break;
- default:
- $query->innerjoin($table, $alias, $condition);
- }
- }
-
- public function instanceSettingsForm() {
-
-
-
- $element['base_table'] = array(
- '#type' => 'value',
- '#value' => $this->instance['settings']['base_table'],
- );
- $element['chado_table'] = array(
- '#type' => 'value',
- '#value' => $this->instance['settings']['chado_table'],
- );
- $element['chado_column'] = array(
- '#type' => 'value',
- '#value' => $this->instance['settings']['chado_column'],
- );
- return $element;
- }
- }
|