popsu_migrate: D7NodeTheme programme ok

This commit is contained in:
2021-04-19 11:00:01 +02:00
parent 932709cb96
commit 81a52a95de
25 changed files with 334 additions and 73 deletions

View File

@@ -26,12 +26,18 @@ process:
created: created
changed: changed
title: title
uid:
plugin: default_value
default_value: 34
title: title
field_programme:
plugin: migration_lookup
migration: d7_node_programme
source: programme
no_stub: true
migration_dependencies:
required:
- d7_allpublicfiles

View File

@@ -113,7 +113,45 @@ class D7NodeTheme extends FieldableEntity {
// Get Field API field values.
foreach ($this->getFields('node', $type) as $field_name => $field) {
$row->setSourceProperty($field_name, $this->getFieldValues('node', $field_name, $nid, $vid, NULL));
$field_values = $this->getFieldValues('node', $field_name, $nid, $vid, NULL);
$row->setSourceProperty($field_name, $field_values);
switch ($field_name) {
case 'field_popsu_themloc_popsu':
$field_programme = $field_values;
break;
case 'field_popsu_themtrans_popsu':
$field_programme = $field_values;
break;
case 'field_popsu_themeur_popsu':
$field_programme = $field_values;
break;
}
}
if ($field_programme) {
Drush::output()->writeln(dump($field_programme));
// get the nid of popsu_special from the tid of popsu for migration lookup
// Select node in its last revision.
$query = $this->select('node_revision', 'nr')
->fields('n', ['nid','type','vid'])
->fields('nr', ['vid']);
$query->innerJoin('node', 'n', static::JOIN);
$query->condition('n.type', 'popsu_special');
# field_popsu_special_typetaxo
# filter to get the right special type (colloques, publication, etc)
$query->leftJoin('field_revision_field_popsu_special_typetaxo', 'ff', 'ff.revision_id = n.vid');
$query->fields('ff', ['field_popsu_special_typetaxo_tid']);
$query->condition('ff.field_popsu_special_typetaxo_tid', 31);
# field_popsu_special_popsu
# filter to get right popsu (popsu 1, popsu europe, etc)
$query->leftJoin('field_revision_field_popsu_special_popsu', 'sp', 'sp.revision_id = n.vid');
$query->fields('sp', ['field_popsu_special_popsu_tid']);
$query->condition('sp.field_popsu_special_popsu_tid', $field_programme[0]['tid']);
$prog = $query->execute()->fetchAll();
Drush::output()->writeln(dump($prog));
$row->setSourceProperty('programme', $prog[0]['nid']);
}
return parent::prepareRow($row);