소스 검색

Added chado views field sort.

Lacey Sanderson 9 년 전
부모
커밋
7afc839c50
3개의 변경된 파일33개의 추가작업 그리고 0개의 파일을 삭제
  1. 22 0
      tripal_chado/includes/chado_views_handler_sort.inc
  2. 2 0
      tripal_chado/tripal_chado.info
  3. 9 0
      tripal_chado/tripal_chado.views.inc

+ 22 - 0
tripal_chado/includes/chado_views_handler_sort.inc

@@ -0,0 +1,22 @@
+<?php
+/**
+ * Views handlers providing sort support for chado fields.
+ */
+
+/**
+ * Adds support for generic sorting.
+ */
+class chado_views_handler_sort extends views_handler_sort {
+
+  /**
+   * {@inheritdoc}
+   */
+  function query() {
+
+    // Adds joins to chado_entity and the chado table this field is from.
+    $alias = _chado_views_add_table_joins($this);
+    
+    // Add the sort.
+    $this->query->add_orderby($alias, $this->definition['chado_field'], $this->options['order']);
+  }
+}

+ 2 - 0
tripal_chado/tripal_chado.info

@@ -7,6 +7,8 @@ version = 7.x-2.0
 
 files[] = includes/chado_views_handler_field.inc
 files[] = includes/chado_views_handler_filter.inc
+files[] = includes/chado_views_handler_sort.inc
+
 stylesheets[all][] = theme/css/tripal_chado.css
 
 dependencies[] = tripal

+ 9 - 0
tripal_chado/tripal_chado.views.inc

@@ -117,6 +117,15 @@ function tripal_chado_add_field_views_data(&$data) {
       $data['tripal_entity'][ $field['field_name'] ]['filter']['entity_type'] = 'TripalEntity';
       $data['tripal_entity'][ $field['field_name'] ]['filter']['bundles'] = $field['bundles']['TripalEntity'];
       $data['tripal_entity'][ $field['field_name'] ]['filter']['handler'] = 'chado_views_handler_filter_string';
+
+      // Define sorting.
+      $data['tripal_entity'][ $field['field_name'] ]['sort']['chado_field'] = $field['settings']['chado_column'];
+      $data['tripal_entity'][ $field['field_name'] ]['sort']['chado_table'] = $field['settings']['chado_table'];
+      $data['tripal_entity'][ $field['field_name'] ]['sort']['field_name'] = $field['field_name'];
+      $data['tripal_entity'][ $field['field_name'] ]['sort']['entity_table'] = 'tripal_entity';
+      $data['tripal_entity'][ $field['field_name'] ]['sort']['entity_type'] = 'TripalEntity';
+      $data['tripal_entity'][ $field['field_name'] ]['sort']['bundles'] = $field['bundles']['TripalEntity'];
+      $data['tripal_entity'][ $field['field_name'] ]['sort']['handler'] = 'chado_views_handler_sort';
       
       // Specify special handlers.
       if ($fk_defn) {