123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- class chado_views_handler_relationship_to_node extends views_handler_relationship {
- function query() {
- $this->ensure_my_table();
-
- $base_table = $this->definition['base table'];
- $base_field = $this->definition['base field'];
-
- $chado_table = 'chado_' . $base_table;
-
- unset($this->query->table_queue['node'],
- $this->query->tables['stock']['node'],
- $this->query->table_queue[$chado_table],
- $this->query->tables['stock'][$chado_table]);
-
- $def = array();
- $def['table'] = $chado_table;
- $def['field'] = $base_field;
- $def['left_table'] = $base_table;
- $def['left_field'] = $base_field;
-
- $join = new views_join();
- $join->definition = $def;
- $join->construct();
- $join->adjusted = TRUE;
- $alias = $base_table . '_' . $chado_table;
- $this->linker_alias = $this->query->add_relationship($alias, $join, $this->table);
-
- $def = array();
- $def['table'] = 'node';
- $def['field'] = 'nid';
- $def['left_table'] = $this->linker_alias;
- $def['left_field'] = 'nid';
-
- $join = new views_join();
- $join->definition = $def;
- $join->construct();
- $join->adjusted = TRUE;
- if ($base_table == $this->view->base_table) {
- $alias = 'node';
- }
- else {
- $alias = $chado_table . '_node';
- }
- $this->alias = $this->query->add_relationship($alias, $join, 'node');
- }
- }
|