// Just basic time filtering
$whereclause = $timeclause;
}
- return $whereclause;
+ return $whereclause.' AND visible = 1';
}
function calendar_top_controls($type, $data) {
if (!empty($section->sequence)) {
$modules = explode(",", $section->sequence);
foreach ($modules as $moduleid) {
- set_field("course_modules", "visible", "$visibility", "id", $moduleid);
+ if ($visibility) {
+ show_course_module($moduleid);
+ } else {
+ hide_course_module($moduleid);
+ }
}
}
rebuild_course_cache($courseid);
}
function hide_course_module($mod) {
+ $cm = get_record('course_modules', 'id', $mod);
+ $modulename = get_field('modules', 'name', 'id', $cm->module);
+ if ($events = get_records_select('event', "instance = '$cm->instance' AND modulename = '$modulename'")) {
+ foreach($events as $event) {
+ hide_event($event);
+ }
+ }
return set_field("course_modules", "visible", 0, "id", $mod);
}
function show_course_module($mod) {
+ $cm = get_record('course_modules', 'id', $mod);
+ $modulename = get_field('modules', 'name', 'id', $cm->module);
+ if ($events = get_records_select('event', "instance = '$cm->instance' AND modulename = '$modulename'")) {
+ foreach($events as $event) {
+ show_event($event);
+ }
+ }
return set_field("course_modules", "visible", 1, "id", $mod);
}
// Commented out - see below where it's done properly
}
- if ($oldversion < 2003032500) {
- modify_database("", "CREATE TABLE `prefix_user_coursecreators` (
+ if ($oldversion < 2003032500) {
+ modify_database("", "CREATE TABLE `prefix_user_coursecreators` (
`id` int(10) unsigned NOT NULL auto_increment,
`userid` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) TYPE=MyISAM COMMENT='One record per course creator';");
- }
- if ($oldversion < 2003032602) {
+ }
+ if ($oldversion < 2003032602) {
// Redoing it because of no prefix last time
execute_sql(" ALTER TABLE `{$CFG->prefix}log_display` CHANGE `module` `module` VARCHAR( 20 ) NOT NULL ");
// Add some indexes for speed
execute_sql(" ALTER TABLE `{$CFG->prefix}log` ADD INDEX(userid) ");
}
- if ($oldversion < 2003041400) {
+ if ($oldversion < 2003041400) {
table_column("course_modules", "", "visible", "integer", "1", "unsigned", "1", "not null", "score");
}
- if ($oldversion < 2003042104) { // Try to update permissions of all files
+ if ($oldversion < 2003042104) { // Try to update permissions of all files
if ($files = get_directory_list($CFG->dataroot)) {
echo "Attempting to update permissions for all files... ignore any errors.";
foreach ($files as $file) {
table_column("course", "hiddentopics", "hiddensections", "integer", "2", "unsigned", "0", "not null");
}
+ if ($oldversion < 2004050400) { /// add a visible field for events
+ table_column("event", "", "visible", "tinyint", "1", "", "1", "not null", "timeduration");
+ if ($events = get_records('event')) {
+ foreach($events as $event) {
+ if ($moduleid = get_field('modules', 'id', 'name', $event->modulename)) {
+ if (get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $event->instance) == 0) {
+ set_field('event', 'visible', 0, 'id', $event->id);
+ }
+ }
+ }
+ }
+ }
+
return $result;
}
`eventtype` varchar(20) NOT NULL default '',
`timestart` int(10) unsigned NOT NULL default '0',
`timeduration` int(10) unsigned NOT NULL default '0',
+ `visible` tinyint(4) NOT NULL default '1',
`timemodified` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`),
if ($oldversion < 2004043001) { /// Add hiddentopics field to control hidden topics behaviour
table_column("course", "", "hiddensections", "integer", "2", "unsigned", "0", "not null", "visible");
}
+
+ if ($oldversion < 2004050400) { /// add a visible field for events
+ table_column("event", "", "visible", "tinyint", "1", "", "1", "not null", "timeduration");
+ if ($events = get_records('event')) {
+ foreach($events as $event) {
+ if ($moduleid = get_field('modules', 'id', 'name', $event->modulename)) {
+ if (get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $event->instance) == 0) {
+ set_field('event', 'visible', 0, 'id', $event->id);
+ }
+ }
+ }
+ }
+ }
return $result;
eventtype varchar(20) NOT NULL default '',
timestart integer NOT NULL default '0',
timeduration integer NOT NULL default '0',
+ visible integer NOT NULL default '1',
timemodified integer NOT NULL default '0'
);
-<?xml version="1.0"?>\r
-<schema>\r
- <table name="event">\r
- <field name="id" type="I" size="10">\r
- <KEY/>\r
- <AUTOINCREMENT/>\r
- </field>\r
- <field name="name" type="X">\r
- <NOTNULL/>\r
- </field>\r
- <field name="description" type="C" size="255" default="">\r
- <NOTNULL/>\r
- </field>\r
- <field name="courseid" type="I" size="10" default="0">\r
- <KEY/>\r
- <NOTNULL/>\r
- </field>\r
- <field name="groupid" type="I" size="10" default="0">\r
- <NOTNULL/>\r
- </field>\r
- <field name="userid" type="I" size="10" default="0">\r
- <KEY/>\r
- <NOTNULL/>\r
- </field>\r
- <field name="modulename" type="C" size="20" default="">\r
- <NOTNULL/>\r
- </field>\r
- <field name="instance" type="I" size="10" default="0">\r
- <NOTNULL/>\r
- </field>\r
- <field name="eventtype" type="C" size="20" default="">\r
- <NOTNULL/>\r
- </field>\r
- <field name="timestart" type="I" size="10" default="0">\r
- <NOTNULL/>\r
- </field>\r
- <field name="timeduration" type="I" size="10" default="0">\r
- <NOTNULL/>\r
- </field>\r
- <field name="timemodified" type="I" size="10" default="0">\r
- <NOTNULL/>\r
- </field>\r
- </table>\r
- <sql>\r
- <descr>Insert 1 row for testing only...comment out later</descr>\r
- <query platform="postgres|postgres7">\r
- insert into event values (1,1,1,1,1,1,1,1,1,1,1,1)\r
- </query>\r
- <query platform="mysql">\r
- insert into event values (1,1,1,1,1,1,1,1,1,1,1,1)\r
- </query>\r
- <query platform="oci8po">\r
- insert into event values (1,1,1,1,1,1,1,1,1,1,1,1)\r
- </query>\r
- </sql>\r
-</schema>\r
-\r
+<?xml version="1.0"?>\r\r<schema>\r\r <table name="event">\r\r <field name="id" type="I" size="10">\r\r <KEY/>\r\r <AUTOINCREMENT/>\r\r </field>\r\r <field name="name" type="X">\r\r <NOTNULL/>\r\r </field>\r\r <field name="description" type="C" size="255" default="">\r\r <NOTNULL/>\r\r </field>\r\r <field name="courseid" type="I" size="10" default="0">\r\r <KEY/>\r\r <NOTNULL/>\r\r </field>\r\r <field name="groupid" type="I" size="10" default="0">\r\r <NOTNULL/>\r\r </field>\r\r <field name="userid" type="I" size="10" default="0">\r\r <KEY/>\r\r <NOTNULL/>\r\r </field>\r\r <field name="modulename" type="C" size="20" default="">\r\r <NOTNULL/>\r\r </field>\r\r <field name="instance" type="I" size="10" default="0">\r\r <NOTNULL/>\r\r </field>\r\r <field name="eventtype" type="C" size="20" default="">\r\r <NOTNULL/>\r\r </field>\r\r <field name="timestart" type="I" size="10" default="0">\r\r <NOTNULL/>\r\r </field>\r\r <field name="timeduration" type="I" size="10" default="0">\r\r <NOTNULL/>\r\r </field>\r\r <field name="visible" type="L" size="1" default="1">\r\r <NOTNULL/>\r\r </field>\r\r <field name="timemodified" type="I" size="10" default="0">\r\r <NOTNULL/>\r\r </field>\r\r </table>\r\r <sql>\r\r <descr>Insert 1 row for testing only...comment out later</descr>\r\r <query platform="postgres|postgres7">\r\r insert into event values (1,1,1,1,1,1,1,1,1,1,1,1,1)\r\r </query>\r\r <query platform="mysql">\r\r insert into event values (1,1,1,1,1,1,1,1,1,1,1,1,1)\r\r </query>\r\r <query platform="oci8po">\r\r insert into event values (1,1,1,1,1,1,1,1,1,1,1,1,1)\r\r </query>\r\r </sql>\r\r</schema>\r
\ No newline at end of file
/**
* Returns a boolean: is the user a member of the given group?
*
-* @param type description
+* @param type description
*/
function ismember($groupid, $userid=0) {
global $USER;
/**
* Returns the group ID of the current user in the given course
*
-* @param type description
+* @param type description
*/
function mygroupid($courseid) {
global $USER;
* what the current default groupmode is:
* NOGROUPS, SEPARATEGROUPS or VISIBLEGROUPS
*
-* @param type description
+* @param type description
*/
function groupmode($course, $cm=null) {
/**
* Sets the current group in the session variable
*
-* @param type description
+* @param type description
*/
function set_current_group($courseid, $groupid) {
global $SESSION;
/**
* Gets the current group for the current user as an id or an object
*
-* @param type description
+* @param type description
*/
function get_current_group($courseid, $full=false) {
global $SESSION, $USER;
* It will use a given "groupid" parameter and try to use
* that to reset the current group for the user.
*
-* @param type description
+* @param type description
*/
function get_and_set_current_group($course, $groupmode, $groupid=-1) {
* Otherwise returns the current group if there is one
* Otherwise returns false if groups aren't relevant
*
-* @param type description
+* @param type description
*/
function setup_and_print_groups($course, $groupmode, $urlroot) {
}
+function hide_event($event) {
+/// call this function to hide an event in the calendar table
+/// the event will be identified by the id field of the $event object
+
+ global $CFG;
+
+ if (!empty($CFG->calendar)) { // call the update_event function of the selected calendar
+ if (file_exists("$CFG->dirroot/calendar/$CFG->calendar/lib.php")) {
+ include_once("$CFG->dirroot/calendar/$CFG->calendar/lib.php");
+ $calendar_hide_event = $CFG->calendar.'_hide_event';
+ if (function_exists($calendar_hide_event)) {
+ $calendar_hide_event($event);
+ }
+ }
+ }
+ return set_field('event', 'visible', 0, 'id', $event->id);
+}
+
+
+function show_event($event) {
+/// call this function to unhide an event in the calendar table
+/// the event will be identified by the id field of the $event object
+
+ global $CFG;
+
+ if (!empty($CFG->calendar)) { // call the update_event function of the selected calendar
+ if (file_exists("$CFG->dirroot/calendar/$CFG->calendar/lib.php")) {
+ include_once("$CFG->dirroot/calendar/$CFG->calendar/lib.php");
+ $calendar_show_event = $CFG->calendar.'_show_event';
+ if (function_exists($calendar_show_event)) {
+ $calendar_show_event($event);
+ }
+ }
+ }
+ return set_field('event', 'visible', 1, 'id', $event->id);
+}
/// ENVIRONMENT CHECKING ////////////////////////////////////////////////////////////
return true;
}
}
+ $moduleid = get_field('modules', 'id', 'name', 'assignment');
foreach ($assignments as $assignment) {
$event = NULL;
$event->instance = $assignment->id;
$event->eventtype = 'due';
$event->timeduration = 0;
-
+ $event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $assignment->id);
add_event($event);
}
+
}
return true;
}
return true;
}
}
+ $moduleid = get_field('modules', 'id', 'name', 'chat');
foreach ($chats as $chat) {
$event = NULL;
$event->instance = $chat->id;
$event->eventtype = $chat->schedule;
$event->timeduration = 0;
-
+ $event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $chat->id);
+
add_event($event);
}
}
return true;
}
}
-
+ $moduleid = get_field('modules', 'id', 'name', 'quiz');
+
foreach ($quizzes as $quiz) {
$event = NULL;
$event->name = addslashes($quiz->name);
$event->modulename = 'quiz';
$event->instance = $quiz->id;
$event->eventtype = 'start';
+ $event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $quiz->id);
add_event($event);
}
// database to determine whether upgrades should
// be performed (see lib/db/*.php)
-$version = 2004050300; // The current version is a date (YYYYMMDDXX)
+$version = 2004050500; // The current version is a date (YYYYMMDDXX)
$release = "1.3 development"; // User-friendly version number