Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 88 |
FieldFormatterSettingsDefaults | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
42 | |
0.00% |
0 / 88 |
transform | |
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 14 |
|||
numberSettings | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 74 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\field\Plugin\migrate\process\d6\FieldFormatterSettingsDefaults. | |
*/ | |
namespace Drupal\field\Plugin\migrate\process\d6; | |
use Drupal\migrate\ProcessPluginBase; | |
use Drupal\migrate\MigrateExecutableInterface; | |
use Drupal\migrate\Row; | |
/** | |
* Set the default field settings. | |
* | |
* @MigrateProcessPlugin( | |
* id = "field_formatter_settings_defaults" | |
* ) | |
*/ | |
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 = array('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 = array(); | |
} | |
} | |
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] : []; | |
} | |
} |