function tripal_bulk_loader_load

2.x tripal_bulk_loader.chado_node.inc tripal_bulk_loader_load($nodes)
3.x tripal_bulk_loader.chado_node.inc tripal_bulk_loader_load($nodes)
1.x tripal_bulk_loader.module tripal_bulk_loader_load($node)

Implements hook_load().

D7 Changes: now loads all $nodes at once so need to add loops

Related topics

File

tripal_bulk_loader/includes/tripal_bulk_loader.chado_node.inc, line 121
Tripal Bulk Loader Node functionality (jobs).

Code

function tripal_bulk_loader_load($nodes) {

  // Loading Job Details
  // Add fields from the tripal_bulk_loader
  $result = db_select('tripal_bulk_loader', 'tbl')
    ->fields('tbl')
    ->condition('nid', array_keys($nodes), 'IN')
    ->execute();
  foreach ($result as $record) {
    $nodes[$record->nid]->loader_name = $record->loader_name;
    $nodes[$record->nid]->template_id = $record->template_id;
    $nodes[$record->nid]->file = $record->file;
    $nodes[$record->nid]->job_id = $record->job_id;
    $nodes[$record->nid]->job_status = $record->job_status;
    $nodes[$record->nid]->file_has_header = $record->file_has_header;
    $nodes[$record->nid]->keep_track_inserted = $record->keep_track_inserted;

    $nodes[$record->nid]->exposed_fields = array();
    $nodes[$record->nid]->constants = array();
  }

  // Job Details
  // Add fields from tripal_jobs
  $result = db_query('SELECT tbl.nid, tj.* FROM {tripal_jobs} tj '
    . 'LEFT JOIN {tripal_bulk_loader} tbl ON tbl.job_id=tj.job_id '
    . 'WHERE tbl.nid IN (:nids)', 
  array(':nids' => array_keys($nodes))
  );
  foreach ($result as $record) {
    $nodes[$record->nid]->job = $record;
  }

  // Add the Loader Template
  // Add fields from tripal_bulk_loader_template
  $result = db_query('SELECT tbl.nid, tblt.* FROM {tripal_bulk_loader_template} tblt '
    . 'LEFT JOIN {tripal_bulk_loader} tbl ON tbl.template_id=tblt.template_id '
    . 'WHERE tbl.nid IN (:nids)', 
  array(':nids' => array_keys($nodes))
  );
  foreach ($result as $dbrecord) {
    $nodes[$dbrecord->nid]->template = $dbrecord;
    $nodes[$dbrecord->nid]->template->template_array = unserialize($dbrecord->template_array);

    // Add exposed field list
    $template = $nodes[$dbrecord->nid]->template->template_array;
    $nodes[$dbrecord->nid]->exposed_fields = array();
    if ($template) {
      foreach ($template as $record_id => $record) {
        foreach ($record['fields'] as $field_id => $field) {
          if (isset($field['exposed'])) {
            if ($field['exposed']) {
              $nodes[$dbrecord->nid]->exposed_fields[] = array(
                'record_id' => $record_id,
                'field_id' => $field_id,
                'title' => $field['title'],
              );
            }
          }
        }
      }
    }
  }

  // Add inserted records
  // Add fields from tripal_bulk_loader_inserted
  $result = db_query('SELECT tbli.* FROM {tripal_bulk_loader_inserted} tbli '
    . 'WHERE tbli.nid IN (:nids)', 
  array(':nids' => array_keys($nodes))
  );
  foreach ($result as $record) {
    $record->num_inserted = sizeof(preg_split('/,/', $record->ids_inserted));
    $nodes[$record->nid]->inserted_records->{$record->table_inserted_into} = $record;
  }

  // Add constants
  // Add fields from tripal_bulk_loader_constants
  $result = db_query('SELECT tblc.* FROM {tripal_bulk_loader_constants} tblc '
    . 'WHERE tblc.nid IN (:nids) '
    . 'ORDER BY group_id, record_id, field_id', 
  array(':nids' => array_keys($nodes))
  );
  foreach ($result as $record) {
    $nodes[$record->nid]->constants[$record->group_id][$record->record_id][$record->field_id] = array(
      'constant_id' => $record->constant_id,
      'group_id' => $record->group_id,
      'chado_table' => $record->chado_table,
      'chado_field' => $record->chado_field,
      'record_id' => $record->record_id,
      'field_id' => $record->field_id,
      'value' => $record->value
    );
  }

}