class FieldFormatterSettingsDefaults

Same name in other branches
  1. 9 core/modules/field/src/Plugin/migrate/process/d6/FieldFormatterSettingsDefaults.php \Drupal\field\Plugin\migrate\process\d6\FieldFormatterSettingsDefaults
  2. 10 core/modules/field/src/Plugin/migrate/process/d6/FieldFormatterSettingsDefaults.php \Drupal\field\Plugin\migrate\process\d6\FieldFormatterSettingsDefaults
  3. 11.x core/modules/field/src/Plugin/migrate/process/d6/FieldFormatterSettingsDefaults.php \Drupal\field\Plugin\migrate\process\d6\FieldFormatterSettingsDefaults

Set the default field settings.

Plugin annotation


@MigrateProcessPlugin(
  id = "field_formatter_settings_defaults"
)

Hierarchy

Expanded class hierarchy of FieldFormatterSettingsDefaults

File

core/modules/field/src/Plugin/migrate/process/d6/FieldFormatterSettingsDefaults.php, line 16

Namespace

Drupal\field\Plugin\migrate\process\d6
View source
class FieldFormatterSettingsDefaults extends ProcessPluginBase {
    
    /**
     * {@inheritdoc}
     *
     * Set field formatter settings when the map didn't map: for date
     * formatters, the fallback format, for everything else, empty array.
     */
    public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
        // If the 1 index is set then the map missed.
        if (isset($value[1])) {
            $module = $row->getSourceProperty('module');
            if ($module === 'date') {
                $value = [
                    'format_type' => 'fallback',
                ];
            }
            elseif ($module === 'number') {
                // We have to do the lookup here in the process plugin because for
                // number we need to calculated the settings based on the type not just
                // the module which works well for other field types.
                return $this->numberSettings($row->getDestinationProperty('options/type'), $value[1]);
            }
            else {
                $value = [];
            }
        }
        return $value;
    }
    
    /**
     * @param string $type
     *   The field type.
     * @param $format
     *   The format selected for the field on the display.
     *
     * @return array
     *   The correct default settings.
     *
     * @throws \Drupal\migrate\MigrateException
     */
    protected function numberSettings($type, $format) {
        $map = [
            'number_decimal' => [
                'us_0' => [
                    'scale' => 0,
                    'decimal_separator' => '.',
                    'thousand_separator' => ',',
                    'prefix_suffix' => TRUE,
                ],
                'us_1' => [
                    'scale' => 1,
                    'decimal_separator' => '.',
                    'thousand_separator' => ',',
                    'prefix_suffix' => TRUE,
                ],
                'us_2' => [
                    'scale' => 2,
                    'decimal_separator' => '.',
                    'thousand_separator' => ',',
                    'prefix_suffix' => TRUE,
                ],
                'be_0' => [
                    'scale' => 0,
                    'decimal_separator' => ',',
                    'thousand_separator' => '.',
                    'prefix_suffix' => TRUE,
                ],
                'be_1' => [
                    'scale' => 1,
                    'decimal_separator' => ',',
                    'thousand_separator' => '.',
                    'prefix_suffix' => TRUE,
                ],
                'be_2' => [
                    'scale' => 2,
                    'decimal_separator' => ',',
                    'thousand_separator' => '.',
                    'prefix_suffix' => TRUE,
                ],
                'fr_0' => [
                    'scale' => 0,
                    'decimal_separator' => ',',
                    'thousand_separator' => ' ',
                    'prefix_suffix' => TRUE,
                ],
                'fr_1' => [
                    'scale' => 1,
                    'decimal_separator' => ',',
                    'thousand_separator' => ' ',
                    'prefix_suffix' => TRUE,
                ],
                'fr_2' => [
                    'scale' => 2,
                    'decimal_separator' => ',',
                    'thousand_separator' => ' ',
                    'prefix_suffix' => TRUE,
                ],
            ],
            'number_integer' => [
                'us_0' => [
                    'thousand_separator' => ',',
                    'prefix_suffix' => TRUE,
                ],
                'be_0' => [
                    'thousand_separator' => '.',
                    'prefix_suffix' => TRUE,
                ],
                'fr_0' => [
                    'thousand_separator' => ' ',
                    'prefix_suffix' => TRUE,
                ],
            ],
        ];
        return isset($map[$type][$format]) ? $map[$type][$format] : [];
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
FieldFormatterSettingsDefaults::numberSettings protected function
FieldFormatterSettingsDefaults::transform public function Set field formatter settings when the map didn't map: for date
formatters, the fallback format, for everything else, empty array.
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.