popsu_migrate: D7NodeTheme themes et projets liés refactored

This commit is contained in:
2021-04-19 14:35:28 +02:00
parent 14b6df455a
commit 2b0904f0b4
9 changed files with 51 additions and 20 deletions

View File

@@ -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

View File

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