|  | @@ -21,8 +21,13 @@ class D7TaxonomyTermTags extends FieldableEntity {
 | 
	
		
			
				|  |  |    public function query() {
 | 
	
		
			
				|  |  |      $query = $this->select('taxonomy_term_data', 'td')
 | 
	
		
			
				|  |  |        ->fields('td')
 | 
	
		
			
				|  |  | -      ->distinct()
 | 
	
		
			
				|  |  | +      ->condition('et.entity_type', 'taxonomy_term')
 | 
	
		
			
				|  |  | +      ->condition('et.source', '')
 | 
	
		
			
				|  |  |        ->orderBy('tid');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    $query->innerJoin('entity_translation', 'et', 'et.entity_id = td.tid');
 | 
	
		
			
				|  |  | +    $query->fields('et');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      $query->leftJoin('taxonomy_vocabulary', 'tv', 'td.vid = tv.vid');
 | 
	
		
			
				|  |  |      $query->addField('tv', 'machine_name');
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -47,6 +52,10 @@ class D7TaxonomyTermTags extends FieldableEntity {
 | 
	
		
			
				|  |  |        'parent' => $this->t("The Drupal term IDs of the term's parents."),
 | 
	
		
			
				|  |  |        'format' => $this->t("Format of the term description."),
 | 
	
		
			
				|  |  |        'synonyms' => $this->t("Term's Synonyms (field : synonyms_synonym)"),
 | 
	
		
			
				|  |  | +      'displayed_on_advanced_search' => $this->t("field_used_on_advanced_search"),
 | 
	
		
			
				|  |  | +      'revision_id' => $this->t('Revision ID'),
 | 
	
		
			
				|  |  | +      'language' => $this->t('Term translation language'),
 | 
	
		
			
				|  |  | +      'source' => $this->t('Term translation source language'),
 | 
	
		
			
				|  |  |      ];
 | 
	
		
			
				|  |  |      return $fields;
 | 
	
		
			
				|  |  |    }
 | 
	
	
		
			
				|  | @@ -56,12 +65,19 @@ class D7TaxonomyTermTags extends FieldableEntity {
 | 
	
		
			
				|  |  |     * {@inheritdoc}
 | 
	
		
			
				|  |  |     */
 | 
	
		
			
				|  |  |    public function prepareRow(Row $row) {
 | 
	
		
			
				|  |  | -    print("\n\n".'-- prepareRow -- '.$row->getSourceProperty('tid')." -- ".$row->getSourceProperty('name')."\n");
 | 
	
		
			
				|  |  | +    $language = $row->getSourceProperty('language');
 | 
	
		
			
				|  |  | +    drush_print('-- '.$language.' -- '.$row->getSourceProperty('tid')." -- ".$row->getSourceProperty('name')." -- ".$row->getSourceProperty('weight'));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    $tid = $row->getSourceProperty('tid');
 | 
	
		
			
				|  |  | +    // vocabulary machine name
 | 
	
		
			
				|  |  | +    $machine_name = $row->getSourceProperty('machine_name');
 | 
	
		
			
				|  |  | +    $revid = $row->getSourceProperty('revision_id');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Get Field API field values.
 | 
	
		
			
				|  |  | -    foreach (array_keys($this->getFields('taxonomy_term', $row->getSourceProperty('machine_name'))) as $field) {
 | 
	
		
			
				|  |  | -      $tid = $row->getSourceProperty('tid');
 | 
	
		
			
				|  |  | -      $row->setSourceProperty($field, $this->getFieldValues('taxonomy_term', $field, $tid));
 | 
	
		
			
				|  |  | +    foreach ($this->getFields('taxonomy_term', $machine_name) as $field_name => $field) {
 | 
	
		
			
				|  |  | +      // Ensure we're using the right language if the entity is translatable.
 | 
	
		
			
				|  |  | +      $field_language = $field['translatable'] ? $language : NULL;
 | 
	
		
			
				|  |  | +      $row->setSourceProperty($field_name, $this->getFieldValues('taxonomy_term', $field_name, $tid, $revid, $field_language));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Find parents for this row.
 | 
	
	
		
			
				|  | @@ -71,31 +87,14 @@ class D7TaxonomyTermTags extends FieldableEntity {
 | 
	
		
			
				|  |  |        ->execute()
 | 
	
		
			
				|  |  |        ->fetchCol();
 | 
	
		
			
				|  |  |      $row->setSourceProperty('parent', $parents);
 | 
	
		
			
				|  |  | -    // print_r($parents);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    // If the term name or term description were replaced by real fields using
 | 
	
		
			
				|  |  | -    // the Drupal 7 Title module, use the fields value instead of the term name
 | 
	
		
			
				|  |  | -    // or term description.
 | 
	
		
			
				|  |  | -    // TODO: translations
 | 
	
		
			
				|  |  | +    // If the node title was replaced by a real field using the Drupal 7 Title
 | 
	
		
			
				|  |  | +    // module, use the field value instead of the node title.
 | 
	
		
			
				|  |  |      if ($this->moduleExists('title')) {
 | 
	
		
			
				|  |  |        $name_field = $row->getSourceProperty('name_field');
 | 
	
		
			
				|  |  | -      // print_r($name_field);
 | 
	
		
			
				|  |  |        if (isset($name_field[0]['value'])) {
 | 
	
		
			
				|  |  |          $row->setSourceProperty('name', $name_field[0]['value']);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      $description_field = $row->getSourceProperty('description_field');
 | 
	
		
			
				|  |  | -      if (isset($description_field[0]['value'])) {
 | 
	
		
			
				|  |  | -        $row->setSourceProperty('description', $description_field[0]['value']);
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    // Synonyms
 | 
	
		
			
				|  |  | -    if ($this->moduleExists('title')) {
 | 
	
		
			
				|  |  | -      $synonyms = $row->getSourceProperty('synonyms_synonym');
 | 
	
		
			
				|  |  | -      // print_r($synonyms);
 | 
	
		
			
				|  |  | -      if(!empty($synonyms)){
 | 
	
		
			
				|  |  | -        $row->setSourceProperty('synonyms', $synonyms);
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      return parent::prepareRow($row);
 |