You are here

function migrate_views_default_views_get_view in Migrate 7.2

Helper for migrate_views_default_views() to get a single view.

Parameters

$migration: A migration object.

Return value

A view object.

1 call to migrate_views_default_views_get_view()
migrate_views_default_views in migrate/migrate.views_default.inc
Implements hook_views_default_views().

File

migrate/migrate.views_default.inc, line 46
migrate.views_default.inc Contains default views.

Code

function migrate_views_default_views_get_view($migration) {
  $migration_name = $migration
    ->getMachineName();
  $destination = $migration
    ->getDestination();
  $entity_type = $destination
    ->getEntityType();
  $entity_info = entity_get_info($entity_type);
  $entity_base_table = $entity_info['base table'];
  $map_table = $migration
    ->getMap()
    ->getMapTable();

  // The ID for the relationship from the entity base table.
  $map_table_relationship_id = 'migrate_map_' . $map_table;

  // Use the same logic as the Views wizard to figure out a field to add to the
  // view.
  $data = views_fetch_data($entity_base_table);
  if (isset($data['table']['base']['defaults']['field'])) {
    $field = $data['table']['base']['defaults']['field'];
  }
  else {
    foreach ($data as $field => $field_data) {
      if (isset($field_data['field']['handler'])) {
        break;
      }
    }
  }
  $view = new view();
  $view->name = 'migrate_' . $migration_name;
  $view->description = 'Audit view for the migration ' . $migration_name;
  $view->tag = 'migrate';
  $view->base_table = $entity_base_table;
  $view->human_name = $migration_name;
  $view->core = 0;
  $view->api_version = '3.0';
  $view->disabled = FALSE;

  /* Edit this to true to make a default view disabled initially */

  /* Display: Master */
  $handler = $view
    ->new_display('default', 'Master', 'default');
  $handler->display->display_options['title'] = 'Audit for migration ' . $migration_name;
  $handler->display->display_options['access']['type'] = 'perm';
  $handler->display->display_options['access']['perm'] = 'migration information';
  $handler->display->display_options['cache']['type'] = 'none';
  $handler->display->display_options['query']['type'] = 'views_query';
  $handler->display->display_options['query']['options']['query_comment'] = FALSE;
  $handler->display->display_options['exposed_form']['type'] = 'basic';
  $handler->display->display_options['pager']['type'] = 'full';
  $handler->display->display_options['pager']['options']['items_per_page'] = '100';
  $handler->display->display_options['style_plugin'] = 'table';

  /* Relationship: Content: Migration map */
  $handler->display->display_options['relationships'][$map_table_relationship_id]['id'] = $map_table_relationship_id;
  $handler->display->display_options['relationships'][$map_table_relationship_id]['table'] = $entity_base_table;
  $handler->display->display_options['relationships'][$map_table_relationship_id]['field'] = $map_table_relationship_id;
  $handler->display->display_options['relationships'][$map_table_relationship_id]['required'] = TRUE;

  /* Field: Entity ID for the entity type */
  if (isset($entity_info['entity keys']['id'])) {
    $entity_id_key = $entity_info['entity keys']['id'];
    if (isset($data[$entity_id_key]['field']['handler'])) {
      $handler->display->display_options['fields'][$entity_id_key]['id'] = $entity_id_key;
      $handler->display->display_options['fields'][$entity_id_key]['table'] = $entity_base_table;
      $handler->display->display_options['fields'][$entity_id_key]['field'] = $entity_id_key;
    }
  }

  /* Field: Default field for the entity type */
  $handler->display->display_options['fields'][$field]['id'] = $field;
  $handler->display->display_options['fields'][$field]['table'] = $entity_base_table;
  $handler->display->display_options['fields'][$field]['field'] = $field;

  /* Display: Page */
  $handler = $view
    ->new_display('page', 'Page', 'page');
  $handler->display->display_options['path'] = 'admin/content/migrate/audit/' . $migration_name;
  return $view;
}