|
@@ -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');
|