Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. PathSetTranslated.php

class PathSetTranslated

A process plugin to update the path of a translated node.

Available configuration keys:

  • source: An array of two values, the first being the original path, and the second being an array of the format [nid, langcode] if a translated node exists (likely from a migration lookup). Paths not of the format '/node/<nid>' will pass through unchanged, as will any inputs with invalid or missing translated nodes.

This plugin will return the correct path for the translated node if the above conditions are met, and will return the original path otherwise.

Example: node_translation: - plugin: explode source: source delimiter: / - # If the source path has no slashes return a dummy default value. plugin: extract default: 'INVALID_NID' index:

  • 1

- plugin: migration_lookup migration: d7_node_translation _path: plugin: concat source:

  • constants/slash
  • source

path: plugin: path_set_translated source:

  • '@_path'
  • '@node_translation'

In the example above, if the node_translation lookup succeeds and the original path is of the format '/node/<original node nid>', then the new path will be set to '/node/<translated node nid>'

Hierarchy

  • class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
    • class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
      • class \Drupal\migrate\ProcessPluginBase extends \Drupal\Core\Plugin\PluginBase implements \Drupal\migrate\Plugin\MigrateProcessInterface
        • class \Drupal\path\Plugin\migrate\process\PathSetTranslated extends \Drupal\migrate\ProcessPluginBase

Expanded class hierarchy of PathSetTranslated

File

core/modules/path/src/Plugin/migrate/process/PathSetTranslated.php, line 54

Namespace

Drupal\path\Plugin\migrate\process
View source
class PathSetTranslated extends ProcessPluginBase {
    
    /**
     * {@inheritdoc}
     */
    public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
        if (!is_array($value)) {
            throw new MigrateException("The input value should be an array.");
        }
        $path = $value[0] ?? '';
        $nid = is_array($value[1]) && isset($value[1][0]) ? $value[1][0] : FALSE;
        if (preg_match('/^\\/node\\/\\d+$/', $path) && $nid) {
            return '/node/' . $nid;
        }
        return $path;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
PathSetTranslated::transform public function Performs the associated process. Overrides ProcessPluginBase::transform
PluginInspectionInterface::getPluginDefinition public function Gets the definition of the plugin implementation. 5
PluginInspectionInterface::getPluginId public function Gets the plugin ID of the plugin instance. 2
ProcessPluginBase::$stopPipeline protected property Determines if processing of the pipeline is stopped.
ProcessPluginBase::isPipelineStopped public function Determines if the pipeline should stop processing. Overrides MigrateProcessInterface::isPipelineStopped
ProcessPluginBase::multiple public function Indicates whether the returned value requires multiple handling. Overrides MigrateProcessInterface::multiple 3
ProcessPluginBase::reset public function Resets the internal data of a plugin. Overrides MigrateProcessInterface::reset
ProcessPluginBase::stopPipeline protected function Stops pipeline processing after this plugin finishes.

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal