@@ -14,15 +14,24 @@ function date_default_formatter_settings_form($field, $instance, $view_mode, $fo
1414 $ formatter = $ display ['type ' ];
1515 $ form = array ();
1616
17+ $ date_formats = date_format_type_options ();
1718 $ form ['format_type ' ] = array (
1819 '#title ' => t ('Choose how users view dates and times: ' ),
1920 '#type ' => 'select ' ,
20- '#options ' => date_format_type_options ( ),
21+ '#options ' => $ date_formats + array ( ' custom ' => t ( ' Custom ' ) ),
2122 '#default_value ' => $ settings ['format_type ' ],
2223 '#description ' => t ('To add or edit options, visit <a href="@date-time-page">Date and time settings</a>. ' , array ('@date-time-page ' => url ('admin/config/regional/date-time ' ))),
2324 '#weight ' => 0 ,
2425 );
2526
27+ $ form ['custom_date_format ' ] = array (
28+ '#type ' => 'textfield ' ,
29+ '#title ' => t ('Custom date format ' ),
30+ '#description ' => t ('If "Custom", see the <a href="@url" target="_blank">PHP manual</a> for date formats. Otherwise, enter the number of different time units to display, which defaults to 2. ' , array ('@url ' => 'http://php.net/manual/function.date.php ' )),
31+ '#default_value ' => isset ($ settings ['custom_date_format ' ]) ? $ settings ['custom_date_format ' ] : '' ,
32+ '#dependency ' => array ('edit-options-settings-format-type ' => array ('custom ' )),
33+ );
34+
2635 $ form ['fromto ' ] = array (
2736 '#title ' => t ('Display: ' ),
2837 '#type ' => 'select ' ,
@@ -116,6 +125,14 @@ function date_interval_formatter_settings_form($field, $instance, $view_mode, $f
116125 '#default_value ' => $ settings ['interval_display ' ],
117126 '#weight ' => 0 ,
118127 );
128+ if (!empty ($ field ['settings ' ]['todate ' ])) {
129+ $ form ['use_end_date ' ] = array (
130+ '#title ' => t ('Use End date ' ),
131+ '#description ' => 'Use the End date, instead of the start date ' ,
132+ '#type ' => 'checkbox ' ,
133+ '#default_value ' => $ settings ['use_end_date ' ],
134+ );
135+ }
119136 return $ form ;
120137}
121138
@@ -186,7 +203,9 @@ function date_interval_formatter_settings_summary($field, $instance, $view_mode)
186203 $ display = $ instance ['display ' ][$ view_mode ];
187204 $ settings = $ display ['settings ' ];
188205 $ formatter = $ display ['type ' ];
189- $ summary [] = t ('Display time ago, showing @interval units. ' , array ('@interval ' => $ settings ['interval ' ]));
206+ $ field = ($ settings ['use_end_date ' ] == 1 ) ? 'End ' : 'Start ' ;
207+ $ summary [] = t ('Display time ago, showing @interval units. Using @field Date ' ,
208+ array ('@interval ' => $ settings ['interval ' ], '@field ' => $ field ));
190209
191210 return $ summary ;
192211}
@@ -273,7 +292,7 @@ function _date_field_instance_settings_form($field, $instance) {
273292/**
274293 * Form validation handler for _date_field_instance_settings_form().
275294 */
276- function date_field_instance_settings_form_validate (&$ form , &$ form_state ) {
295+ function _date_field_instance_settings_form_validate (&$ form , &$ form_state ) {
277296 $ settings = $ form_state ['values ' ]['instance ' ]['settings ' ];
278297
279298 if ($ settings ['default_value ' ] == 'strtotime ' ) {
@@ -459,7 +478,7 @@ function _date_field_widget_settings_form($field, $instance) {
459478/**
460479 * Form validation handler for _date_field_widget_settings_form().
461480 */
462- function date_field_widget_settings_form_validate (&$ form , &$ form_state ) {
481+ function _date_field_widget_settings_form_validate (&$ form , &$ form_state ) {
463482 // The widget settings are in the wrong place in the form because of #tree on
464483 // the top level.
465484 $ settings = $ form_state ['values ' ]['instance ' ]['widget ' ]['settings ' ];
@@ -561,7 +580,7 @@ function _date_field_settings_form($field, $instance, $has_data) {
561580 $ form ['cache_enabled ' ] = array (
562581 '#type ' => 'checkbox ' ,
563582 '#title ' => t ('Cache dates ' ),
564- '#description ' => t ('Date objects can be created and cached as date fields are loaded rather than when they are displayed to improve performance. ' ),
583+ '#description ' => t ('Date objects can be created and cached as date fields are loaded, rather than when they are displayed, to improve performance. ' ),
565584 '#default_value ' => !empty ($ settings ['cache_enabled ' ]),
566585 '#weight ' => 10 ,
567586 );
@@ -594,7 +613,7 @@ function _date_field_settings_form($field, $instance, $has_data) {
594613/**
595614 * Form validation handler for _date_field_settings_form().
596615 */
597- function date_field_settings_validate (&$ form , &$ form_state ) {
616+ function _date_field_settings_validate (&$ form , &$ form_state ) {
598617 $ field = &$ form_state ['values ' ]['field ' ];
599618
600619 if ($ field ['settings ' ]['tz_handling ' ] == 'none ' ) {
0 commit comments