popsu_migrate: D7NodeEvemenent title, programme ok
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: 071e279f-245e-4b84-9923-2af9f39fb8e9
 | 
			
		||||
uuid: d8b54ad5-2208-4425-b723-a887d54c2dbd
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										46
									
								
								config/sync/migrate_plus.migration.d7_node_evenement.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								config/sync/migrate_plus.migration.d7_node_evenement.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
uuid: b499f0ee-400a-4ca6-b840-5f512a654d9f
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
_core:
 | 
			
		||||
  default_config_hash: PSsiiyyevWgCYzvYGFZ21_JeY4biek3VX8UWRJC84xA
 | 
			
		||||
id: d7_node_evenement
 | 
			
		||||
class: null
 | 
			
		||||
field_plugin_method: null
 | 
			
		||||
cck_plugin_method: null
 | 
			
		||||
migration_tags:
 | 
			
		||||
  - 'Drupal 7'
 | 
			
		||||
  - Content
 | 
			
		||||
  - Popsu
 | 
			
		||||
migration_group: popsu
 | 
			
		||||
label: 'Node evenement'
 | 
			
		||||
source:
 | 
			
		||||
  plugin: d7_node_evenement
 | 
			
		||||
  batch_size: 500
 | 
			
		||||
process:
 | 
			
		||||
  type:
 | 
			
		||||
    plugin: default_value
 | 
			
		||||
    default_value: evenement
 | 
			
		||||
  created: created
 | 
			
		||||
  changed: changed
 | 
			
		||||
  uid:
 | 
			
		||||
    plugin: default_value
 | 
			
		||||
    default_value: 34
 | 
			
		||||
  title: title
 | 
			
		||||
  field_programme:
 | 
			
		||||
    plugin: sub_process
 | 
			
		||||
    source: field_programme
 | 
			
		||||
    process:
 | 
			
		||||
      target_id:
 | 
			
		||||
        plugin: migration_lookup
 | 
			
		||||
        migration: d7_node_programme
 | 
			
		||||
        source: nid
 | 
			
		||||
        no_stub: true
 | 
			
		||||
  field_memo: field_memo
 | 
			
		||||
destination:
 | 
			
		||||
  plugin: 'entity:node'
 | 
			
		||||
migration_dependencies:
 | 
			
		||||
  required:
 | 
			
		||||
    - d7_allpublicfiles
 | 
			
		||||
    - d7_users
 | 
			
		||||
    - d7_taxonomy_term_type_theme
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: 01d9fb31-fab8-4cd4-8baa-952cc5abbac9
 | 
			
		||||
uuid: 3fa15bd5-3513-404f-a196-9803dda7cc19
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: 2d9231da-03d9-4adc-8e76-5daef3f9aab3
 | 
			
		||||
uuid: d52cf24c-ba35-48c8-9953-63aa84ac4b75
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
uuid: 507f9a8c-7553-49f1-8ca0-0060a62b4a76
 | 
			
		||||
uuid: 5cc47721-5d98-4633-a864-748cc97d059a
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
_core:
 | 
			
		||||
  default_config_hash: vaJGqfIaPvzz6PaFSoSw7KbhDXnpq2BHStr--jVZeyY
 | 
			
		||||
  default_config_hash: fCdLwU7_TvP2v3027Kue4K8q7WNPs0u9z4gA8MkV5_U
 | 
			
		||||
id: d7_node_ressource
 | 
			
		||||
class: null
 | 
			
		||||
field_plugin_method: null
 | 
			
		||||
@@ -109,4 +109,4 @@ migration_dependencies:
 | 
			
		||||
  required:
 | 
			
		||||
    - d7_allpublicfiles
 | 
			
		||||
    - d7_users
 | 
			
		||||
    - d7_taxonomy_term_type_theme
 | 
			
		||||
    - d7_taxonomy_term_type_doc
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: 025b0179-b925-43c1-8b0e-e7826b540622
 | 
			
		||||
