class PathSetTranslated
Same name in other branches
- 8.9.x core/modules/path/src/Plugin/migrate/process/PathSetTranslated.php \Drupal\path\Plugin\migrate\process\PathSetTranslated
- 10 core/modules/path/src/Plugin/migrate/process/PathSetTranslated.php \Drupal\path\Plugin\migrate\process\PathSetTranslated
- 11.x core/modules/path/src/Plugin/migrate/process/PathSetTranslated.php \Drupal\path\Plugin\migrate\process\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>'
Plugin annotation
@MigrateProcessPlugin(
id = "path_set_translated"
)
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
- class \Drupal\migrate\ProcessPluginBase extends \Drupal\Core\Plugin\PluginBase implements \Drupal\migrate\Plugin\MigrateProcessInterface
- class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
Expanded class hierarchy of PathSetTranslated
1 file declares its use of PathSetTranslated
- PathSetTranslatedTest.php in core/
modules/ path/ tests/ src/ Unit/ migrate/ process/ PathSetTranslatedTest.php
File
-
core/
modules/ path/ src/ Plugin/ migrate/ process/ PathSetTranslated.php, line 57
Namespace
Drupal\path\Plugin\migrate\processView 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. | 6 | |
PluginInspectionInterface::getPluginId | public | function | Gets the plugin_id of the plugin instance. | 2 | |
ProcessPluginBase::multiple | public | function | Indicates whether the returned value requires multiple handling. | Overrides MigrateProcessInterface::multiple | 3 |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.