4e7cd881d30cdffee764b105dc9db8b630e47ab8
[yaffs-website] / web / core / modules / datetime / src / Plugin / migrate / field / d6 / DateField.php
1 <?php
2
3 namespace Drupal\datetime\Plugin\migrate\field\d6;
4
5 @trigger_error('DateField is deprecated in Drupal 8.4.x and will be removed before Drupal 9.0.x. Use \Drupal\datetime\Plugin\migrate\field\DateField instead.', E_USER_DEPRECATED);
6
7 use Drupal\migrate\Plugin\MigrationInterface;
8 use Drupal\migrate\MigrateException;
9 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
10
11 /**
12  * @MigrateField(
13  *   id = "date",
14  *   type_map = {
15  *     "date" = "datetime",
16  *     "datestamp" =  "timestamp",
17  *     "datetime" =  "datetime",
18  *   },
19  *   core = {6},
20  *   source_module = "date",
21  *   destination_module = "datetime"
22  * )
23  *
24  * @deprecated in Drupal 8.4.x, to be removed before Drupal 9.0.x. Use
25  * \Drupal\datetime\Plugin\migrate\field\DateField instead.
26  */
27 class DateField extends FieldPluginBase {
28
29   /**
30    * {@inheritdoc}
31    */
32   public function getFieldWidgetMap() {
33     return [
34       'date' => 'datetime_default',
35       'datetime' => 'datetime_default',
36       'datestamp' => 'datetime_timestamp',
37     ];
38   }
39
40   /**
41    * {@inheritdoc}
42    */
43   public function processFieldValues(MigrationInterface $migration, $field_name, $data) {
44     switch ($data['type']) {
45       case 'date':
46         $from_format = 'Y-m-d\TH:i:s';
47         $to_format = 'Y-m-d\TH:i:s';
48         break;
49       case 'datestamp':
50         $from_format = 'U';
51         $to_format = 'U';
52         break;
53       case 'datetime':
54         $from_format = 'Y-m-d H:i:s';
55         $to_format = 'Y-m-d\TH:i:s';
56         break;
57       default:
58         throw new MigrateException(sprintf('Field %s of type %s is an unknown date field type.', $field_name, var_export($data['type'], TRUE)));
59     }
60     $process = [
61       'value' => [
62         'plugin' => 'format_date',
63         'from_format' => $from_format,
64         'to_format' => $to_format,
65         'source' => 'value',
66       ],
67     ];
68
69     $process = [
70       'plugin' => 'sub_process',
71       'source' => $field_name,
72       'process' => $process,
73     ];
74     $migration->mergeProcessOfProperty($field_name, $process);
75   }
76
77 }