Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
25.00% |
1 / 4 |
CRAP | |
86.67% |
26 / 30 |
TextField | |
0.00% |
0 / 1 |
|
25.00% |
1 / 4 |
14.46 | |
86.67% |
26 / 30 |
getFieldWidgetMap | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
getFieldFormatterMap | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
processCckFieldValues | |
100.00% |
1 / 1 |
3 | |
100.00% |
12 / 12 |
|||
getFieldType | |
0.00% |
0 / 1 |
9.16 | |
87.50% |
14 / 16 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\text\Plugin\migrate\cckfield\TextField. | |
*/ | |
namespace Drupal\text\Plugin\migrate\cckfield; | |
use Drupal\migrate\Entity\MigrationInterface; | |
use Drupal\migrate\Row; | |
use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase; | |
/** | |
* @MigrateCckField( | |
* id = "text" | |
* ) | |
*/ | |
class TextField extends CckFieldPluginBase { | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getFieldWidgetMap() { | |
return [ | |
'text_textfield' => 'text_textfield', | |
]; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getFieldFormatterMap() { | |
return [ | |
'default' => 'text_default', | |
'trimmed' => 'text_trimmed', | |
'plain' => 'basic_string', | |
]; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function processCckFieldValues(MigrationInterface $migration, $field_name, $field_info) { | |
if ($field_info['widget_type'] == 'optionwidgets_onoff') { | |
$process = [ | |
'value' => [ | |
'plugin' => 'static_map', | |
'source' => 'value', | |
'default_value' => 0, | |
], | |
]; | |
$checked_value = explode("\n", $field_info['global_settings']['allowed_values'])[1]; | |
if (strpos($checked_value, '|') !== FALSE) { | |
$checked_value = substr($checked_value, 0, strpos($checked_value, '|')); | |
} | |
$process['value']['map'][$checked_value] = 1; | |
} | |
else { | |
// See \Drupal\migrate_drupal\Plugin\migrate\source\d6\User::baseFields(), | |
// signature_format for an example of the YAML that represents this | |
// process array. | |
$process = [ | |
'value' => 'value', | |
'format' => [ | |
[ | |
'plugin' => 'static_map', | |
'bypass' => TRUE, | |
'source' => 'format', | |
'map' => [0 => NULL], | |
], | |
[ | |
'plugin' => 'skip_on_empty', | |
'method' => 'process', | |
], | |
[ | |
'plugin' => 'migration', | |
'migration' => [ | |
'd6_filter_format', | |
'd7_filter_format', | |
], | |
'source' => 'format', | |
], | |
], | |
]; | |
} | |
$process = array( | |
'plugin' => 'iterator', | |
'source' => $field_name, | |
'process' => $process, | |
); | |
$migration->setProcessOfProperty($field_name, $process); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getFieldType(Row $row) { | |
$widget_type = $row->getSourceProperty('widget_type'); | |
if ($widget_type == 'text_textfield') { | |
$settings = $row->getSourceProperty('global_settings'); | |
$field_type = $settings['text_processing'] ? 'text' : 'string'; | |
if (empty($settings['max_length']) || $settings['max_length'] > 255) { | |
$field_type .= '_long'; | |
} | |
return $field_type; | |
} | |
else { | |
switch ($widget_type) { | |
case 'optionwidgets_buttons': | |
case 'optionwidgets_select': | |
return 'list_string'; | |
case 'optionwidgets_onoff': | |
return 'boolean'; | |
case 'text_textarea': | |
return 'text_long'; | |
default: | |
break; | |
} | |
} | |
} | |
} |