You are here

function entityreference_migration_migrate_references_fields_submit in Reference to EntityReference Field Migration 7.2

Same name and namespace in other branches
  1. 7 entityreference_migration.module \entityreference_migration_migrate_references_fields_submit()

File

./entityreference_migration.module, line 77

Code

function entityreference_migration_migrate_references_fields_submit($form, &$form_state) {
  $values = $form_state['values'];
  $field_infos = $values['field_information'];

  // Define the batch.
  $batch = array(
    'operations' => array(),
    'finished' => '_entityreference_migration_batches_finished',
    'title' => t('Start migrating reference fields.'),
    'init_message' => t('Preparing to migrate reference fields.'),
    'progress_message' => t('Migrating references fields.'),
    'error_message' => t('Reference field could not migrate content successfully.'),
  );
  foreach ($values['field_options'] as $key => $field_option) {
    if (!empty($field_option)) {
      $field_name = $field_infos[$key]['field_name'];

      // Create table for migration.
      $table_name = _field_sql_storage_tablename($field_infos[$key]);
      $temp_table_name = substr('er_m_' . $table_name, 0, 63);
      $field_instances = field_read_instances(array(
        'field_name' => $field_name,
      ), array(
        'include_inactive' => TRUE,
        'include_deleted' => TRUE,
      ));
      $batch['operations'][] = array(
        '_entity_reference_migration_copy_temporary_table',
        array(
          $key,
          $field_infos[$key],
          $field_name,
          $field_instances,
          $table_name,
          $temp_table_name,
        ),
      );
      $batch['operations'][] = array(
        '_entityreference_migration_purge_references_field',
        array(
          $key,
          $field_infos[$key],
          $field_name,
          $field_instances,
          $table_name,
          $temp_table_name,
        ),
      );
      $batch['operations'][] = array(
        '_entityreference_migration_migrate_temporary_references_field',
        array(
          $key,
          $field_infos[$key],
          $field_name,
          $field_instances,
          $table_name,
          $temp_table_name,
        ),
      );
    }
  }
  batch_set($batch);
}