748eca2896244d0194d6a165cc667a4b955027a1
[yaffs-website] / web / core / modules / field / src / Plugin / migrate / process / d6 / FieldInstanceDefaults.php
1 <?php
2
3 namespace Drupal\field\Plugin\migrate\process\d6;
4
5 use Drupal\migrate\MigrateExecutableInterface;
6 use Drupal\migrate\ProcessPluginBase;
7 use Drupal\migrate\Row;
8
9 /**
10  * @MigrateProcessPlugin(
11  *   id = "d6_field_instance_defaults"
12  * )
13  */
14 class FieldInstanceDefaults extends ProcessPluginBase {
15
16   /**
17    * {@inheritdoc}
18    *
19    * Set the field instance defaults.
20    */
21   public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
22     list($widget_type, $widget_settings) = $value;
23     $default = [];
24
25     switch ($widget_type) {
26       case 'text_textfield':
27       case 'number':
28       case 'phone_textfield':
29         if (!empty($widget_settings['default_value'][0]['value'])) {
30           $default['value'] = $widget_settings['default_value'][0]['value'];
31         }
32         break;
33
34       case 'imagefield_widget':
35         // @todo, load the image and populate the defaults.
36         // $default['default_image'] = $widget_settings['default_image'];
37         break;
38
39       case 'date_select':
40         if (!empty($widget_settings['default_value'])) {
41           $default['default_date_type'] = 'relative';
42           $default['default_date'] = $widget_settings['default_value'];
43         }
44         break;
45
46       case 'email_textfield':
47         if (!empty($widget_settings['default_value'][0]['email'])) {
48           $default['value'] = $widget_settings['default_value'][0]['email'];
49         }
50         break;
51
52       case 'link':
53         if (!empty($widget_settings['default_value'][0]['url'])) {
54           $default['title'] = $widget_settings['default_value'][0]['title'];
55           $default['url'] = $widget_settings['default_value'][0]['url'];
56           $default['options'] = ['attributes' => []];
57         }
58         break;
59     }
60     if (!empty($default)) {
61       $default = [$default];
62     }
63     return $default;
64   }
65
66 }