You are here

function entityreference_migration_migrate_references_fields in Reference to EntityReference Field Migration 7

Same name and namespace in other branches
  1. 7.2 entityreference_migration.module \entityreference_migration_migrate_references_fields()
1 string reference to 'entityreference_migration_migrate_references_fields'
entityreference_migration_menu in ./entityreference_migration.module
Implementation of hook_menu().

File

./entityreference_migration.module, line 21

Code

function entityreference_migration_migrate_references_fields($form, &$form_state) {

  // Load all references fields.
  $node_field_infos = field_read_fields(array(
    'type' => 'node_reference',
  ), array(
    'include_inactive' => TRUE,
    'include_deleted' => TRUE,
  ));
  $user_field_infos = field_read_fields(array(
    'type' => 'user_reference',
  ), array(
    'include_inactive' => TRUE,
    'include_deleted' => TRUE,
  ));
  $field_infos = $node_field_infos + $user_field_infos;
  if (count($field_infos) > 0) {
    $field_options = array();
    foreach ($field_infos as $key => $field_info) {
      $translate_array = array(
        '@field_name' => $field_info['field_name'],
      );
      $instances = field_read_instances(array(
        'field_name' => $field_info['field_name'],
      ), array(
        'include_inactive' => TRUE,
        'include_deleted' => TRUE,
      ));
      $options_instances = array();
      foreach ($instances as $instance) {
        $options_instances[] = $instance['entity_type'] . ':' . $instance['bundle'] . ' (' . check_plain($instance['label']) . ')';
      }
      $translate_array['@instances'] = implode(', ', $options_instances);
      $field_options[$key] = t('@field_name: Appears in [@instances]', $translate_array);
    }
    $form['field_information'] = array(
      '#type' => 'value',
      '#value' => $field_infos,
    );
    $form['field_options'] = array(
      '#type' => 'checkboxes',
      '#title' => t('Which references fields do you wish to migrate?'),
      '#options' => $field_options,
      '#required' => TRUE,
    );
    return confirm_form($form, t('Are you sure you wish to migrate the selected references fields?'), '<front>');
  }
  $form['message'] = array(
    '#markup' => t('There are no references fields that need to be migrated at this time.'),
  );
  return $form;
}