From: defacer Date: Thu, 22 Apr 2004 09:02:23 +0000 (+0000) Subject: Addressing bug 1257: X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=1b0ebe79b1b3370ed7644594ec8a5280f6b054c3;p=moodle.git Addressing bug 1257: Changed the handling of time display format; now it's read from the language file by default, and a new preference has been added to allow each user to manually specify his preferred time format. --- diff --git a/calendar/lib.php b/calendar/lib.php index 010fc016cb..6a0d6710cf 100644 --- a/calendar/lib.php +++ b/calendar/lib.php @@ -50,6 +50,8 @@ define ('SECS_IN_DAY', 86400); define ('CALENDAR_UPCOMING_DAYS', 14); define ('CALENDAR_UPCOMING_MAXEVENTS', 10); define ('CALENDAR_URL', $CFG->wwwroot.'/calendar/'); +define ('CALENDAR_TF_24', '%H:%M'); +define ('CALENDAR_TF_12', '%I:%M %p'); function calendar_get_mini($courses, $groups, $users, $cal_month = false, $cal_year = false) { global $CFG, $USER; @@ -674,7 +676,13 @@ function calendar_day_representation($tstamp, $now = false, $usecommonwords = tr } function calendar_time_representation($time) { - return userdate($time, '%H:%M'); + static $langtimeformat = NULL; + if($langtimeformat === NULL) { + $langtimeformat = get_string('strftimetime'); + } + $timeformat = get_user_preferences('calendar_timeformat'); + // The ? is needed because the preference might be present, but empty + return userdate($time, empty($timeformat) ? $langtimeformat : $timeformat); } function calendar_get_link_href($linkbase, $d, $m, $y) { @@ -1160,6 +1168,7 @@ function calendar_preferences_array() { 'startwday' => get_string('pref_startwday', 'calendar'), 'maxevents' => get_string('pref_maxevents', 'calendar'), 'lookahead' => get_string('pref_lookahead', 'calendar'), + 'timeformat' => get_string('pref_timeformat', 'calendar'), ); } diff --git a/calendar/preferences.php b/calendar/preferences.php index 16b525d35d..c49838c708 100644 --- a/calendar/preferences.php +++ b/calendar/preferences.php @@ -66,6 +66,18 @@ if($_GET['commit']) { switch($_GET['edit']) { + case 'timeformat': + if($_GET['timeformat'] == '12') { + $timeformat = CALENDAR_TF_12; + } + else if($_GET['timeformat'] == '24') { + $timeformat = CALENDAR_TF_24; + } + else { + $timeformat = ''; + } + set_user_preference('calendar_'.$_GET['edit'], $timeformat); + break; case 'startwday': $day = intval($_GET[$_GET['edit']]); if($day < 0 || $day > 6) { @@ -192,6 +204,24 @@ } switch($_GET['edit']) { + case 'timeformat': + $sel = array('default' => ' selected="selected"', '12' => '', '24' => ''); + switch(get_user_preferences('calendar_timeformat', '')) { + case CALENDAR_TF_12: + $sel['12'] = $sel['default']; + $sel['default'] = ''; + break; + case CALENDAR_TF_24: + $sel['24'] = $sel['default']; + $sel['default'] = ''; + break; + } + echo ''; + break; case 'startwday': echo ''; $days = array( @@ -227,6 +257,17 @@ get_string('thursday', 'calendar'), get_string('friday', 'calendar'), get_string('saturday', 'calendar')); $values['startwday'] = $days[$values['startwday']]; + switch($values['timeformat']) { + case '': + $values['timeformat'] = get_string('default', 'calendar'); + break; + case CALENDAR_TF_12: + $values['timeformat'] = get_string('timeformat_12', 'calendar'); + break; + case CALENDAR_TF_24: + $values['timeformat'] = get_string('timeformat_24', 'calendar'); + break; + } // OK, display them foreach($prefs as $name => $description) { diff --git a/lang/el/calendar.php b/lang/el/calendar.php index 40caeb2532..fb1ede3cb1 100644 --- a/lang/el/calendar.php +++ b/lang/el/calendar.php @@ -33,6 +33,7 @@ $string['expired'] = ' $string['explain_lookahead'] = 'Ï áñéèìüò áõôüò êáèïñßæåé ôï ðüóåò ìÝñåò óôï ìÝëëïí (ôï ðïëý) ðñÝðåé íá îåêéíÜ êÜðïéï ãåãïíüò ãéá íá åéäïðïéçèåßôå üôé åßíáé åðéêåßìåíï. Ãåãïíüôá ðïõ îåêéíïýí áñãüôåñá óôï ìÝëëïí äåí èá åìöáíßæïíôáé ùò åðéêåßìåíá. ÐñïóÝîôå üôé äåí åßíáé åããõçìÝíï üôé èá åìöáíéóôïýí üëá ôá ãåãïíüôá óôï ÷ñïíéêü áõôü äéÜóôçìá, êáé áí åßíáé ðÜñá ðïëëÜ (ðåñéóóüôåñá áðü ôçí ðñïôßìçóÞ óáò \"Åðéêåßìåíá ãåãïíüôá\") ôüôå ôá ðéï ìåëëïíôéêÜ äåí èá åìöáíéóôïýí.'; $string['explain_maxevents'] = 'Ï áñéèìüò áõôüò êáèïñßæåé ôï ìÝãéóôï áñéèìü áðü åðéêåßìåíá ãåãïíüôá ðïõ èá åðéôñÝðåôáé íá åìöáíßæåôáé êÜèå öïñÜ. Áí åðéëÝîåôå ðÜñá ðïëëÜ, ìðïñåß íá êáôáëáìâÜíïõí ðïëý ÷þñï óôçí ïèüíç.'; $string['explain_startwday'] = 'Ç ðñþôç ìÝñá ôçò åâäïìÜäáò êáèïñßæåé áðü ôï ðïéÜ ìÝñá èá îåêéíÜåé êÜèå åâäïìÜäá ïðïõäÞðïôå âëÝðåôå ìçíéáßï çìåñïëüãéï. ×ñçóéìïðïéÞóôå ôçí ãéá íá ðñïóáñìüóåôå ôçí åìöÜíéóç ôïõ çìåñïëïãßïõ óôéò ðñïôéìÞóåéò óáò.'; +$string['explain_timeformat'] = 'Åäþ ìðïñåßôå íá åðéëÝîåôå ôç ìïñöÞ ìå ôçí ïðïßá èá åìöáíßæïíôáé ïé þñåò óôï çìåñïëüãéï. Ïé åðéëïãÝò ãéá 12ùñç êáé 24ùñç ìïñöÞ åìöáíßæïõí üëåò ôéò þñåò óôç ìïñöÞ áõôÞ. Ìå ôçí åðéëïãÞ \"åî\' ïñéóìïý\" èá ÷ñçóéìïðïéåßôáé áõôüìáôá ç ìïñöÞ áðåéêüíéóçò ðïõ Ý÷åé ïñéóôåß ãéá ôç ãëþóóá óôçí ïðïßá âëÝðåôå ôç óåëßäá.'; $string['globalevents'] = 'Ãåãïíüôá óõóôÞìáôïò'; $string['groupevents'] = 'ÏìáäéêÜ ãåãïíüôá'; $string['hidden'] = 'äåí öáßíïíôáé'; @@ -44,10 +45,13 @@ $string['oneevent'] = '1 $string['pref_lookahead'] = 'ÌÝñåò óôï ìÝëëïí'; $string['pref_maxevents'] = 'Åðéêåßìåíá ãåãïíüôá'; $string['pref_startwday'] = 'Ðñþôç ìÝñá åâäïìÜäáò'; +$string['pref_timeformat'] = 'ÌïñöÞ åìöÜíéóçò þñáò'; $string['preferences'] = 'ÐñïôéìÞóåéò'; $string['preferences_available'] = 'ÄéáèÝóéìåò ðñïóùðéêÝò ðñïôéìÞóåéò'; $string['shown'] = 'öáßíïíôáé'; $string['spanningevents'] = 'Ãåãïíüôá óå åîÝëéîç'; +$string['timeformat_12'] = '12ùñç (ðì/ìì)'; +$string['timeformat_24'] = '24ùñç'; $string['today'] = 'ÓÞìåñá'; $string['tomorrow'] = 'Áýñéï'; $string['tt_deleteevent'] = 'ÄéáãñáöÞ ãåãïíüôïò'; diff --git a/lang/en/calendar.php b/lang/en/calendar.php index 8fa8f865a6..83d4adee40 100644 --- a/lang/en/calendar.php +++ b/lang/en/calendar.php @@ -33,6 +33,7 @@ $string['expired'] = 'Expired'; $string['explain_lookahead'] = 'This preference sets the (maximum) number of days in the future that an event has to start in in order to be displayed as an upcoming event. Events that start later in the future will never be displayed as upcoming. Please note that there is no guarantee that all events starting in this time frame will be displayed; if they are too many (more than the \"Maximum upcoming events\" preference) then the most distant events will not be displayed.'; $string['explain_maxevents'] = 'This preference sets the maximum number of upcoming events that can be displayed. If you pick a large number here, it is possible that upcoming events displays will take up a lot of space on your screen.'; $string['explain_startwday'] = 'This preference configures the way that all monthly calendars are displayed. Use it to make them be displayed in the way you are accustomed to.'; +$string['explain_timeformat'] = 'This preference controls the way that times are displayed in the calendar. You can choose to see times in either 12 or 24 hour format. If you choose \"default\", then the format will be automatically chosen according to the language you use in the site.'; $string['globalevents'] = 'Global events'; $string['groupevents'] = 'Group events'; $string['hidden'] = 'hidden'; @@ -44,10 +45,13 @@ $string['oneevent'] = '1 event'; $string['pref_lookahead'] = 'Upcoming events look-ahead'; $string['pref_maxevents'] = 'Maximum upcoming events'; $string['pref_startwday'] = 'First day of week'; +$string['pref_timeformat'] = 'Time display format'; $string['preferences'] = 'Preferences'; $string['preferences_available'] = 'Your personal preferences'; $string['shown'] = 'shown'; $string['spanningevents'] = 'Events underway'; +$string['timeformat_12'] = '12-hour (am/pm)'; +$string['timeformat_24'] = '24-hour'; $string['today'] = 'Today'; $string['tomorrow'] = 'Tomorrow'; $string['tt_deleteevent'] = 'Delete event';