function FieldInstanceSettings::transform

Same name in this branch
  1. 9 core/modules/field/src/Plugin/migrate/process/d7/FieldInstanceSettings.php \Drupal\field\Plugin\migrate\process\d7\FieldInstanceSettings::transform()
Same name in other branches
  1. 8.9.x core/modules/field/src/Plugin/migrate/process/d6/FieldInstanceSettings.php \Drupal\field\Plugin\migrate\process\d6\FieldInstanceSettings::transform()
  2. 8.9.x core/modules/field/src/Plugin/migrate/process/d7/FieldInstanceSettings.php \Drupal\field\Plugin\migrate\process\d7\FieldInstanceSettings::transform()
  3. 10 core/modules/field/src/Plugin/migrate/process/d6/FieldInstanceSettings.php \Drupal\field\Plugin\migrate\process\d6\FieldInstanceSettings::transform()
  4. 10 core/modules/field/src/Plugin/migrate/process/d7/FieldInstanceSettings.php \Drupal\field\Plugin\migrate\process\d7\FieldInstanceSettings::transform()
  5. 11.x core/modules/field/src/Plugin/migrate/process/d6/FieldInstanceSettings.php \Drupal\field\Plugin\migrate\process\d6\FieldInstanceSettings::transform()
  6. 11.x core/modules/field/src/Plugin/migrate/process/d7/FieldInstanceSettings.php \Drupal\field\Plugin\migrate\process\d7\FieldInstanceSettings::transform()

Set the field instance defaults.

Overrides ProcessPluginBase::transform

File

core/modules/field/src/Plugin/migrate/process/d6/FieldInstanceSettings.php, line 23

Class

FieldInstanceSettings
Plugin annotation @MigrateProcessPlugin( id = "d6_field_field_settings" )

Namespace

Drupal\field\Plugin\migrate\process\d6

Code

public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
    [
        $widget_type,
        $widget_settings,
        $field_settings,
    ] = $value;
    $settings = [];
    switch ($widget_type) {
        case 'number':
            $settings['min'] = $field_settings['min'];
            $settings['max'] = $field_settings['max'];
            $settings['prefix'] = $field_settings['prefix'];
            $settings['suffix'] = $field_settings['suffix'];
            break;
        case 'link':
            // $settings['url'] = $widget_settings['default_value'][0]['url'];
            // D6 has optional, required, value and none. D8 only has disabled (0)
            // optional (1) and required (2).
            $map = [
                'disabled' => 0,
                'optional' => 1,
                'required' => 2,
            ];
            $settings['title'] = $map[$field_settings['title']];
            break;
        case 'filefield_widget':
            $settings['file_extensions'] = $widget_settings['file_extensions'];
            $settings['file_directory'] = $widget_settings['file_path'];
            $settings['description_field'] = $field_settings['description_field'];
            $settings['max_filesize'] = $this->convertSizeUnit($widget_settings['max_filesize_per_file']);
            break;
        case 'imagefield_widget':
            $settings['file_extensions'] = $widget_settings['file_extensions'];
            $settings['file_directory'] = $widget_settings['file_path'];
            $settings['max_filesize'] = $this->convertSizeUnit($widget_settings['max_filesize_per_file'] ?? '');
            $settings['alt_field'] = $widget_settings['alt'];
            $settings['alt_field_required'] = $widget_settings['custom_alt'];
            $settings['title_field'] = $widget_settings['title'];
            $settings['title_field_required'] = $widget_settings['custom_title'];
            // With nothing entered for min or max resolution in Drupal 6, zero is
            // stored. For Drupal 8 this should be an empty string.
            $settings['max_resolution'] = !empty($widget_settings['max_resolution']) ? $widget_settings['max_resolution'] : '';
            $settings['min_resolution'] = !empty($widget_settings['min_resolution']) ? $widget_settings['min_resolution'] : '';
            break;
    }
    return $settings;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.