uuid: 022db3b4-b28b-4ca0-afc9-bb9b2a1547a5
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: d5376a3b-4a58-4162-8d64-71b37e41e8b1
 | 
			
		||||
uuid: cbfc7e24-8c0d-4fee-9899-c4274ca165c3
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: d72d270f-6032-4795-a0ea-cbec93e6e524
 | 
			
		||||
uuid: 28aa4b09-685d-4268-aacc-7db0ac919b95
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: a8817166-4585-4e4d-88c1-3179e9fea37e
 | 
			
		||||
uuid: 928d9be5-ae4f-4460-8a6d-400ad5a1c54e
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: 4a99b969-bf9d-41ad-b3cc-4268a57862e4
 | 
			
		||||
uuid: 43e1ab43-efa4-4544-90c5-2ecd7995ede9
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: a0eb7934-fbb3-41d1-8963-1bbffa8b1428
 | 
			
		||||
uuid: faecdc1e-391b-4923-9973-789cab7f3610
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies: {  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
uuid: e38bc46e-5cf1-4397-9f18-b70648397aa8
 | 
			
		||||
uuid: 3c7e2d93-56a7-479e-9e9a-74578d456724
 | 
			
		||||
langcode: fr
 | 
			
		||||
status: true
 | 
			
		||||
dependencies:
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,131 @@
 | 
			
		||||
id: d7_node_evenement
 | 
			
		||||
label: Node evenement
 | 
			
		||||
migration_group: popsu
 | 
			
		||||
audit: true
 | 
			
		||||
migration_tags:
 | 
			
		||||
  - Drupal 7
 | 
			
		||||
  - Content
 | 
			
		||||
  - Popsu
 | 
			
		||||
 | 
			
		||||
source:
 | 
			
		||||
  plugin: d7_node_evenement
 | 
			
		||||
  batch_size: 500
 | 
			
		||||
  # high_water_property:
 | 
			
		||||
  #   name: changed
 | 
			
		||||
  #   alias: n
 | 
			
		||||
 | 
			
		||||
destination:
 | 
			
		||||
  plugin: entity:node
 | 
			
		||||
 | 
			
		||||
process:
 | 
			
		||||
  # nid: nid
 | 
			
		||||
  type:
 | 
			
		||||
    plugin: default_value
 | 
			
		||||
    default_value: evenement
 | 
			
		||||
  created: created
 | 
			
		||||
  changed: changed
 | 
			
		||||
 | 
			
		||||
  uid:
 | 
			
		||||
    plugin: default_value
 | 
			
		||||
    default_value: 34
 | 
			
		||||
 | 
			
		||||
  title: title
 | 
			
		||||
 | 
			
		||||
  field_programme:
 | 
			
		||||
    plugin: sub_process
 | 
			
		||||
    source: field_programme
 | 
			
		||||
    process:
 | 
			
		||||
      target_id:
 | 
			
		||||
        plugin: migration_lookup
 | 
			
		||||
        migration: d7_node_programme
 | 
			
		||||
        source: nid
 | 
			
		||||
        no_stub: true
 | 
			
		||||
  
 | 
			
		||||
  # field_theme:
 | 
			
		||||
  #   plugin: migration_lookup
 | 
			
		||||
  #   migration: d7_node_theme
 | 
			
		||||
  #   source: field_theme
 | 
			
		||||
  #   no_stub: true
 | 
			
		||||
  #
 | 
			
		||||
  # field_projet:
 | 
			
		||||
  #   plugin: migration_lookup
 | 
			
		||||
  #   migration: d7_node_projet
 | 
			
		||||
  #   source: field_projet
 | 
			
		||||
  #   no_stub: true
 | 
			
		||||
  #
 | 
			
		||||
  # field_poid: field_poids
 | 
			
		||||
  #
 | 
			
		||||
  # field_type_de_ressource:
 | 
			
		||||
  #   plugin: migration_lookup
 | 
			
		||||
  #   migration: d7_taxonomy_term_type_doc
 | 
			
		||||
  #   source: field_popsu_doc_type
 | 
			
		||||
  #   no_stub: true
 | 
			
		||||
  #
 | 
			
		||||
  # field_sous_titre:
 | 
			
		||||
  #   plugin: sub_process
 | 
			
		||||
  #   source: field_popsu_publication_soustitr
 | 
			
		||||
  #   process:
 | 
			
		||||
  #     value: value
 | 
			
		||||
  #     # summary: summary
 | 
			
		||||
  #     # format:
 | 
			
		||||
  #     #   plugin: default_value
 | 
			
		||||
  #     #   default_value: wysiwyg
 | 
			
		||||
  #
 | 
			
		||||
  # field_edition:
 | 
			
		||||
  #   plugin: sub_process
 | 
			
		||||
  #   source: field_popsu_doc_source
 | 
			
		||||
  #   process:
 | 
			
		||||
  #     value: value
 | 
			
		||||
  #     summary: summary
 | 
			
		||||
  #     format:
 | 
			
		||||
  #       plugin: default_value
 | 
			
		||||
  #       default_value: wysiwyg
 | 
			
		||||
  #
 | 
			
		||||
  # body:
 | 
			
		||||
  #   plugin: sub_process
 | 
			
		||||
  #   source: body
 | 
			
		||||
  #   process:
 | 
			
		||||
  #     value: value
 | 
			
		||||
  #     summary: summary
 | 
			
		||||
  #     format:
 | 
			
		||||
  #       plugin: default_value
 | 
			
		||||
  #       default_value: wysiwyg
 | 
			
		||||
  #
 | 
			
		||||
  #
 | 
			
		||||
  # field_image:
 | 
			
		||||
  #   plugin: sub_process
 | 
			
		||||
  #   source: field_popsu_publication_cover
 | 
			
		||||
  #   process:
 | 
			
		||||
  #     target_id:
 | 
			
		||||
  #       plugin: migration_lookup
 | 
			
		||||
  #       migration: d7_allpublicfiles
 | 
			
		||||
  #       source: fid
 | 
			
		||||
  #       no_stub: true
 | 
			
		||||
  #     alt: alt
 | 
			
		||||
  #     title: title
 | 
			
		||||
  #
 | 
			
		||||
  # field_fichier:
 | 
			
		||||
  #   plugin: sub_process
 | 
			
		||||
  #   source: field_popsu_doc_files
 | 
			
		||||
  #   process:
 | 
			
		||||
  #     target_id:
 | 
			
		||||
  #       plugin: migration_lookup
 | 
			
		||||
  #       migration: d7_allpublicfiles
 | 
			
		||||
  #       source: fid
 | 
			
		||||
  #       no_stub: true
 | 
			
		||||
  #     display: display
 | 
			
		||||
  #     description: description
 | 
			
		||||
  #
 | 
			
		||||
  # field_ressources_liees:
 | 
			
		||||
  #   plugin: migration_lookup
 | 
			
		||||
  #   migration: d7_node_ressource
 | 
			
		||||
  #   source: field_projet
 | 
			
		||||
  #   no_stub: true
 | 
			
		||||
 | 
			
		||||
  field_memo: field_memo
 | 
			
		||||
 | 
			
		||||
migration_dependencies:
 | 
			
		||||
  required:
 | 
			
		||||
    - d7_allpublicfiles
 | 
			
		||||
    - d7_users
 | 
			
		||||
    - d7_taxonomy_term_type_theme
 | 
			
		||||
@@ -0,0 +1,254 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace Drupal\popsu_migrate\Plugin\migrate\source;
 | 
			
		||||
 | 
			
		||||
use Drupal\Core\Extension\ModuleHandlerInterface;
 | 
			
		||||
use Drupal\migrate\Row;
 | 
			
		||||
use Drupal\migrate_drupal\Plugin\migrate\source\d7\FieldableEntity;
 | 
			
		||||
use Drupal\Core\Database\Query\SelectInterface;
 | 
			
		||||
use Drupal\Core\Entity\EntityTypeManagerInterface;
 | 
			
		||||
use Drupal\Core\Extension\ModuleHandler;
 | 
			
		||||
use Drupal\Core\State\StateInterface;
 | 
			
		||||
use Drupal\migrate\Plugin\MigrationInterface;
 | 
			
		||||
use Symfony\Component\DependencyInjection\ContainerInterface;
 | 
			
		||||
use Drupal\Core\Logger\LoggerChannelFactoryInterface;
 | 
			
		||||
use Drush\Drush;
 | 
			
		||||
use Drupal\paragraphs\Entity\Paragraph;
 | 
			
		||||
 | 
			
		||||
// use Drupal\popsu_migrate\Plugin\migrate\source\D7Programme;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Drupal 7 node source from database.
 | 
			
		||||
 *
 | 
			
		||||
 * @MigrateSource(
 | 
			
		||||
 *   id = "d7_node_evenement",
 | 
			
		||||
 *   source_module = "node"
 | 
			
		||||
 * )
 | 
			
		||||
 */
 | 
			
		||||
class D7NodeEvenement extends FieldableEntity {
 | 
			
		||||
  /**
 | 
			
		||||
   * The module handler.
 | 
			
		||||
   *
 | 
			
		||||
   * @var \Drupal\Core\Extension\ModuleHandlerInterface
 | 
			
		||||
   */
 | 
			
		||||
  protected $moduleHandler;
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * The logger channel.
 | 
			
		||||
   *
 | 
			
		||||
   * @var \Drupal\Core\Logger\LoggerChannelInterface
 | 
			
		||||
   */
 | 
			
		||||
  protected $logger;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * {@inheritdoc}
 | 
			
		||||
   */
 | 
			
		||||
  public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration, StateInterface $state, EntityTypeManagerInterface $entity_manager, ModuleHandlerInterface $module_handler,LoggerChannelFactoryInterface $loggerFactory) {
 | 
			
		||||
    parent::__construct($configuration, $plugin_id, $plugin_definition, $migration, $state, $entity_manager);
 | 
			
		||||
    $this->moduleHandler = $module_handler;
 | 
			
		||||
    $this->logger = $loggerFactory->get('popsu_migration');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * {@inheritdoc}
 | 
			
		||||
   */
 | 
			
		||||
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) {
 | 
			
		||||
    return new static(
 | 
			
		||||
      $configuration,
 | 
			
		||||
      $plugin_id,
 | 
			
		||||
      $plugin_definition,
 | 
			
		||||
      $migration,
 | 
			
		||||
      $container->get('state'),
 | 
			
		||||
      $container->get('entity_type.manager'),
 | 
			
		||||
      $container->get('module_handler'),
 | 
			
		||||
      $container->get('logger.factory')
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * The join options between the node and the node_revisions table.
 | 
			
		||||
   */
 | 
			
		||||
  const JOIN = 'n.vid = nr.vid';
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * {@inheritdoc}
 | 
			
		||||
   */
 | 
			
		||||
  public function query() {
 | 
			
		||||
    // Select node in its last revision.
 | 
			
		||||
    $query = $this->select('node_revision', 'nr')
 | 
			
		||||
      ->fields('n', [
 | 
			
		||||
        'nid',
 | 
			
		||||
        'type',
 | 
			
		||||
        'uid',
 | 
			
		||||
        'language',
 | 
			
		||||
        'status',
 | 
			
		||||
        'created',
 | 
			
		||||
        'changed',
 | 
			
		||||
      ])
 | 
			
		||||
      ->fields('nr', [
 | 
			
		||||
        'vid',
 | 
			
		||||
        'title',
 | 
			
		||||
        'log',
 | 
			
		||||
        'timestamp',
 | 
			
		||||
      ])
 | 
			
		||||
      ->orderBy('type', 'ASC');
 | 
			
		||||
 | 
			
		||||
    $query->addField('n', 'uid', 'node_uid');
 | 
			
		||||
    $query->addField('nr', 'uid', 'revision_uid');
 | 
			
		||||
    $query->innerJoin('node', 'n', static::JOIN);
 | 
			
		||||
 | 
			
		||||
    $query->condition('n.type', ['evenement', 'popsu_colloque'], 'IN');
 | 
			
		||||
 | 
			
		||||
    return $query;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * {@inheritdoc}
 | 
			
		||||
   */
 | 
			
		||||
  public function prepareRow(Row $row) {
 | 
			
		||||
    $nid = $row->getSourceProperty('nid');
 | 
			
		||||
    $vid = $row->getSourceProperty('vid');
 | 
			
		||||
    $type = $row->getSourceProperty('type');
 | 
			
		||||
    $title = $row->getSourceProperty('title');
 | 
			
		||||
    Drush::output()->writeln('- - - - ' . $title . ' ('.$nid.')'. ' ['.$type.']' . '- - - - ');
 | 
			
		||||
 | 
			
		||||
    $memo = '';
 | 
			
		||||
    $memo .= "#migration : old nid = ".$nid."\n";
 | 
			
		||||
    $memo .= "#migration : old content type = ".$type."\n";
 | 
			
		||||
 | 
			
		||||
    // Get Field API field values.
 | 
			
		||||
    foreach ($this->getFields('node', $type) as $field_name => $field) {
 | 
			
		||||
      $field_values = $this->getFieldValues('node', $field_name, $nid, $vid, NULL);
 | 
			
		||||
      $row->setSourceProperty($field_name, $field_values);
 | 
			
		||||
      switch ($field_name) {
 | 
			
		||||
        case 'field_popsu_publication_body':
 | 
			
		||||
        case 'field_popsu_doc_body':
 | 
			
		||||
          $row->setSourceProperty("body", $field_values);
 | 
			
		||||
          break;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if ($type === "popsu_colloque") {
 | 
			
		||||
      // programme
 | 
			
		||||
      $field_programme = $row->getSourceProperty('field_popsu_colloque_popsu');
 | 
			
		||||
 | 
			
		||||
    } else { // evenement
 | 
			
		||||
      $field_popsu_doc_parent = $row->getSourceProperty('field_popsu_doc_parent');
 | 
			
		||||
      // get the node_type of doc_parent
 | 
			
		||||
      $node = $this->select('node', 'n')
 | 
			
		||||
        ->fields('n', ['nid','vid','type'])
 | 
			
		||||
        ->condition('n.nid', $field_popsu_doc_parent[0]['nid'])
 | 
			
		||||
        ->execute()->fetchAll()[0];
 | 
			
		||||
      // foreach ($this->getFields('node', $node['type']) as $field_name => $field) {
 | 
			
		||||
      //   $field_values = $this->getFieldValues('node', $field_name, $node['nid'], $node['vid'], NULL);
 | 
			
		||||
      //   $node[$field_name] = $field_values;
 | 
			
		||||
      // }
 | 
			
		||||
      switch ($node['type']) {
 | 
			
		||||
        // programme
 | 
			
		||||
        case 'popsu_special': // NO ITEM
 | 
			
		||||
        case 'popsu_page': //NO ITEM
 | 
			
		||||
          Drush::output()->writeln(dump($node));
 | 
			
		||||
          break;
 | 
			
		||||
        // // projet
 | 
			
		||||
        // // case 'popsu_page_neutral':  // no ref in migration
 | 
			
		||||
        // // case 'popsu_projet_europe': // merged with popsu_ville_europe
 | 
			
		||||
        // case 'popsu_ville_europe':
 | 
			
		||||
        // case 'popsu_ville':
 | 
			
		||||
        // case 'popsu_projet':
 | 
			
		||||
        //   // Drush::output()->writeln(dump($node));
 | 
			
		||||
        //   $node['target_id'] = $node['nid'];
 | 
			
		||||
        //   $row->setSourceProperty('field_projet', $node);
 | 
			
		||||
        //   break;
 | 
			
		||||
        // // Theme
 | 
			
		||||
        // case 'popsu_theme_europe':
 | 
			
		||||
        // case 'popsu_theme_trans':
 | 
			
		||||
        // case 'popsu_theme_local':
 | 
			
		||||
        //   $node['target_id'] = $node['nid'];
 | 
			
		||||
        //   $field_theme = $node;
 | 
			
		||||
        //   break;
 | 
			
		||||
        // // publication
 | 
			
		||||
        // case 'popsu_publication':
 | 
			
		||||
        //   $node['target_id'] = $node['nid'];
 | 
			
		||||
        //   $row->setSourceProperty('field_ressources_liees', $node);
 | 
			
		||||
        //   break;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if ($field_programme) {
 | 
			
		||||
      // Drush::output()->writeln(dump($field_programme));
 | 
			
		||||
      $tid = $field_programme[0]['tid'];
 | 
			
		||||
      // get the node (popsu_special) from the tid for migration_lookup
 | 
			
		||||
      $query = $this->select('node_revision', 'nr')
 | 
			
		||||
        ->fields('n', ['nid','type'])
 | 
			
		||||
        ->fields('nr', ['vid'])
 | 
			
		||||
        ->orderBy('changed');
 | 
			
		||||
      $query->innerJoin('node', 'n', static::JOIN);
 | 
			
		||||
      $query->condition('n.type', 'popsu_special');
 | 
			
		||||
      // field_popsu_special_typetaxo
 | 
			
		||||
      // filter to get the right special type (popsu)
 | 
			
		||||
      $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', $tid);
 | 
			
		||||
 | 
			
		||||
      $prog = $query->execute()->fetchAll();
 | 
			
		||||
 | 
			
		||||
      // Drush::output()->writeln(dump($prog));
 | 
			
		||||
      $row->setSourceProperty('field_programme', array(array('nid'=>$prog[0]['nid'])));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!empty($field_theme)) {
 | 
			
		||||
      // Drush::output()->writeln(dump($field_theme));
 | 
			
		||||
      $row->setSourceProperty('field_theme', $field_theme);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // record migration errors in field_memo
 | 
			
		||||
    if(isset($memo)){
 | 
			
		||||
      $field_memo = array(
 | 
			
		||||
        array(
 | 
			
		||||
          'value' => $memo
 | 
			
		||||
        )
 | 
			
		||||
      );
 | 
			
		||||
      $row->setSourceProperty('field_memo', $field_memo);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return parent::prepareRow($row);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * {@inheritdoc}
 | 
			
		||||
   */
 | 
			
		||||
  public function fields() {
 | 
			
		||||
    $fields = [
 | 
			
		||||
      'nid' => $this->t('Node ID'),
 | 
			
		||||
      'type' => $this->t('Type'),
 | 
			
		||||
      'title' => $this->t('Title'),
 | 
			
		||||
      'node_uid' => $this->t('Node authored by (uid)'),
 | 
			
		||||
      'revision_uid' => $this->t('Revision authored by (uid)'),
 | 
			
		||||
      'created' => $this->t('Created timestamp'),
 | 
			
		||||
      'changed' => $this->t('Modified timestamp'),
 | 
			
		||||
      'status' => $this->t('Published'),
 | 
			
		||||
      'promote' => $this->t('Promoted to front page'),
 | 
			
		||||
      'sticky' => $this->t('Sticky at top of lists'),
 | 
			
		||||
      'revision' => $this->t('Create new revision'),
 | 
			
		||||
      'language' => $this->t('Language (fr, en, ...)'),
 | 
			
		||||
      'tnid' => $this->t('The translation set id for this node'),
 | 
			
		||||
      'timestamp' => $this->t('The timestamp the latest revision of this node was created.'),
 | 
			
		||||
    ];
 | 
			
		||||
    return $fields;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * {@inheritdoc}
 | 
			
		||||
   */
 | 
			
		||||
  public function getIds() {
 | 
			
		||||
    $ids['nid']['type'] = 'integer';
 | 
			
		||||
    $ids['nid']['alias'] = 'n';
 | 
			
		||||
    return $ids;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user