mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 08:26:37 +02:00
New features implemented:
* Configurable defaults for the calendar upcoming events lookahead and maximum upcoming events displayed (bug #1623) * Configurable setting for which days of the week are treated as weekend (bug #1919) * Configurable setting for which day starts the week (the admin can now set this as the default for new users and guests without messing with language packs) (no butracker issue)
This commit is contained in:
parent
54598fb04e
commit
bb4a2e85c0
7 changed files with 106 additions and 14 deletions
|
@ -3,7 +3,7 @@
|
||||||
<p><input type="hidden" name="sesskey" value="<?php echo $USER->sesskey ?>"></p>
|
<p><input type="hidden" name="sesskey" value="<?php echo $USER->sesskey ?>"></p>
|
||||||
|
|
||||||
<div style="text-align: center;">
|
<div style="text-align: center;">
|
||||||
<table style="margin: auto; border: none; width: 90%;" class="formtable">
|
<table style="margin: auto;" class="formtable">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>adminseesall:</th>
|
<th>adminseesall:</th>
|
||||||
|
@ -15,6 +15,40 @@
|
||||||
</td>
|
</td>
|
||||||
<td><?php print_string('helpadminseesall', 'admin'); ?></td>
|
<td><?php print_string('helpadminseesall', 'admin'); ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>startwday:</th>
|
||||||
|
<td>
|
||||||
|
<?php choose_from_menu($weekdays, 'startwday', empty($CFG->calendar_startwday) ? 0 : $CFG->calendar_startwday, ''); ?>
|
||||||
|
</td>
|
||||||
|
<td><?php print_string('helpstartofweek', 'admin'); ?></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>weekenddays:</th>
|
||||||
|
<td>
|
||||||
|
<nobr><input type="checkbox" name="weekend[]" value="1" id="weekend1" <?php if(CALENDAR_WEEKEND & 2) echo 'checked="checked"'; ?> /> <label for="weekend1"><?php print_string('monday', 'calendar'); ?></label></nobr>
|
||||||
|
<nobr><input type="checkbox" name="weekend[]" value="2" id="weekend2" <?php if(CALENDAR_WEEKEND & 4) echo 'checked="checked"'; ?> /> <label for="weekend2"><?php print_string('tuesday', 'calendar'); ?></label></nobr>
|
||||||
|
<nobr><input type="checkbox" name="weekend[]" value="3" id="weekend3" <?php if(CALENDAR_WEEKEND & 8) echo 'checked="checked"'; ?> /> <label for="weekend3"><?php print_string('wednesday', 'calendar'); ?></label></nobr>
|
||||||
|
<nobr><input type="checkbox" name="weekend[]" value="4" id="weekend4" <?php if(CALENDAR_WEEKEND & 16) echo 'checked="checked"'; ?> /> <label for="weekend4"><?php print_string('thursday', 'calendar'); ?></label></nobr>
|
||||||
|
<nobr><input type="checkbox" name="weekend[]" value="5" id="weekend5" <?php if(CALENDAR_WEEKEND & 32) echo 'checked="checked"'; ?> /> <label for="weekend5"><?php print_string('friday', 'calendar'); ?></label></nobr>
|
||||||
|
<nobr><input type="checkbox" name="weekend[]" value="6" id="weekend6" <?php if(CALENDAR_WEEKEND & 64) echo 'checked="checked"'; ?> /> <label for="weekend6"><?php print_string('saturday', 'calendar'); ?></label></nobr>
|
||||||
|
<nobr><input type="checkbox" name="weekend[]" value="0" id="weekend0" <?php if(CALENDAR_WEEKEND & 1) echo 'checked="checked"'; ?> /> <label for="weekend0"><?php print_string('sunday', 'calendar'); ?></label></nobr>
|
||||||
|
</td>
|
||||||
|
<td><?php print_string('helpweekenddays', 'admin'); ?></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>upcoming_lookahead:</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="lookahead" size="3" value="<?php echo CALENDAR_UPCOMING_DAYS; ?>" />
|
||||||
|
</td>
|
||||||
|
<td><?php print_string('helpupcominglookahead', 'admin'); ?></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>upcoming_maxevents:</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="maxevents" size="3" value="<?php echo CALENDAR_UPCOMING_MAXEVENTS; ?>" />
|
||||||
|
</td>
|
||||||
|
<td><?php print_string('helpupcomingmaxevents', 'admin'); ?></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>dstforusers:</th>
|
<th>dstforusers:</th>
|
||||||
<td>
|
<td>
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
|
|
||||||
print_heading($strcalendarsettings);
|
print_heading($strcalendarsettings);
|
||||||
|
|
||||||
|
|
||||||
/// If data submitted, process and store
|
/// If data submitted, process and store
|
||||||
|
|
||||||
if(confirm_sesskey() && $form = data_submitted()) {
|
if(confirm_sesskey() && $form = data_submitted()) {
|
||||||
|
@ -49,8 +48,43 @@
|
||||||
}
|
}
|
||||||
set_config('calendar_dstforusers', $preset);
|
set_config('calendar_dstforusers', $preset);
|
||||||
}
|
}
|
||||||
|
if(isset($form->startwday)) {
|
||||||
|
$startwday = intval($form->startwday);
|
||||||
|
if($startwday >= 0 && $startwday <= 6) {
|
||||||
|
set_config('calendar_startwday', $startwday);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isset($form->weekend)) {
|
||||||
|
if(is_array($form->weekend)) {
|
||||||
|
// Creating a packed bitfield; look at /calendar/lib.php if you can't figure it out
|
||||||
|
$bitfield = 0;
|
||||||
|
foreach($form->weekend as $day) {
|
||||||
|
$bitfield |= (1 << (intval($day) % 7));
|
||||||
|
}
|
||||||
|
if($bitfield > 0) {
|
||||||
|
set_config('calendar_weekend', $bitfield);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isset($form->lookahead)) {
|
||||||
|
$lookahead = intval($form->lookahead);
|
||||||
|
if($lookahead > 0) {
|
||||||
|
set_config('calendar_lookahead', $lookahead);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isset($form->maxevents)) {
|
||||||
|
$maxevents = intval($form->maxevents);
|
||||||
|
if($maxevents > 0) {
|
||||||
|
set_config('calendar_maxevents', $maxevents);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Include the calendar library AFTER modifying the data, so we read the latest values
|
||||||
|
require_once('../calendar/lib.php');
|
||||||
|
|
||||||
|
// Populate some variables we 're going to need in calendar.html
|
||||||
|
|
||||||
$presets = get_records('dst_preset');
|
$presets = get_records('dst_preset');
|
||||||
if(!empty($presets)) {
|
if(!empty($presets)) {
|
||||||
foreach($presets as $id => $preset) {
|
foreach($presets as $id => $preset) {
|
||||||
|
@ -58,7 +92,17 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Main display starts here
|
$weekdays = array(
|
||||||
|
0 => get_string('sunday', 'calendar'),
|
||||||
|
1 => get_string('monday', 'calendar'),
|
||||||
|
2 => get_string('tuesday', 'calendar'),
|
||||||
|
3 => get_string('wednesday', 'calendar'),
|
||||||
|
4 => get_string('thursday', 'calendar'),
|
||||||
|
5 => get_string('friday', 'calendar'),
|
||||||
|
6 => get_string('saturday', 'calendar')
|
||||||
|
);
|
||||||
|
|
||||||
|
// Main display starts here
|
||||||
|
|
||||||
print_simple_box_start('center', '100%', $THEME->cellheading);
|
print_simple_box_start('center', '100%', $THEME->cellheading);
|
||||||
include('./calendar.html');
|
include('./calendar.html');
|
||||||
|
|
|
@ -38,16 +38,26 @@
|
||||||
// //
|
// //
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
$firstday = get_string('firstdayofweek');
|
// These are read by the administration component to provide default values
|
||||||
if(!is_numeric($firstday)) {
|
define('CALENDAR_DEFAULT_UPCOMING_LOOKAHEAD', 21);
|
||||||
define ('CALENDAR_STARTING_WEEKDAY', 1);
|
define('CALENDAR_DEFAULT_UPCOMING_MAXEVENTS', 10);
|
||||||
|
define('CALENDAR_DEFAULT_STARTING_WEEKDAY', 1);
|
||||||
|
// This is a packed bitfield: day X is "weekend" if $field & (1 << X) is true
|
||||||
|
// Default value = 65 = 64 + 1 = 2^6 + 2^0 = Saturday & Sunday
|
||||||
|
define('CALENDAR_DEFAULT_WEEKEND', 65);
|
||||||
|
|
||||||
|
// Fetch the correct values from admin settings/lang pack
|
||||||
|
// If no such settings found, use the above defaults
|
||||||
|
$firstday = isset($CFG->calendar_startwday) ? $CFG->calendar_startwday : get_string('firstdayofweek');
|
||||||
|
if(!is_numeric($firstday)) {
|
||||||
|
define ('CALENDAR_STARTING_WEEKDAY', CALENDAR_DEFAULT_STARTING_WEEKDAY);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
define ('CALENDAR_STARTING_WEEKDAY', intval($firstday) % 7);
|
define ('CALENDAR_STARTING_WEEKDAY', intval($firstday) % 7);
|
||||||
}
|
}
|
||||||
|
define ('CALENDAR_UPCOMING_DAYS', isset($CFG->calendar_lookahead) ? intval($CFG->calendar_lookahead) : CALENDAR_DEFAULT_UPCOMING_LOOKAHEAD);
|
||||||
define ('CALENDAR_UPCOMING_DAYS', 21);
|
define ('CALENDAR_UPCOMING_MAXEVENTS', isset($CFG->calendar_maxevents) ? intval($CFG->calendar_maxevents) : CALENDAR_DEFAULT_UPCOMING_MAXEVENTS);
|
||||||
define ('CALENDAR_UPCOMING_MAXEVENTS', 10);
|
define ('CALENDAR_WEEKEND', isset($CFG->calendar_weekend) ? intval($CFG->calendar_weekend) : CALENDAR_DEFAULT_WEEKEND);
|
||||||
define ('CALENDAR_URL', $CFG->wwwroot.'/calendar/');
|
define ('CALENDAR_URL', $CFG->wwwroot.'/calendar/');
|
||||||
define ('CALENDAR_TF_24', '%H:%M');
|
define ('CALENDAR_TF_24', '%H:%M');
|
||||||
define ('CALENDAR_TF_12', '%I:%M %p');
|
define ('CALENDAR_TF_12', '%I:%M %p');
|
||||||
|
@ -165,7 +175,7 @@ function calendar_get_mini($courses, $groups, $users, $cal_month = false, $cal_y
|
||||||
|
|
||||||
// Reset vars
|
// Reset vars
|
||||||
$cell = '';
|
$cell = '';
|
||||||
if($dayweek % 7 == 0 || $dayweek % 7 == 6) {
|
if(CALENDAR_WEEKEND & (1 << ($dayweek % 7))) {
|
||||||
// Weekend. This is true no matter what the exact range is.
|
// Weekend. This is true no matter what the exact range is.
|
||||||
$class = 'cal_weekend';
|
$class = 'cal_weekend';
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
<td nowrap="nowrap" align="right"><?php print_string('pref_timeformat', 'calendar')?>:</td>
|
<td nowrap="nowrap" align="right"><?php print_string('pref_timeformat', 'calendar')?>:</td>
|
||||||
<td>
|
<td>
|
||||||
<?php
|
<?php
|
||||||
$options = NULL;
|
$options = array();
|
||||||
$options['0'] = get_string('default', 'calendar');
|
$options['0'] = get_string('default', 'calendar');
|
||||||
$options[CALENDAR_TF_12] = get_string('timeformat_12', 'calendar');
|
$options[CALENDAR_TF_12] = get_string('timeformat_12', 'calendar');
|
||||||
$options[CALENDAR_TF_24] = get_string('timeformat_24', 'calendar');
|
$options[CALENDAR_TF_24] = get_string('timeformat_24', 'calendar');
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
<td nowrap="nowrap" align="right"><?php print_string('pref_startwday', 'calendar')?>:</td>
|
<td nowrap="nowrap" align="right"><?php print_string('pref_startwday', 'calendar')?>:</td>
|
||||||
<td>
|
<td>
|
||||||
<?php
|
<?php
|
||||||
$options = NULL;
|
$options = array();
|
||||||
$options[0] = get_string('sunday', 'calendar');
|
$options[0] = get_string('sunday', 'calendar');
|
||||||
$options[1] = get_string('monday', 'calendar');
|
$options[1] = get_string('monday', 'calendar');
|
||||||
$options[2] = get_string('tuesday', 'calendar');
|
$options[2] = get_string('tuesday', 'calendar');
|
||||||
|
|
|
@ -368,7 +368,7 @@ function calendar_show_month_detailed($m, $y, $courses, $groups, $users) {
|
||||||
$cell = '';
|
$cell = '';
|
||||||
$dayhref = calendar_get_link_href(CALENDAR_URL.'view.php?view=day&', $day, $m, $y);
|
$dayhref = calendar_get_link_href(CALENDAR_URL.'view.php?view=day&', $day, $m, $y);
|
||||||
|
|
||||||
if($dayweek % 7 == 0 || $dayweek % 7 == 6) {
|
if(CALENDAR_WEEKEND & (1 << ($dayweek % 7))) {
|
||||||
// Weekend. This is true no matter what the exact range is.
|
// Weekend. This is true no matter what the exact range is.
|
||||||
$class = 'cal_weekend';
|
$class = 'cal_weekend';
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,10 @@ $string['helpadminseesall'] = 'Do admins see all calendar events or just those t
|
||||||
$string['helpcalendarsettings'] = 'Configure various calendar and date/time-related aspects of Moodle';
|
$string['helpcalendarsettings'] = 'Configure various calendar and date/time-related aspects of Moodle';
|
||||||
$string['helpdstforusers'] = 'Can each user choose his own DST settings?';
|
$string['helpdstforusers'] = 'Can each user choose his own DST settings?';
|
||||||
$string['helpmanagedstpresets'] = 'Click this button to add, edit and delete the DST presets available for this site.';
|
$string['helpmanagedstpresets'] = 'Click this button to add, edit and delete the DST presets available for this site.';
|
||||||
|
$string['helpstartofweek'] = 'Which day starts the week in the calendar?';
|
||||||
|
$string['helpupcominglookahead'] = 'How many days in the future does the calendar look for upcoming events by default?';
|
||||||
|
$string['helpupcomingmaxevents'] = 'How many (maximum) upcoming events are shown to users by default?';
|
||||||
|
$string['helpweekenddays'] = 'Which days of the week are treated as \"weekend\" and shown with a different colour?';
|
||||||
$string['managedstpresets'] = 'Manage DST Presets';
|
$string['managedstpresets'] = 'Manage DST Presets';
|
||||||
$string['nodstpresetsexist'] = 'DST support is disabled for all users because there are no DST presets defined. You can define some presets using the button below.';
|
$string['nodstpresetsexist'] = 'DST support is disabled for all users because there are no DST presets defined. You can define some presets using the button below.';
|
||||||
$string['therewereerrors'] = 'There were errors in your data';
|
$string['therewereerrors'] = 'There were errors in your data';
|
||||||
|
|
|
@ -695,7 +695,7 @@ A IMG {
|
||||||
}
|
}
|
||||||
|
|
||||||
table.formtable td, table.formtable th {
|
table.formtable td, table.formtable th {
|
||||||
padding: 8px;
|
padding: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
table.formtable tbody tr {
|
table.formtable tbody tr {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue