You are here

public function FieldOptionTranslation::transform in Drupal 9

Same name in this branch
  1. 9 core/modules/field/src/Plugin/migrate/process/d6/FieldOptionTranslation.php \Drupal\field\Plugin\migrate\process\d6\FieldOptionTranslation::transform()
  2. 9 core/modules/field/src/Plugin/migrate/process/d7/FieldOptionTranslation.php \Drupal\field\Plugin\migrate\process\d7\FieldOptionTranslation::transform()
Same name and namespace in other branches
  1. 8 core/modules/field/src/Plugin/migrate/process/d7/FieldOptionTranslation.php \Drupal\field\Plugin\migrate\process\d7\FieldOptionTranslation::transform()

Get the field default/mapped settings.

Overrides ProcessPluginBase::transform

File

core/modules/field/src/Plugin/migrate/process/d7/FieldOptionTranslation.php, line 24

Class

FieldOptionTranslation
Determines the allowed values translation for select lists.

Namespace

Drupal\field\Plugin\migrate\process\d7

Code

public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
  list($type, $data) = $value;
  $data = unserialize($data);
  $new_allowed_values = '';
  $translation_key = $row
    ->getSourceProperty('property');
  if (isset($data['settings']['allowed_values'])) {
    $allowed_values = $data['settings']['allowed_values'];
    switch ($type) {
      case 'list_string':
      case 'list_integer':
      case 'list_float':
      case 'list_text':
        if (isset($allowed_values[$translation_key])) {
          $new_allowed_values = [
            'label' => $row
              ->getSourceProperty('translation'),
          ];
          $translation_key = array_search($translation_key, array_keys($allowed_values));
          break;
        }
        break;
      default:
        $new_allowed_values = $allowed_values;
    }
  }
  return [
    "settings.allowed_values.{$translation_key}",
    $new_allowed_values,
  ];
}