|  | @@ -5,6 +5,8 @@ namespace Drupal\materio_migrate\Plugin\migrate\source;
 | 
	
		
			
				|  |  |  use Drupal\user\Entity\User;
 | 
	
		
			
				|  |  |  use Drupal\migrate\Plugin\migrate\source\SqlBase;
 | 
	
		
			
				|  |  |  use Drupal\migrate\Row;
 | 
	
		
			
				|  |  | +use Drupal\migrate\Plugin\MigrationInterface;
 | 
	
		
			
				|  |  | +use Drupal\migrate\Plugin\migrate\process\MigrationLookup;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |   * Minimalistic example for a SqlBase source plugin.
 | 
	
	
		
			
				|  | @@ -87,25 +89,71 @@ class D7FlagListItemsMaterio extends SqlBase {
 | 
	
		
			
				|  |  |      // $row->setSourceProperty('uid', $owner);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Check if the flagging collection exist.
 | 
	
		
			
				|  |  | -    $found = FALSE;
 | 
	
		
			
				|  |  | -    $flagListsService = \Drupal::service('flaglists');
 | 
	
		
			
				|  |  | -    $baseFlags = $flagListsService->getAllFlaggingCollections();
 | 
	
		
			
				|  |  | -    foreach ($baseFlags as $flag) {
 | 
	
		
			
				|  |  | -      if ($found =
 | 
	
		
			
				|  |  | -        $flag->get('id')->value == $row->getSourceProperty('fid')) {
 | 
	
		
			
				|  |  | -        $relatedFlag = $flag->get('relatedflag')->getValue();
 | 
	
		
			
				|  |  | -        $relatedFlagList = $relatedFlag['0']['target_id'];
 | 
	
		
			
				|  |  | -        $row->setSourceProperty('relatedflag', $relatedFlagList);
 | 
	
		
			
				|  |  | +    // $found = FALSE;
 | 
	
		
			
				|  |  | +    $fid = $row->getSourceProperty('fid');
 | 
	
		
			
				|  |  | +    $database = \Drupal::database();
 | 
	
		
			
				|  |  | +    $fidquery = $database->select('migrate_map_d7_flaglists', 'm')
 | 
	
		
			
				|  |  | +      ->condition('m.sourceid1', $fid)
 | 
	
		
			
				|  |  | +      ->fields('m', ['sourceid1', 'destid1']);
 | 
	
		
			
				|  |  | +    $result = $fidquery->execute();
 | 
	
		
			
				|  |  | +    foreach ($result as $record) {
 | 
	
		
			
				|  |  | +      if($record){
 | 
	
		
			
				|  |  | +        $dfid = $record->destid1;
 | 
	
		
			
				|  |  |          break;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    if (!$found) {
 | 
	
		
			
				|  |  | -      $message = $this->t('The flagging collection "@collection" wasn\'t found');
 | 
	
		
			
				|  |  | -      $messenger->addError($message,
 | 
	
		
			
				|  |  | -        ['@collection' => $row->getSourceProperty('relatedflag')]);
 | 
	
		
			
				|  |  | -      $logger->error($message,
 | 
	
		
			
				|  |  | -        ['@collection' => $row->getSourceProperty('relatedflag')]);
 | 
	
		
			
				|  |  | +    // if flag_collection already imported
 | 
	
		
			
				|  |  | +    if($dfid){
 | 
	
		
			
				|  |  | +      $flagListsService = \Drupal::service('flaglists');
 | 
	
		
			
				|  |  | +      $baseFlags = $flagListsService->getAllFlaggingCollections();
 | 
	
		
			
				|  |  | +      foreach ($baseFlags as $flag) {
 | 
	
		
			
				|  |  | +        if ($flag->get('id')->value == $dfid) {
 | 
	
		
			
				|  |  | +          $relatedFlag = $flag->get('relatedflag')->getValue();
 | 
	
		
			
				|  |  | +          $relatedFlagList = $relatedFlag['0']['target_id'];
 | 
	
		
			
				|  |  | +          $row->setSourceProperty('relatedflag', $relatedFlagList);
 | 
	
		
			
				|  |  | +          break;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // TODO: dest_entity_id (for name composition)
 | 
	
		
			
				|  |  | +    $entity_id = $row->getSourceProperty('entity_id');
 | 
	
		
			
				|  |  | +    // $database = \Drupal::database();
 | 
	
		
			
				|  |  | +    $query_entityid = $database->select('migrate_map_d7_node_materiau', 'm')
 | 
	
		
			
				|  |  | +      ->condition('m.sourceid1', $entity_id)
 | 
	
		
			
				|  |  | +      ->fields('m', ['sourceid1', 'destid1']);
 | 
	
		
			
				|  |  | +    $result = $query_entityid->execute();
 | 
	
		
			
				|  |  | +    foreach ($result as $record) {
 | 
	
		
			
				|  |  | +      if($record){
 | 
	
		
			
				|  |  | +        $dest_entity_id = $record->destid1;
 | 
	
		
			
				|  |  | +        break;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    if(!$dest_entity_id){
 | 
	
		
			
				|  |  | +      $query_entityid = $database->select('migrate_map_d7_node_article', 'm')
 | 
	
		
			
				|  |  | +        ->condition('m.sourceid1', $entity_id)
 | 
	
		
			
				|  |  | +        ->fields('m', ['sourceid1', 'destid1']);
 | 
	
		
			
				|  |  | +      $result = $query_entityid->execute();
 | 
	
		
			
				|  |  | +      foreach ($result as $record) {
 | 
	
		
			
				|  |  | +        if($record){
 | 
	
		
			
				|  |  | +          $dest_entity_id = $record->destid1;
 | 
	
		
			
				|  |  | +          break;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if($dest_entity_id){
 | 
	
		
			
				|  |  | +      $row->setSourceProperty('dest_entity_id', $dest_entity_id);
 | 
	
		
			
				|  |  | +    }else{
 | 
	
		
			
				|  |  | +      $row->setSourceProperty('dest_entity_id', $entity_id);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // if (!$found) {
 | 
	
		
			
				|  |  | +    //   $message = $this->t('The flagging collection "@collection" wasn\'t found');
 | 
	
		
			
				|  |  | +    //   $messenger->addError($message,
 | 
	
		
			
				|  |  | +    //     ['@collection' => $row->getSourceProperty('relatedflag')]);
 | 
	
		
			
				|  |  | +    //   $logger->error($message,
 | 
	
		
			
				|  |  | +    //     ['@collection' => $row->getSourceProperty('relatedflag')]);
 | 
	
		
			
				|  |  | +    // }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Check if the entity exists.
 | 
	
		
			
				|  |  |      // $entity_id = $row->getSourceProperty('entity_id');
 |