Version 1
[yaffs-website] / web / core / modules / path / src / Plugin / migrate / source / UrlAliasBase.php
diff --git a/web/core/modules/path/src/Plugin/migrate/source/UrlAliasBase.php b/web/core/modules/path/src/Plugin/migrate/source/UrlAliasBase.php
new file mode 100644 (file)
index 0000000..7714cbd
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+
+namespace Drupal\path\Plugin\migrate\source;
+
+use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
+
+/**
+ * Base class for the url_alias source plugins.
+ */
+abstract class UrlAliasBase extends DrupalSqlBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function query() {
+    // The order of the migration is significant since
+    // \Drupal\Core\Path\AliasStorage::lookupPathAlias() orders by pid before
+    // returning a result. Postgres does not automatically order by primary key
+    // therefore we need to add a specific order by.
+    return $this->select('url_alias', 'ua')->fields('ua')->orderBy('pid');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function fields() {
+    return [
+      'pid' => $this->t('The numeric identifier of the path alias.'),
+      'language' => $this->t('The language code of the URL alias.'),
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getIds() {
+    $ids['pid']['type'] = 'integer';
+    return $ids;
+  }
+
+}