Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 39 |
FieldInstanceSettings | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
110 | |
0.00% |
0 / 39 |
transform | |
0.00% |
0 / 1 |
56 | |
0.00% |
0 / 33 |
|||
convertSizeUnit | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 6 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\field\Plugin\migrate\process\d6\FieldInstanceSettings. | |
*/ | |
namespace Drupal\field\Plugin\migrate\process\d6; | |
use Drupal\migrate\MigrateExecutableInterface; | |
use Drupal\migrate\ProcessPluginBase; | |
use Drupal\migrate\Row; | |
/** | |
* @MigrateProcessPlugin( | |
* id = "d6_field_field_settings" | |
* ) | |
*/ | |
class FieldInstanceSettings extends ProcessPluginBase { | |
/** | |
* {@inheritdoc} | |
* | |
* Set the field instance defaults. | |
*/ | |
public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) { | |
list($widget_type, $widget_settings, $field_settings) = $value; | |
$settings = array(); | |
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 = array('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; | |
} | |
/** | |
* Convert file size strings into their D8 format. | |
* | |
* D6 stores file size using a "K" for kilobytes and "M" for megabytes where | |
* as D8 uses "KB" and "MB" respectively. | |
* | |
* @param string $size_string | |
* The size string, eg 10M | |
* | |
* @return string | |
* The D8 version of the size string. | |
*/ | |
protected function convertSizeUnit($size_string) { | |
$size_unit = substr($size_string, strlen($size_string) - 1); | |
if ($size_unit == "M" || $size_unit == "K") { | |
return $size_string . "B"; | |
} | |
return $size_string; | |
} | |
} |