You are here

function content_taxonomy_migrate_content_migrate_data_record_alter in Content Taxonomy 7

Implements hook_content_migrate_data_record_alter().

File

./content_taxonomy_migrate.module, line 112

Code

function content_taxonomy_migrate_content_migrate_data_record_alter(&$record, $field) {
  if ($field['type'] == 'taxonomy_term_reference') {

    // Copy field_FIELD_NAME_value (D6) to field_FIELD_NAME_tid (D7).
    if (isset($record[$field['field_name'] . '_value']) && !isset($record[$field['field_name'] . '_tid'])) {
      $record[$field['field_name'] . '_tid'] = $record[$field['field_name'] . '_value'];
    }

    // Fill the taxonomy_index.
    if (variable_get('taxonomy_maintain_index_table', TRUE) && $field['storage']['type'] == 'field_sql_storage' && $record['entity_type'] == 'node') {
      if (isset($record[$field['field_name'] . "_tid"]) && $record[$field['field_name'] . "_tid"]) {
        $entity = node_load($record['entity_id']);
        db_delete('taxonomy_index')
          ->condition('nid', $entity->nid)
          ->condition('tid', $record[$field['field_name'] . "_tid"])
          ->execute();
        $query = db_insert('taxonomy_index')
          ->fields(array(
          'nid',
          'tid',
          'sticky',
          'created',
        ));
        $query
          ->values(array(
          'nid' => $entity->nid,
          'tid' => $record[$field['field_name'] . "_tid"],
          'sticky' => $entity->sticky,
          'created' => $entity->created,
        ));
        $query
          ->execute();
      }
    }
  }
}