Loading disqus.module +77 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,12 @@ use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Url; use Drupal\disqus\Plugin\migrate\DisqusDeriver; use Drupal\migrate\Exception\RequirementsException; use Drupal\migrate\Plugin\MigrateSourceInterface; use Drupal\migrate\Plugin\MigrationInterface; use Drupal\migrate\Row; use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase; use Drupal\node\NodeInterface; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Entity\ContentEntityInterface; Loading Loading @@ -290,3 +296,74 @@ function disqus_api() { } return $disqus; } /** * Implements hook_migration_plugins_alter(). */ function disqus_migration_plugins_alter(array &$migrations) { $node_migrations = array_filter( $migrations, function ($definition) { return $definition['id'] === 'd7_node' || $definition['id'] === 'd7_node_complete'; } ); $disqus_plugin = DisqusDeriver::getSourcePlugin('disqus_enabled_content_types'); assert($disqus_plugin instanceof DrupalSqlBase); try { $disqus_plugin->checkRequirements(); } catch (RequirementsException $e) { // Disqus module isn't enabled in the source instance, so we don't have to // do anything but remove the d7_disqus_settings and d7_disqus_field_storage // migrations. unset($migrations['d7_disqus_settings']); unset($migrations['d7_disqus_field_storage']); return; } $disqus_node_types = array_reduce( iterator_to_array($disqus_plugin, FALSE), function (array $carry, Row $row) { $carry[] = $row->getSourceProperty('type'); return $carry; }, [] ); foreach ($node_migrations as $plugin_id => $definition) { if ( !empty($definition['source']['node_type']) && !in_array($definition['source']['node_type'], $disqus_node_types) ) { continue; } $migrations[$plugin_id]['migration_tags'][] = 'Disqus field value'; $migrations[$plugin_id]['process']['disqus/status'] = 'disqus_status'; $migrations[$plugin_id]['process']['disqus/identifier'] = 'disqus_identifier'; } } /** * Implements hook_migrate_prepare_row(). */ function disqus_migrate_prepare_row(Row $row, MigrateSourceInterface $source, MigrationInterface $migration) { if (!in_array('Disqus field value', $migration->getMigrationTags())) { return; } $database_connection = $source->getDatabase(); $query = $database_connection->select('node', 'n') ->condition('n.nid', $row->getSourceProperty('nid')); $query->leftJoin('disqus', 'd', 'd.nid = n.nid'); $query->orderBy('n.nid'); // No entry in {disqus} table means status == 1. $query->addExpression('IF(d.status IS NULL, 1, d.status)', 'status'); $disqus_status = $query->execute()->fetchField(); $row->setSourceProperty('disqus_status', $disqus_status); $row->setSourceProperty('disqus_identifier', 'node/' . $row->getSourceProperty('tnid')); } migrations/d7_disqus_comment_status.ymldeleted 100644 → 0 +0 −20 Original line number Diff line number Diff line id: d7_disqus_comment_status label: D7 Disqus comment status migration_tags: - Drupal 7 source: plugin: disqus_comments_status process: nid: nid 'disqus/status': plugin: get source: status 'disqus/identifier': plugin: get source: identifier destination: plugin: entity:node migration_dependencies: required: - d7_node:* - d7_disqus_field migrations/d7_disqus_entity_display.yml +3 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,9 @@ langcode: en status: true id: d7_disqus_entity_display migration_tags: - 'Drupal 7' - Drupal 7 - Configuration deriver: Drupal\disqus\Plugin\migrate\DisqusDeriver label: 'Disqus display configuration' source: plugin: disqus_enabled_content_types Loading migrations/d7_disqus_entity_form_display.yml +2 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ id: d7_disqus_entity_form_display label: 'Disqus form display configuration' migration_tags: - Drupal 7 - Configuration deriver: Drupal\disqus\Plugin\migrate\DisqusDeriver source: plugin: disqus_enabled_content_types constants: Loading migrations/d7_disqus_field.yml +2 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ id: d7_disqus_field label: Drupal 7 Disqus fields migration_tags: - Drupal 7 - Configuration deriver: Drupal\disqus\Plugin\migrate\DisqusDeriver source: plugin: disqus_enabled_content_types constants: Loading Loading
disqus.module +77 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,12 @@ use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Url; use Drupal\disqus\Plugin\migrate\DisqusDeriver; use Drupal\migrate\Exception\RequirementsException; use Drupal\migrate\Plugin\MigrateSourceInterface; use Drupal\migrate\Plugin\MigrationInterface; use Drupal\migrate\Row; use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase; use Drupal\node\NodeInterface; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Entity\ContentEntityInterface; Loading Loading @@ -290,3 +296,74 @@ function disqus_api() { } return $disqus; } /** * Implements hook_migration_plugins_alter(). */ function disqus_migration_plugins_alter(array &$migrations) { $node_migrations = array_filter( $migrations, function ($definition) { return $definition['id'] === 'd7_node' || $definition['id'] === 'd7_node_complete'; } ); $disqus_plugin = DisqusDeriver::getSourcePlugin('disqus_enabled_content_types'); assert($disqus_plugin instanceof DrupalSqlBase); try { $disqus_plugin->checkRequirements(); } catch (RequirementsException $e) { // Disqus module isn't enabled in the source instance, so we don't have to // do anything but remove the d7_disqus_settings and d7_disqus_field_storage // migrations. unset($migrations['d7_disqus_settings']); unset($migrations['d7_disqus_field_storage']); return; } $disqus_node_types = array_reduce( iterator_to_array($disqus_plugin, FALSE), function (array $carry, Row $row) { $carry[] = $row->getSourceProperty('type'); return $carry; }, [] ); foreach ($node_migrations as $plugin_id => $definition) { if ( !empty($definition['source']['node_type']) && !in_array($definition['source']['node_type'], $disqus_node_types) ) { continue; } $migrations[$plugin_id]['migration_tags'][] = 'Disqus field value'; $migrations[$plugin_id]['process']['disqus/status'] = 'disqus_status'; $migrations[$plugin_id]['process']['disqus/identifier'] = 'disqus_identifier'; } } /** * Implements hook_migrate_prepare_row(). */ function disqus_migrate_prepare_row(Row $row, MigrateSourceInterface $source, MigrationInterface $migration) { if (!in_array('Disqus field value', $migration->getMigrationTags())) { return; } $database_connection = $source->getDatabase(); $query = $database_connection->select('node', 'n') ->condition('n.nid', $row->getSourceProperty('nid')); $query->leftJoin('disqus', 'd', 'd.nid = n.nid'); $query->orderBy('n.nid'); // No entry in {disqus} table means status == 1. $query->addExpression('IF(d.status IS NULL, 1, d.status)', 'status'); $disqus_status = $query->execute()->fetchField(); $row->setSourceProperty('disqus_status', $disqus_status); $row->setSourceProperty('disqus_identifier', 'node/' . $row->getSourceProperty('tnid')); }
migrations/d7_disqus_comment_status.ymldeleted 100644 → 0 +0 −20 Original line number Diff line number Diff line id: d7_disqus_comment_status label: D7 Disqus comment status migration_tags: - Drupal 7 source: plugin: disqus_comments_status process: nid: nid 'disqus/status': plugin: get source: status 'disqus/identifier': plugin: get source: identifier destination: plugin: entity:node migration_dependencies: required: - d7_node:* - d7_disqus_field
migrations/d7_disqus_entity_display.yml +3 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,9 @@ langcode: en status: true id: d7_disqus_entity_display migration_tags: - 'Drupal 7' - Drupal 7 - Configuration deriver: Drupal\disqus\Plugin\migrate\DisqusDeriver label: 'Disqus display configuration' source: plugin: disqus_enabled_content_types Loading
migrations/d7_disqus_entity_form_display.yml +2 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ id: d7_disqus_entity_form_display label: 'Disqus form display configuration' migration_tags: - Drupal 7 - Configuration deriver: Drupal\disqus\Plugin\migrate\DisqusDeriver source: plugin: disqus_enabled_content_types constants: Loading
migrations/d7_disqus_field.yml +2 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ id: d7_disqus_field label: Drupal 7 Disqus fields migration_tags: - Drupal 7 - Configuration deriver: Drupal\disqus\Plugin\migrate\DisqusDeriver source: plugin: disqus_enabled_content_types constants: Loading