t('Simple date'), 'from' => t('From date'), 'to' => t('To date'), // 'ical' => 'iCal array of dates', // maybe? ); case 'map': include_once(drupal_get_path('module', 'date_api') .'/date_api_ical.inc'); $db_tz = date_get_timezone_db($field['tz_handling'], $feed_element['tz']); $to_tz = date_get_timezone($field['tz_handling'], $feed_element['tz']); // iCal is the only array that can be handled at the moment // @todo RRULE - date_repeat module if (is_array($feed_element) && isset($feed_element['datetime'])) { $date = date_ical_date($feed_element, $feed_element['tz']); } elseif (is_numeric($feed_element)) { $date = date_make_date($feed_element, $feed_element['tz'], DATE_UNIX); } date_timezone_set($date, timezone_open($db_tz)); switch ($field['type']) { case DATE_ISO: $format = DATE_FORMAT_ISO; break; case DATE_UNIX: $format = DATE_FORMAT_UNIX; break; case DATE_DATETIME: $format = DATE_FORMAT_DATETIME; break; } if ($formatted = date_format($date, $format)) { if ($sub_field == 'to') { $value_field = 'value2'; $offset_field = 'offset2'; } else { $value_field = 'value'; $offset_field = 'offset'; } // Create node field information. $items = isset($node->$field_name) ? $node->$field_name : array(); $items[0][$value_field] = $formatted; if ($field['tz_handling'] == 'date') { $items[0]['timezone'] = $to_tz; date_timezone_set($date, timezone_open($to_tz)); $items[0][$offset_field] = date_offset_get($date); } $node->$field_name = $items; } return $node; } }