2004-03-29 15:28:15 +00:00
< ? php // $Id$
/////////////////////////////////////////////////////////////////////////////
// //
// NOTICE OF COPYRIGHT //
// //
// Moodle - Calendar extension //
// //
// Copyright (C) 2003-2004 Greek School Network www.sch.gr //
// //
// Designed by: //
// Avgoustos Tsinakos (tsinakos@uom.gr) //
// Jon Papaioannou (pj@uom.gr) //
// //
// Programming and development: //
// Jon Papaioannou (pj@uom.gr) //
// //
// For bugs, suggestions, etc contact: //
// Jon Papaioannou (pj@uom.gr) //
// //
// The current module was developed at the University of Macedonia //
// (www.uom.gr) under the funding of the Greek School Network (www.sch.gr) //
// The aim of this project is to provide additional and improved //
// functionality to the Asynchronous Distance Education service that the //
// Greek School Network deploys. //
// //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details: //
// //
// http://www.gnu.org/copyleft/gpl.html //
// //
/////////////////////////////////////////////////////////////////////////////
require_once ( '../config.php' );
2004-06-02 08:13:26 +00:00
require_once ( $CFG -> dirroot . '/calendar/lib.php' );
require_once ( $CFG -> dirroot . '/course/lib.php' );
require_once ( $CFG -> dirroot . '/mod/forum/lib.php' );
2004-03-29 15:28:15 +00:00
require_login ();
if ( isguest ()) {
// Guests cannot do anything with events
redirect ( CALENDAR_URL . 'view.php?view=upcoming' );
}
require_variable ( $_REQUEST [ 'action' ]);
optional_variable ( $_REQUEST [ 'id' ]);
2004-05-24 12:12:41 +00:00
optional_variable ( $_REQUEST [ 'type' ], 'select' );
2004-03-29 15:28:15 +00:00
$_REQUEST [ 'id' ] = intval ( $_REQUEST [ 'id' ]); // Always a good idea, against SQL injections
if ( ! $site = get_site ()) {
redirect ( $CFG -> wwwroot . '/' . $CFG -> admin . '/index.php' );
}
$now = usergetdate ( time ());
$nav = calendar_get_link_tag ( get_string ( 'calendar' , 'calendar' ), CALENDAR_URL . 'view.php?view=upcoming&' , $now [ 'mday' ], $now [ 'mon' ], $now [ 'year' ]);
2004-04-27 17:01:48 +00:00
$day = intval ( $now [ 'mday' ]);
$mon = intval ( $now [ 'mon' ]);
$yr = intval ( $now [ 'year' ]);
2004-03-29 15:28:15 +00:00
2004-04-27 17:01:48 +00:00
if ( $usehtmleditor = can_use_richtext_editor ()) {
2004-03-29 15:28:15 +00:00
$defaultformat = FORMAT_HTML ;
} else {
$defaultformat = FORMAT_MOODLE ;
}
2004-05-28 10:53:54 +00:00
// If a course has been supplied in the URL, change the filters to show that one
if ( ! empty ( $_GET [ 'course' ])) {
if ( is_numeric ( $_GET [ 'course' ]) && $_GET [ 'course' ] > 0 && record_exists ( 'course' , 'id' , $_GET [ 'course' ])) {
if ( $_GET [ 'course' ] == 1 ) {
// If coming from the home page, show all courses
$SESSION -> cal_courses_shown = calendar_get_default_courses ( true );
calendar_set_referring_course ( 0 );
}
else {
// Otherwise show just this one
$SESSION -> cal_courses_shown = intval ( $_GET [ 'course' ]);
calendar_set_referring_course ( $SESSION -> cal_courses_shown );
}
}
}
2004-03-29 15:28:15 +00:00
switch ( $_REQUEST [ 'action' ]) {
case 'delete' :
$title = get_string ( 'deleteevent' , 'calendar' );
$event = get_record ( 'event' , 'id' , $_REQUEST [ 'id' ]);
if ( $event === false ) {
error ( 'Invalid event' );
}
if ( ! calendar_edit_event_allowed ( $event )) {
error ( 'You are not authorized to do this' );
}
break ;
case 'edit' :
$title = get_string ( 'editevent' , 'calendar' );
$event = get_record ( 'event' , 'id' , $_REQUEST [ 'id' ]);
if ( $event === false ) {
error ( 'Invalid event' );
}
if ( ! calendar_edit_event_allowed ( $event )) {
error ( 'You are not authorized to do this' );
}
if ( $form = data_submitted ()) {
$form -> name = strip_tags ( $form -> name ); // Strip all tags
2004-08-26 10:52:00 +00:00
//$form->description = clean_text($form->description , $form->format); // Clean up any bad tags
2004-03-29 15:28:15 +00:00
$form -> timestart = make_timestamp ( $form -> startyr , $form -> startmon , $form -> startday , $form -> starthr , $form -> startmin );
if ( $form -> duration == 1 ) {
$form -> timeduration = make_timestamp ( $form -> endyr , $form -> endmon , $form -> endday , $form -> endhr , $form -> endmin ) - $form -> timestart ;
if ( $form -> timeduration < 0 ) {
$form -> timeduration = 0 ;
}
}
2004-05-24 10:49:01 +00:00
else if ( $form -> duration == 2 ) {
$form -> timeduration = $form -> minutes * 60 ;
}
2004-03-29 15:28:15 +00:00
else {
$form -> timeduration = 0 ;
}
validate_form ( $form , $err );
if ( count ( $err ) == 0 ) {
$form -> timemodified = time ();
update_record ( 'event' , $form );
/// Log the event update.
add_to_log ( $form -> courseid , 'calendar' , 'edit' , 'event.php?action=edit&id=' . $form -> id , $form -> name );
// OK, now redirect to day view
redirect ( CALENDAR_URL . 'view.php?view=day&cal_d=' . $form -> startday . '&cal_m=' . $form -> startmon . '&cal_y=' . $form -> startyr );
}
else {
foreach ( $err as $key => $value ) {
2004-05-17 08:54:23 +00:00
$focus = 'form.' . $key ;
2004-03-29 15:28:15 +00:00
}
}
}
break ;
case 'new' :
$title = get_string ( 'newevent' , 'calendar' );
$form = data_submitted ();
if ( ! empty ( $form ) && $form -> type == 'defined' ) {
$form -> name = strip_tags ( $form -> name ); // Strip all tags
2004-08-26 10:52:00 +00:00
//$form->description = clean_text($form->description , $form->format); // Clean up any bad tags
2004-03-29 15:28:15 +00:00
$form -> timestart = make_timestamp ( $form -> startyr , $form -> startmon , $form -> startday , $form -> starthr , $form -> startmin );
if ( $form -> duration == 1 ) {
$form -> timeduration = make_timestamp ( $form -> endyr , $form -> endmon , $form -> endday , $form -> endhr , $form -> endmin ) - $form -> timestart ;
if ( $form -> timeduration < 0 ) {
$form -> timeduration = 0 ;
}
}
2004-05-06 16:30:12 +00:00
else if ( $form -> duration == 2 ) {
$form -> timeduration = $form -> minutes * 60 ;
}
2004-03-29 15:28:15 +00:00
else {
$form -> timeduration = 0 ;
}
if ( ! calendar_add_event_allowed ( $form -> courseid , $form -> groupid , $form -> userid )) {
error ( 'You are not authorized to do this' );
}
validate_form ( $form , $err );
if ( count ( $err ) == 0 ) {
$form -> timemodified = time ();
/// Get the event id for the log record.
$eventid = insert_record ( 'event' , $form , true );
/// Log the event entry.
add_to_log ( $form -> courseid , 'calendar' , 'add' , 'event.php?action=edit&id=' . $eventid , $form -> name );
2004-05-14 13:49:42 +00:00
2004-05-06 16:30:12 +00:00
if ( $form -> repeat ) {
for ( $i = 1 ; $i < $form -> repeats ; $i ++ ) {
$form -> timestart += 604800 ; // add one week
/// Get the event id for the log record.
$eventid = insert_record ( 'event' , $form , true );
/// Log the event entry.
add_to_log ( $form -> courseid , 'calendar' , 'add' , 'event.php?action=edit&id=' . $eventid , $form -> name );
}
}
2004-05-14 13:49:42 +00:00
2004-03-29 15:28:15 +00:00
// OK, now redirect to day view
redirect ( CALENDAR_URL . 'view.php?view=day&cal_d=' . $form -> startday . '&cal_m=' . $form -> startmon . '&cal_y=' . $form -> startyr );
}
else {
foreach ( $err as $key => $value ) {
2004-05-17 08:54:23 +00:00
$focus = 'form' . $key ;
2004-03-29 15:28:15 +00:00
}
}
}
break ;
}
if ( empty ( $focus )) $focus = '' ;
// Let's see if we are supposed to provide a referring course link
2004-05-24 12:23:08 +00:00
// but NOT for the "main page" course
if ( $SESSION -> cal_course_referer > 1 &&
( $shortname = get_field ( 'course' , 'shortname' , 'id' , $SESSION -> cal_course_referer )) !== false ) {
// If we know about the referring course, show a return link
$nav = '<a href="' . $CFG -> wwwroot . '/course/view.php?id=' . $SESSION -> cal_course_referer . '">' . $shortname . '</a> -> ' . $nav ;
2004-03-29 15:28:15 +00:00
}
print_header ( get_string ( 'calendar' , 'calendar' ) . ': ' . $title , $site -> fullname , $nav . ' -> ' . $title ,
$focus , '' , true , '' , '<p class="logininfo">' . user_login_string ( $site ) . '</p>' );
2004-06-04 06:17:30 +00:00
echo calendar_overlib_html ();
2004-03-29 15:28:15 +00:00
echo '<table border="0" cellpadding="3" cellspacing="0" width="100%"><tr valign="top">' ;
2004-04-27 17:01:48 +00:00
echo '<td valign="top" width="100%">' ;
2004-03-29 15:28:15 +00:00
switch ( $_REQUEST [ 'action' ]) {
case 'delete' :
2004-06-17 08:21:09 +00:00
if ( ! empty ( $_REQUEST [ 'confirm' ]) && $_REQUEST [ 'confirm' ] == 1 ) {
2004-03-29 15:28:15 +00:00
// Kill it and redirect to day view
if (( $event = get_record ( 'event' , 'id' , $_REQUEST [ 'id' ])) !== false ) {
/// Log the event delete.
delete_records ( 'event' , 'id' , $_REQUEST [ 'id' ]);
// pj - fixed the course id problem, but now we have another one:
// what to do with the URL?
add_to_log ( $event -> courseid , 'calendar' , 'delete' , '' , $event -> name );
}
if ( checkdate ( $_REQUEST [ 'm' ], $_REQUEST [ 'd' ], $_REQUEST [ 'y' ])) {
// Being a bit paranoid to check this, but it doesn't hurt
redirect ( CALENDAR_URL . 'view.php?view=day&cal_d=' . $_REQUEST [ 'd' ] . '&cal_m=' . $_REQUEST [ 'm' ] . '&cal_y=' . $_REQUEST [ 'y' ]);
}
else {
// Redirect to now
redirect ( CALENDAR_URL . 'view.php?view=day&cal_d=' . $now [ 'mday' ] . '&cal_m=' . $now [ 'mon' ] . '&cal_y=' . $now [ 'year' ]);
}
}
else {
$eventtime = usergetdate ( $event -> timestart );
$m = $eventtime [ 'mon' ];
$d = $eventtime [ 'mday' ];
$y = $eventtime [ 'year' ];
// Display confirmation form
2004-05-28 10:53:54 +00:00
print_side_block_start ( get_string ( 'deleteevent' , 'calendar' ) . ': ' . $event -> name , array ( 'class' => 'mycalendar' ));
2004-03-29 15:28:15 +00:00
include ( 'event_delete.html' );
print_side_block_end ();
}
break ;
case 'edit' :
if ( empty ( $form )) {
$form -> name = $event -> name ;
$form -> courseid = $event -> courseid ; // Not to update, but for date validation
$form -> description = $event -> description ;
$form -> timestart = $event -> timestart ;
$form -> timeduration = $event -> timeduration ;
$form -> id = $event -> id ;
$form -> format = $defaultformat ;
2004-05-24 10:49:01 +00:00
if ( $event -> timeduration > 3600 ) {
// More than one hour, so default to normal duration mode
2004-03-29 15:28:15 +00:00
$form -> duration = 1 ;
2004-05-24 10:49:01 +00:00
$form -> minutes = '' ;
}
else if ( $event -> timeduration ) {
// Up to one hour, "minutes" mode probably is better here
$form -> duration = 2 ;
$form -> minutes = $event -> timeduration / 60 ;
2004-03-29 15:28:15 +00:00
}
else {
2004-05-24 10:49:01 +00:00
// No duration
2004-03-29 15:28:15 +00:00
$form -> duration = 0 ;
2004-05-24 10:49:01 +00:00
$form -> minutes = '' ;
2004-03-29 15:28:15 +00:00
}
}
2004-06-04 07:21:15 +00:00
if ( ! empty ( $form -> courseid )) { // Fixes bug 1488
$course = get_record ( 'course' , 'id' , $form -> courseid );
} else {
$course = $site ;
}
2004-05-28 10:53:54 +00:00
print_side_block_start ( get_string ( 'editevent' , 'calendar' ), array ( 'class' => 'mycalendar' ));
2004-03-29 15:28:15 +00:00
include ( 'event_edit.html' );
print_side_block_end ();
2004-05-14 14:15:24 +00:00
if ( $usehtmleditor ) {
2004-06-04 06:17:30 +00:00
use_html_editor ( " description " );
2004-05-14 14:15:24 +00:00
}
2004-03-29 15:28:15 +00:00
break ;
case 'new' :
optional_variable ( $_GET [ 'cal_y' ]);
optional_variable ( $_GET [ 'cal_m' ]);
optional_variable ( $_GET [ 'cal_d' ]);
optional_variable ( $form -> timestart , - 1 );
if ( $_GET [ 'cal_y' ] && $_GET [ 'cal_m' ] && $_GET [ 'cal_d' ] && checkdate ( $_GET [ 'cal_m' ], $_GET [ 'cal_d' ], $_GET [ 'cal_y' ])) {
$form -> timestart = make_timestamp ( $_GET [ 'cal_y' ], $_GET [ 'cal_m' ], $_GET [ 'cal_d' ], 0 , 0 , 0 );
}
else if ( $_GET [ 'cal_y' ] && $_GET [ 'cal_m' ] && checkdate ( $_GET [ 'cal_m' ], 1 , $_GET [ 'cal_y' ])) {
if ( $_GET [ 'cal_y' ] == $now [ 'year' ] && $_GET [ 'cal_m' ] == $now [ 'mon' ]) {
$form -> timestart = make_timestamp ( $_GET [ 'cal_y' ], $_GET [ 'cal_m' ], $now [ 'mday' ], 0 , 0 , 0 );
}
else {
$form -> timestart = make_timestamp ( $_GET [ 'cal_y' ], $_GET [ 'cal_m' ], 1 , 0 , 0 , 0 );
}
}
if ( $form -> timestart < 0 ) {
$form -> timestart = time ();
}
2004-05-24 12:23:08 +00:00
calendar_get_allowed_types ( $allowed );
if ( ! $allowed -> groups && ! $allowed -> courses && ! $allowed -> site ) {
// Take the shortcut
$_REQUEST [ 'type' ] = 'user' ;
2004-03-29 15:28:15 +00:00
}
$header = '' ;
switch ( $_REQUEST [ 'type' ]) {
case 'user' :
2004-04-01 09:08:23 +00:00
$form -> name = '' ;
$form -> description = '' ;
2004-03-29 15:28:15 +00:00
$form -> courseid = 0 ;
$form -> groupid = 0 ;
$form -> userid = $USER -> id ;
$form -> modulename = '' ;
$form -> eventtype = '' ;
$form -> instance = 0 ;
$form -> timeduration = 0 ;
$form -> duration = 0 ;
2004-05-24 09:52:57 +00:00
$form -> repeat = 0 ;
$form -> repeats = '' ;
$form -> minutes = '' ;
2004-03-29 15:28:15 +00:00
$header = get_string ( 'typeuser' , 'calendar' );
break ;
case 'group' :
optional_variable ( $_REQUEST [ 'groupid' ]);
$groupid = $_REQUEST [ 'groupid' ];
if ( ! ( $group = get_record ( 'groups' , 'id' , $groupid ) )) {
calendar_get_allowed_types ( $allowed );
$_REQUEST [ 'type' ] = 'select' ;
}
else {
2004-04-01 09:08:23 +00:00
$form -> name = '' ;
$form -> description = '' ;
2004-03-29 15:28:15 +00:00
$form -> courseid = $group -> courseid ;
$form -> groupid = $group -> id ;
$form -> userid = $USER -> id ;
$form -> modulename = '' ;
$form -> eventtype = '' ;
$form -> instance = 0 ;
$form -> timeduration = 0 ;
$form -> duration = 0 ;
2004-05-24 09:52:57 +00:00
$form -> repeat = 0 ;
$form -> repeats = '' ;
$form -> minutes = '' ;
2004-03-29 15:28:15 +00:00
$header = get_string ( 'typegroup' , 'calendar' );
}
break ;
case 'course' :
optional_variable ( $_REQUEST [ 'courseid' ]);
$courseid = $_REQUEST [ 'courseid' ];
if ( ! record_exists ( 'course' , 'id' , $courseid )) {
calendar_get_allowed_types ( $allowed );
$_REQUEST [ 'type' ] = 'select' ;
}
else {
2004-04-01 09:08:23 +00:00
$form -> name = '' ;
$form -> description = '' ;
2004-03-29 15:28:15 +00:00
$form -> courseid = $courseid ;
$form -> groupid = 0 ;
$form -> userid = $USER -> id ;
$form -> modulename = '' ;
$form -> eventtype = '' ;
$form -> instance = 0 ;
$form -> timeduration = 0 ;
$form -> duration = 0 ;
2004-05-24 09:52:57 +00:00
$form -> repeat = 0 ;
$form -> repeats = '' ;
$form -> minutes = '' ;
2004-03-29 15:28:15 +00:00
$header = get_string ( 'typecourse' , 'calendar' );
}
break ;
case 'site' :
2004-04-01 09:08:23 +00:00
$form -> name = '' ;
$form -> description = '' ;
2004-03-29 15:28:15 +00:00
$form -> courseid = 1 ;
$form -> groupid = 0 ;
$form -> userid = $USER -> id ;
$form -> modulename = '' ;
$form -> eventtype = '' ;
$form -> instance = 0 ;
$form -> timeduration = 0 ;
$form -> duration = 0 ;
2004-05-24 09:52:57 +00:00
$form -> repeat = 0 ;
$form -> repeats = '' ;
$form -> minutes = '' ;
2004-03-29 15:28:15 +00:00
$header = get_string ( 'typesite' , 'calendar' );
break ;
case 'defined' :
case 'select' :
break ;
default :
error ( 'Unsupported event type' );
}
$form -> format = $defaultformat ;
if ( ! empty ( $header )) {
$header = ' (' . $header . ')' ;
}
2004-05-28 10:53:54 +00:00
print_side_block_start ( get_string ( 'newevent' , 'calendar' ) . $header , array ( 'class' => 'mycalendar' ));
2004-03-29 15:28:15 +00:00
if ( $_REQUEST [ 'type' ] == 'select' ) {
2004-05-14 14:15:24 +00:00
$defaultcourse = $SESSION -> cal_course_referer ;
if ( isteacheredit ( $defaultcourse , $USER -> id )) {
$defaultgroup = 0 ;
}
else {
$defaultgroup = user_group ( $defaultcourse , $USER -> id );
}
optional_variable ( $_REQUEST [ 'groupid' ], $defaultgroup -> id );
optional_variable ( $_REQUEST [ 'courseid' ], $defaultcourse );
2004-04-20 09:21:30 +00:00
$groupid = $_REQUEST [ 'groupid' ];
$courseid = $_REQUEST [ 'courseid' ];
2004-03-29 15:28:15 +00:00
include ( 'event_select.html' );
}
else {
include ( 'event_new.html' );
2004-05-14 14:15:24 +00:00
if ( $usehtmleditor ) {
2004-06-04 06:17:30 +00:00
use_html_editor ( " description " );
2004-05-14 14:15:24 +00:00
}
2004-03-29 15:28:15 +00:00
}
print_side_block_end ();
break ;
}
2004-04-27 17:01:48 +00:00
echo '</td>' ;
// START: Last column (3-month display)
2004-05-17 08:54:23 +00:00
echo '<td style="vertical-align: top; width: 180px;">' ;
2004-04-28 10:20:30 +00:00
$defaultcourses = calendar_get_default_courses ();
calendar_set_filters ( $courses , $groups , $users , $defaultcourses , $defaultcourses );
2004-05-28 10:53:54 +00:00
print_side_block_start ( get_string ( 'monthlyview' , 'calendar' ));
2004-04-27 17:01:48 +00:00
list ( $prevmon , $prevyr ) = calendar_sub_month ( $mon , $yr );
list ( $nextmon , $nextyr ) = calendar_add_month ( $mon , $yr );
2004-05-24 12:12:41 +00:00
echo calendar_filter_controls ( 'event' , 'action=' . $_REQUEST [ 'action' ] . '&type=' . $_REQUEST [ 'type' ] . '&id=' . $_REQUEST [ 'id' ]);
2004-09-09 10:41:23 +00:00
echo '<div>' ;
2004-04-27 17:01:48 +00:00
echo calendar_top_controls ( 'display' , array ( 'm' => $prevmon , 'y' => $prevyr ));
echo calendar_get_mini ( $courses , $groups , $users , $prevmon , $prevyr );
2004-09-09 10:41:23 +00:00
echo '</div><div>' ;
2004-04-27 17:01:48 +00:00
echo calendar_top_controls ( 'display' , array ( 'm' => $mon , 'y' => $yr ));
echo calendar_get_mini ( $courses , $groups , $users , $mon , $yr );
2004-09-09 10:41:23 +00:00
echo '</div><div>' ;
2004-04-27 17:01:48 +00:00
echo calendar_top_controls ( 'display' , array ( 'm' => $nextmon , 'y' => $nextyr ));
echo calendar_get_mini ( $courses , $groups , $users , $nextmon , $nextyr );
2004-09-09 10:41:23 +00:00
echo '</div>' ;
2004-04-27 17:01:48 +00:00
print_side_block_end ();
2004-05-17 08:54:23 +00:00
print_spacer ( 1 , 180 );
2004-04-27 17:01:48 +00:00
echo '</td>' ;
echo '</tr></table>' ;
2004-03-29 15:28:15 +00:00
print_footer ();
function validate_form ( & $form , & $err ) {
2004-05-22 05:13:08 +00:00
$form -> name = trim ( $form -> name );
$form -> description = trim ( $form -> description );
2004-03-29 15:28:15 +00:00
if ( empty ( $form -> name )) {
$err [ 'name' ] = get_string ( 'errornoeventname' , 'calendar' );
}
if ( empty ( $form -> description )) {
$err [ 'description' ] = get_string ( 'errornodescription' , 'calendar' );
}
if ( ! checkdate ( $form -> startmon , $form -> startday , $form -> startyr )) {
$err [ 'timestart' ] = get_string ( 'errorinvaliddate' , 'calendar' );
}
2004-05-06 16:30:12 +00:00
if ( $form -> duration == 2 and ! checkdate ( $form -> endmon , $form -> endday , $form -> endyr )) {
2004-03-29 15:28:15 +00:00
$err [ 'timeduration' ] = get_string ( 'errorinvaliddate' , 'calendar' );
}
2004-05-06 16:30:12 +00:00
if ( $form -> duration == 2 and ! ( $form -> minutes > 0 and $form -> minutes < 1000 )) {
$err [ 'minutes' ] = get_string ( 'errorinvalidminutes' , 'calendar' );
}
2004-05-24 10:49:01 +00:00
if ( ! empty ( $form -> repeat ) and ! ( $form -> repeats > 1 and $form -> repeats < 100 )) {
2004-05-06 16:30:12 +00:00
$err [ 'repeats' ] = get_string ( 'errorinvalidrepeats' , 'calendar' );
}
2004-03-29 15:28:15 +00:00
if ( ! empty ( $form -> courseid )) {
// Timestamps must be >= course startdate
$course = get_record ( 'course' , 'id' , $form -> courseid );
if ( $course === false ) {
error ( 'Event belongs to invalid course' );
}
2004-04-01 10:59:46 +00:00
else if ( $form -> timestart < $course -> startdate ) {
2004-03-29 15:28:15 +00:00
$err [ 'timestart' ] = get_string ( 'errorbeforecoursestart' , 'calendar' );
}
}
}
function calendar_add_event_allowed ( $courseid , $groupid , $userid ) {
global $USER ;
if ( isadmin ()) {
return true ;
}
else if ( $courseid == 0 && $groupid == 0 && $userid == $USER -> id ) {
return true ;
}
else if ( $courseid != 0 && isteacheredit ( $courseid )) {
return true ;
}
return false ;
}
function calendar_get_allowed_types ( & $allowed ) {
2004-05-14 14:15:24 +00:00
global $USER , $CFG , $SESSION ;
2004-03-29 15:28:15 +00:00
$allowed -> user = true ; // User events always allowed
$allowed -> groups = false ; // This may change just below
$allowed -> courses = false ; // This may change just below
2004-04-20 09:21:30 +00:00
$allowed -> site = isadmin ( $USER -> id );
2004-05-14 14:15:24 +00:00
2004-05-28 10:53:54 +00:00
if ( ! empty ( $SESSION -> cal_course_referer ) && $SESSION -> cal_course_referer > 1 && isteacheredit ( $SESSION -> cal_course_referer , $USER -> id )) {
2004-05-14 14:15:24 +00:00
$allowed -> courses = array ( $SESSION -> cal_course_referer => 1 );
$allowed -> groups = get_groups ( $SESSION -> cal_course_referer );
}
//[pj]: This was used when we wanted to display all legal choices
/*
2004-04-20 09:21:30 +00:00
if ( $allowed -> site ) {
$allowed -> courses = get_courses ( 'all' , 'c.shortname' );
$allowed -> groups = get_records_sql ( 'SELECT g.*, c.fullname FROM ' . $CFG -> prefix . 'groups g LEFT JOIN ' . $CFG -> prefix . 'course c ON g.courseid = c.id ORDER BY c.shortname' );
}
else if ( ! empty ( $USER -> teacheredit )) {
2004-03-29 15:28:15 +00:00
$allowed -> courses = get_records_select ( 'course' , 'id != 1 AND id IN (' . implode ( ',' , array_keys ( $USER -> teacheredit )) . ')' );
$allowed -> groups = get_records_sql ( 'SELECT g.*, c.fullname FROM ' . $CFG -> prefix . 'groups g LEFT JOIN ' . $CFG -> prefix . 'course c ON g.courseid = c.id WHERE g.courseid IN (' . implode ( ',' , array_keys ( $USER -> teacheredit )) . ')' );
}
2004-05-14 14:15:24 +00:00
*/
2004-03-29 15:28:15 +00:00
}
?>