diff options
author | thomascube <thomas@roundcube.net> | 2011-09-12 19:56:12 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2011-09-12 19:56:12 +0000 |
commit | 1cc9e210f5cb340599062ae9cee15cdc9ebd77a7 (patch) | |
tree | 7757e25c7e38d9542ca849e4e2c053362854e84d /program | |
parent | 891b3c13e0ce9e0c56fb47a555f19a7975311748 (diff) |
Make date/time format user configurable; drop 'date_today' config option
Diffstat (limited to 'program')
-rw-r--r-- | program/include/main.inc | 6 | ||||
-rw-r--r-- | program/localization/de_CH/labels.inc | 2 | ||||
-rw-r--r-- | program/localization/de_DE/labels.inc | 2 | ||||
-rw-r--r-- | program/localization/en_US/labels.inc | 2 | ||||
-rw-r--r-- | program/steps/settings/func.inc | 27 | ||||
-rw-r--r-- | program/steps/settings/save_prefs.inc | 8 |
6 files changed, 44 insertions, 3 deletions
diff --git a/program/include/main.inc b/program/include/main.inc index 909d0a5f2..452505f07 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -1055,13 +1055,13 @@ function format_date($date, $format=NULL) // define date format depending on current time if (!$format) { if ($CONFIG['prettydate'] && $timestamp > $today_limit && $timestamp < $now) { - $format = $CONFIG['date_today'] ? $CONFIG['date_today'] : 'H:i'; + $format = $RCMAIL->config->get('date_today', $RCMAIL->config->get('time_format', 'H:i')); $today = true; } else if ($CONFIG['prettydate'] && $timestamp > $week_limit && $timestamp < $now) - $format = $CONFIG['date_short'] ? $CONFIG['date_short'] : 'D H:i'; + $format = $RCMAIL->config->get('date_short', 'D H:i'); else - $format = $CONFIG['date_long'] ? $CONFIG['date_long'] : 'd.m.Y H:i'; + $format = $RCMAIL->config->get('date_long', 'Y-m-d H:i'); } // strftime() format diff --git a/program/localization/de_CH/labels.inc b/program/localization/de_CH/labels.inc index 7ff675e01..d5bcf5683 100644 --- a/program/localization/de_CH/labels.inc +++ b/program/localization/de_CH/labels.inc @@ -296,6 +296,8 @@ $labels['edititem'] = 'Eintrag bearbeiten'; $labels['preferhtml'] = 'HTML bevorzugen'; $labels['defaultcharset'] = 'Standard-Zeichensatz'; $labels['htmlmessage'] = 'HTML Nachricht'; +$labels['dateformat'] = 'Datumsformat'; +$labels['timeformat'] = 'Zeitformat'; $labels['prettydate'] = 'Kurze Datumsanzeige'; $labels['setdefault'] = 'Als Standard'; $labels['autodetect'] = 'Automatisch'; diff --git a/program/localization/de_DE/labels.inc b/program/localization/de_DE/labels.inc index b3fe64249..f1892e475 100644 --- a/program/localization/de_DE/labels.inc +++ b/program/localization/de_DE/labels.inc @@ -279,6 +279,8 @@ $labels['edititem'] = 'Eintrag bearbeiten'; $labels['preferhtml'] = 'HTML anzeigen'; $labels['defaultcharset'] = 'Standard Zeichensatz'; $labels['htmlmessage'] = 'HTML-Nachricht'; +$labels['dateformat'] = 'Datumsformatierung'; +$labels['timeformat'] = 'Zeitformatierung'; $labels['prettydate'] = 'Kurze Datumsanzeige'; $labels['setdefault'] = 'Als Standard'; $labels['autodetect'] = 'Automatisch'; diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc index 9363c994f..5cf5acff1 100644 --- a/program/localization/en_US/labels.inc +++ b/program/localization/en_US/labels.inc @@ -357,6 +357,8 @@ $labels['edititem'] = 'Edit item'; $labels['preferhtml'] = 'Display HTML'; $labels['defaultcharset'] = 'Default Character Set'; $labels['htmlmessage'] = 'HTML Message'; +$labels['dateformat'] = 'Date format'; +$labels['timeformat'] = 'Time format'; $labels['prettydate'] = 'Pretty dates'; $labels['setdefault'] = 'Set default'; $labels['autodetect'] = 'Auto'; diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index 9e6b601a1..e6fd9109d 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -237,6 +237,33 @@ function rcmail_user_prefs($current=null) ); } + // date/time formatting + if (!isset($no_override['time_format'])) { + $reftime = mktime(7,30,0); + $field_id = 'rcmfd_time_format'; + $select_time = new html_select(array('name' => '_time_format', 'id' => $field_id)); + foreach ((array)$RCMAIL->config->get('time_formats', array('G:i', 'H:i', 'g:i a', 'h:i A')) as $choice) + $select_time->add(date($choice, $reftime), $choice); + + $blocks['main']['options']['time_format'] = array( + 'title' => html::label($field_id, Q(rcube_label('timeformat'))), + 'content' => $select_time->show($RCMAIL->config->get('time_format')), + ); + } + + if (!isset($no_override['date_format'])) { + $refdate = mktime(12,30,0,7,24); + $field_id = 'rcmfd_date_format'; + $select_date = new html_select(array('name' => '_date_format', 'id' => $field_id)); + foreach ((array)$RCMAIL->config->get('date_formats', array('Y-m-d','d-m-Y','Y/m/d','m/d/Y','d/m/Y','d.m.Y','j.n.Y')) as $choice) + $select_date->add(date($choice, $refdate), $choice); + + $blocks['main']['options']['date_format'] = array( + 'title' => html::label($field_id, Q(rcube_label('dateformat'))), + 'content' => $select_date->show($config['date_format']), + ); + } + // MM: Show checkbox for toggling 'pretty dates' if (!isset($no_override['prettydate'])) { $field_id = 'rcmfd_prettydate'; diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc index 7155575fc..a32f5948c 100644 --- a/program/steps/settings/save_prefs.inc +++ b/program/steps/settings/save_prefs.inc @@ -32,9 +32,17 @@ switch ($CURR_SECTION) 'timezone' => isset($_POST['_timezone']) ? (is_numeric($_POST['_timezone']) ? floatval($_POST['_timezone']) : get_input_value('_timezone', RCUBE_INPUT_POST)) : $CONFIG['timezone'], 'dst_active' => isset($_POST['_dst_active']) ? TRUE : FALSE, 'pagesize' => is_numeric($_POST['_pagesize']) ? max(2, intval($_POST['_pagesize'])) : $CONFIG['pagesize'], + 'date_format' => isset($_POST['_date_format']) ? get_input_value('_date_format', RCUBE_INPUT_POST) : $CONFIG['date_format'], + 'time_format' => isset($_POST['_time_format']) ? get_input_value('_time_format', RCUBE_INPUT_POST) : ($CONFIG['time_format'] ? $CONFIG['time_format'] : 'H:i'), 'prettydate' => isset($_POST['_pretty_date']) ? TRUE : FALSE, 'skin' => isset($_POST['_skin']) ? get_input_value('_skin', RCUBE_INPUT_POST) : $CONFIG['skin'], ); + + // compose derived date/time format strings + if ((isset($_POST['_date_format']) || isset($_POST['_time_format'])) && $a_user_prefs['date_format'] && $a_user_prefs['time_format']) { + $a_user_prefs['date_short'] = 'D ' . $a_user_prefs['time_format']; + $a_user_prefs['date_long'] = $a_user_prefs['date_format'] . ' ' . $a_user_prefs['time_format']; + } break; |