popsu_migrate: D7NodeTheme themes et projets liés refactored
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: d8e55680-7f11-4e58-9e8a-892ec4ec9191
 | 
			
		||||
uuid: ae496e79-c2b0-483b-9dc2-b04f29237322
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: b03a76ce-4cc8-4567-85f4-ec6740c3e47b
 | 
			
		||||
uuid: 6fa024f8-38b0-48af-886a-e3f1575e8873
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: 3bbf9aad-5230-4660-8d1a-45d14b44a801
 | 
			
		||||
uuid: 935e3f08-247d-4c85-8a42-6c35daa0ddf7
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
uuid: 479b05a2-6377-46f9-976d-a4d79b4cc6ac
 | 
			
		||||
uuid: ff918ee4-59b1-4139-a96d-f68bd7036274
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
_core:
 | 
			
		||||
  default_config_hash: WJ4CqAlkn09bHQXqYqK8-kat9Esdlw-iXGRk0IeX97c
 | 
			
		||||
  default_config_hash: zBJRTgJ9e5p4ZBc0jDlNp3eynstu43FtkG96jez6pQU
 | 
			
		||||
id: d7_node_theme
 | 
			
		||||
class: null
 | 
			
		||||
field_plugin_method: null
 | 
			
		||||
@@ -57,11 +57,16 @@ process:
 | 
			
		||||
    process:
 | 
			
		||||
      target_id:
 | 
			
		||||
        plugin: migration_lookup
 | 
			
		||||
        migration:
 | 
			
		||||
          - d7_node_projet
 | 
			
		||||
          - d7_node_theme
 | 
			
		||||
        migration: d7_node_theme
 | 
			
		||||
        source: nid
 | 
			
		||||
  field_projets_lies:
 | 
			
		||||
    plugin: sub_process
 | 
			
		||||
    source: field_projets_lies
 | 
			
		||||
    process:
 | 
			
		||||
      target_id:
 | 
			
		||||
        plugin: migration_lookup
 | 
			
		||||
        migration: d7_node_projet
 | 
			
		||||
        source: nid
 | 
			
		||||
        stub_id: d7_node_projet
 | 
			
		||||
destination:
 | 
			
		||||
  plugin: 'entity:node'
 | 
			
		||||
migration_dependencies:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: b0b00974-3194-4e57-89b3-0cb83fd2d24f
 | 
			
		||||
uuid: d8151c69-445f-489e-ac82-372fe5d5ca9e
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: 0ac95398-8da2-4e5a-968d-6db44f0b9b86
 | 
			
		||||
uuid: 1cea8a55-906b-4d00-81d8-a35ec6657e17
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: 8d6222b6-cd0a-4679-b047-2ac9b3a079be
 | 
			
		||||
uuid: 06f1809a-7f86-4527-a5d7-1ad2ce7c71c7
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies:
 | 
			
		||||
 
 | 
			
		||||
@@ -62,16 +62,21 @@ process:
 | 
			
		||||
    process:
 | 
			
		||||
      target_id:
 | 
			
		||||
        plugin: migration_lookup
 | 
			
		||||
        migration:
 | 
			
		||||
          - d7_node_projet
 | 
			
		||||
          - d7_node_theme
 | 
			
		||||
        migration: d7_node_theme
 | 
			
		||||
        source: nid
 | 
			
		||||
 | 
			
		||||
  field_projets_lies:
 | 
			
		||||
    plugin: sub_process
 | 
			
		||||
    source: field_projets_lies
 | 
			
		||||
    process:
 | 
			
		||||
      target_id:
 | 
			
		||||
        plugin: migration_lookup
 | 
			
		||||
        migration: d7_node_projet
 | 
			
		||||
        source: nid
 | 
			
		||||
        # stub_id is not working :(
 | 
			
		||||
        stub_id: d7_node_projet
 | 
			
		||||
 | 
			
		||||
migration_dependencies:
 | 
			
		||||
  required:
 | 
			
		||||
    - d7_allpublicfiles
 | 
			
		||||
    - d7_users
 | 
			
		||||
    - d7_taxonomy_term_type_theme
 | 
			
		||||
    - d7_node_projet
 | 
			
		||||
    # - d7_node_projet
 | 
			
		||||
 
 | 
			
		||||
@@ -169,10 +169,27 @@ class D7NodeTheme extends FieldableEntity {
 | 
			
		||||
    # Themes liés
 | 
			
		||||
    // merge the two ppossible field source
 | 
			
		||||
    $field_themes_lies = array();
 | 
			
		||||
    $field_projets_lies = array();
 | 
			
		||||
    if ($field_popsu_themloc_lies = $row->getSourceProperty('field_popsu_themloc_lies')) {
 | 
			
		||||
      // Drush::output()->writeln(dump($field_popsu_themloc_lies));
 | 
			
		||||
      foreach ($field_popsu_themloc_lies as $key => $value) {
 | 
			
		||||
        $field_themes_lies[] = $value;
 | 
			
		||||
        // check if theme
 | 
			
		||||
        $q = $this->select('node', 'n')
 | 
			
		||||
          ->fields('n', ['nid','type'])
 | 
			
		||||
          ->condition('n.nid', $value['nid'])
 | 
			
		||||
          ->condition('n.type', ['popsu_theme_local', 'popsu_projet'], 'IN');
 | 
			
		||||
        $res = $q->execute()->fetchAll();
 | 
			
		||||
        if (!empty($res)) {
 | 
			
		||||
          Drush::output()->writeln(dump($res));
 | 
			
		||||
          switch ($res[0]['type']) {
 | 
			
		||||
            case 'popsu_theme_local':
 | 
			
		||||
              $field_themes_lies[] = $value;
 | 
			
		||||
              break;
 | 
			
		||||
            case 'popsu_projet':
 | 
			
		||||
              $field_projets_lies[] = $value;
 | 
			
		||||
              break;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if ($field_popsu_themloc_comparatif = $row->getSourceProperty('field_popsu_themloc_comparatif')) {
 | 
			
		||||
@@ -182,9 +199,13 @@ class D7NodeTheme extends FieldableEntity {
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (!empty($field_themes_lies)) {
 | 
			
		||||
      Drush::output()->writeln(dump($field_themes_lies));
 | 
			
		||||
      // Drush::output()->writeln(dump($field_themes_lies));
 | 
			
		||||
      $row->setSourceProperty('field_themes_lies', $field_themes_lies);
 | 
			
		||||
    }
 | 
			
		||||
    if (!empty($field_projets_lies)) {
 | 
			
		||||
      // Drush::output()->writeln(dump($field_themes_lies));
 | 
			
		||||
      $row->setSourceProperty('field_projets_lies', $field_projets_lies);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return parent::prepareRow($row);
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user