Просмотр исходного кода

Merge branch '7.x-3.x' of github.com:tripal/tripal into 7.x-3.x

Stephen Ficklin 8 лет назад
Родитель
Сommit
090592e8f5

+ 8 - 6
tripal_chado/includes/fields/chado_linker__contact.inc

@@ -35,11 +35,11 @@ class chado_linker__contact extends TripalField {
   public function attach_info($entity_type, $bundle, $settings) {
     $field_info = array();
 
-    $table_name = $target['data_table'];
-    $type_table = $target['type_table'];
-    $type_field = $target['field'];
-    $cv_id      = $target['cv_id'];
-    $cvterm_id  = $target['cvterm_id'];
+    $table_name = $settings['data_table'];
+    $type_table = $settings['type_table'];
+    $type_field = $settings['field'];
+    $cv_id      = $settings['cv_id'];
+    $cvterm_id  = $settings['cvterm_id'];
 
     // If the linker table does not exists then we don't want to add attach.
     $contact_table = $table_name . '_contact';
@@ -96,7 +96,7 @@ class chado_linker__contact extends TripalField {
 
   }
 
-  public function load($field, $entity, $details) {
+  public function load($field, $entity, $record) {
     $field_name = $field['field_name'];
     $field_type = $field['type'];
     $field_table = $field['settings']['chado_table'];
@@ -104,10 +104,12 @@ class chado_linker__contact extends TripalField {
 
     // Get the FK that links to the base record.
     $schema = chado_get_schema($field_table);
+    $base_table = $record['record']->tablename;
     $pkey = $schema['primary key'][0];
     $fkey_lcolumn = key($schema['foreign keys'][$base_table]['columns']);
     $fkey_rcolumn = $schema['foreign keys'][$base_table]['columns'][$fkey_lcolumn];
 
+
     // Set some defaults for the empty record.
     $entity->{$field_name}['und'][0] = array(
       'value' => '',

+ 152 - 0
tripal_chado/includes/fields/chado_linker__expression.inc

@@ -0,0 +1,152 @@
+<?php
+
+class chado_linker__expression extends TripalField {
+
+  public function field_info() {
+    return array(
+      'label' => t('Expression'),
+      'description' => t('Associates an expression with
+          this record.'),
+      'default_widget' => 'chado_linker__expression_widget',
+      'default_formatter' => 'chado_linker__expression_formatter',
+      'settings' => array(),
+      'storage' => array(
+        'type' => 'field_chado_storage',
+        'module' => 'tripal_chado',
+        'active' => TRUE
+      ),
+    );
+  }
+ function widget_info() {
+    return array(
+      'label' => t('Expressions'),
+      'field types' => array('chado_linker__expression'),
+    );
+  }
+
+  public function formatter_info() {
+    return array(
+      'label' => t('Expression'),
+      'field types' => array('chado_linker__expression'),
+      'settings' => array(
+      ),
+    );
+  }
+  public function attach_info($entity_type, $bundle, $settings) {
+    $field_info = array();
+
+    $table_name = $settings['data_table'];
+    $type_table = $settings['type_table'];
+    $type_field = $settings['field'];
+    $cv_id      = $settings['cv_id'];
+    $cvterm_id  = $settings['cvterm_id'];
+
+    // If the linker table does not exists then we don't want to add attach.
+    $expression_table = $table_name . '_expression';
+    if (!chado_table_exists($expression_table)) {
+      return $field_info;
+    }
+
+    $schema = chado_get_schema($expression_table);
+    $pkey = $schema['primary key'][0];
+
+    // Initialize the field array.
+    $field_info = array(
+      'field_name' => $table_name . '__expression',
+      'field_type' => 'chado_linker__expression',
+      'widget_type' => 'chado_linker__expression_widget',
+      'widget_settings' => array('display_label' => 1),
+      'description' => '',
+      'label' => 'Expression',
+      'is_required' => 0,
+      'cardinality' => FIELD_CARDINALITY_UNLIMITED,
+      'storage' => 'field_chado_storage',
+      'field_settings' => array(
+        'chado_table' => $expression_table,
+        'chado_column' => $pkey,
+        'base_table' => $table_name,
+        'semantic_web' => array(
+          'name' => '',
+          'accession' => '',
+          'ns' => '',
+          'nsurl' => '',
+        ),
+      ),
+    );
+    return $field_info;
+  }
+
+  public function formatter_settings_summary($field, $instance, $view_mode) {
+
+  }
+
+  public function formatter_settings_form($field, $instance,
+      $view_mode, $form, &$form_state) {
+
+  }
+
+
+  public function formatter_view(&$element, $entity_type, $entity,
+      $field, $instance, $langcode, $items, $display) {
+  }
+
+
+  public function widget_form(&$widget, $form, $form_state, $field, $instance,
+      $langcode, $items, $delta, $element) {
+
+  }
+
+  public function load($field, $entity, $record) {
+    $field_name = $field['field_name'];
+    $field_type = $field['type'];
+    $field_table = $field['settings']['chado_table'];
+    $field_column = $field['settings']['chado_column'];
+
+    // Get the FK that links to the base record.
+    $schema = chado_get_schema($field_table);
+    $base_table = $record['record']->tablename;
+    $pkey = $schema['primary key'][0];
+    $fkey_lcolumn = key($schema['foreign keys'][$base_table]['columns']);
+    $fkey_rcolumn = $schema['foreign keys'][$base_table]['columns'][$fkey_lcolumn];
+
+    // Set some defaults for the empty record.
+    $entity->{$field_name}['und'][0] = array(
+      'value' => '',
+      $field_table . '__' . $fkey_lcolumn => '',
+      $field_table . '__' . 'expression_id' => '',
+      $field_table . '--' . 'expression__name' => '',
+    );
+
+    $linker_table = $base_table . '_expression';
+    $options = array(
+      'return_array' => 1,
+    );
+    $record = chado_expand_var($record, 'table', $linker_table, $options);
+
+    if (count($record->$linker_table) > 0) {
+      $i = 0;
+      foreach ($record->$linker_table as $index => $linker) {
+        $expression = $linker->expression_id;
+        $entity->{$field_name}['und'][$i] = array(
+          'value' => $linker->$pkey,
+          $field_table . '__' . $fkey_lcolumn => $linker->$fkey_lcolumn->$fkey_lcolumn,
+          $field_table . '__' . 'expression_id' => $expression->expression_id,
+          $field_table . '--' . 'expression__name' => $expression->uniquename,
+        );
+        if (property_exists($entity->chado_record->$field_column, 'entity_id')) {
+          $fk_entity_id = $entity->chado_record->$field_column->entity_id;
+          $entity->{$field_name}['und'][$i]['entity_id'] = $fk_entity_id;
+          $entity->{$field_name}['und'][$i]['entity_type'] = 'TripalEntity';
+        }
+
+        $i++;
+      }
+    }dpm($record);
+  }
+
+  public function settings_form($field, $instance, $has_data) {
+
+  }
+
+
+}

+ 0 - 0
tripal_chado/includes/fields/chado_linker__featureloc.inc