You are here

public function MigrateContentTaxonomyFieldHandler::prepare in Migrate Extras 6.2

File

./content_taxonomy.inc, line 41
Migrate plugin for the Content Taxonomy module as a destination.

Class

MigrateContentTaxonomyFieldHandler
Field handler.

Code

public function prepare($entity, array $instance, array $values) {
  $mode = $values['arguments']['mode'];
  $vid = $values['arguments']['vid'];

  //remove arguments or they will be searched too
  unset($values['arguments']);
  $values = array_values($values);
  $return = array();

  // Setup the standard Field API array for saving.
  $delta = 0;
  foreach ($values as $value) {
    if ($mode == 'name') {
      if ($vid > 0) {
        $query = db_select('term_data', 'td')
          ->fields('td', array(
          'tid',
        ))
          ->condition('name', $value, '=')
          ->condition('vid', $vid, '=');
      }
      else {
        $query = db_select('term_data', 'td')
          ->fields('td', array(
          'tid',
        ))
          ->condition('name', $value, '=');
      }
      $result = $query
        ->execute();
      $record = $result
        ->fetchAssoc();
      if ($record['tid'] == 0) {

        //dvm('Term not found: '.$value);
        continue;
      }
      $value = $record['tid'];
    }
    $item = array();
    $item['value'] = $value;
    $return[$delta] = $item;
    $delta++;
  }
  return empty($return) ? NULL : $return;
}