diff -ur date-orig/date/date_admin.inc ../date/date/date_admin.inc --- date-orig/date/date_admin.inc 2009-03-03 09:16:54.000000000 -0600 +++ ../date/date/date_admin.inc 2009-05-16 18:07:01.000000000 -0500 @@ -69,7 +69,7 @@ $form['input']['default_value'] = array( '#type' => 'select', '#title' => t('Default value'), '#default_value' => !empty($widget['default_value']) ? $widget['default_value'] : 'blank', - '#options' => array('blank' => t('Blank'), 'now' => t('Now'), 'strtotime' => t('Relative')), + '#options' => array('blank' => t('Blank'), 'now' => t('Now'), 'strtotime' => t('Relative'), 'destination' => t('Destination String')), '#description' => t("A default value to use for this field. If you select 'Relative', add details below."), ); $form['input']['default_value2'] = array( @@ -712,4 +712,4 @@ ); } return $form; -} \ No newline at end of file +} diff -ur date-orig/date/date_elements.inc ../date/date/date_elements.inc --- date-orig/date/date_elements.inc 2009-05-14 09:58:04.000000000 -0500 +++ ../date/date/date_elements.inc 2009-05-16 18:06:37.000000000 -0500 @@ -193,6 +193,11 @@ $default_value = $field['widget']['default_value2']; $default_value_code = $field['widget']['default_value_code2']; } + + // Custom support for making date match that supplied on the destination url arg. + $dest_arr = array(); + preg_match('/(\d+)(?:-(\d+))?(?:-(\d+))?$/', urldecode(drupal_get_destination()), $dest_arr); + if (empty($item) || empty($item[$part])) { if (empty($default_value) || $default_value == 'blank' || $delta > 0) { return NULL; @@ -205,6 +210,16 @@ $date = date_make_date($item['value'], $timezone, DATE_DATETIME, $field['granularity']); } } + elseif ($default_value == 'destination' && count($dest_arr)) { + if (empty($dest_arr[2])) { + $dest_arr[2] = '01'; + } + if (empty($dest_arr[3])) { + $dest_arr[3] = '01'; + } + $value = date_fuzzy_datetime("$dest_arr[1]-$dest_arr[2]-$dest_arr[3] ". strftime('%T',time())); + $date = date_make_date($value, $timezone, DATE_DATETIME, $field['granularity']); + } // Special case for 'now' when using dates with no timezone, // make sure 'now' isn't adjusted to UTC value of 'now'. elseif ($field['tz_handling'] == 'none') { Only in ../date/translations: fr.po