// The module name is set. I will assume that it has to be displayed, and
// also that it is an automatically-generated event. And of course that the
- // three fields for get_coursemodule_from_instance are set correctly.
+ // fields for get_coursemodule_from_instance are set correctly.
- calendar_get_course_cached($coursecache, $event->courseid);
-
- $module = calendar_get_module_cached($coursecache, $event->modulename, $event->instance, $event->courseid);
+ $module = calendar_get_module_cached($coursecache, $event->modulename, $event->instance);
if ($module === false) {
// This shouldn't have happened. What to do now?
$output[$outkey]->icon = '<img height="16" width="16" src="'.$icon.'" alt="" title="'.$modulename.'" style="vertical-align: middle;" />';
$output[$outkey]->referer = '<a href="'.$CFG->wwwroot.'/mod/'.$event->modulename.'/view.php?id='.$module->id.'">'.$event->name.'</a>';
$output[$outkey]->time = $eventtime;
- $output[$outkey]->courselink = '<a href="'.$CFG->wwwroot.'/course/view.php?id='.$event->courseid.'">'.$coursecache[$event->courseid]->fullname.'</a>';
+ $output[$outkey]->courselink = '<a href="'.$CFG->wwwroot.'/course/view.php?id='.$module->course.'">'.$coursecache[$module->course]->fullname.'</a>';
$output[$outkey]->cmid = $module->id;
return;
}
-function calendar_get_module_cached(&$coursecache, $modulename, $instance, $courseid) {
- $module = get_coursemodule_from_instance($modulename, $instance, $courseid);
+function calendar_get_module_cached(&$coursecache, $modulename, $instance) {
+ $module = get_coursemodule_from_instance($modulename, $instance);
if($module === false) return false;
- if(!calendar_get_course_cached($coursecache, $courseid)) {
+ if(!calendar_get_course_cached($coursecache, $module->course)) {
return false;
}
return $module;
* @return array
* @todo Finish documenting this function
*/
-function get_coursemodule_from_instance($modulename, $instance, $courseid) {
+function get_coursemodule_from_instance($modulename, $instance, $courseid=0) {
global $CFG;
+
+ $courseselect = ($courseid) ? "cm.course = '$courseid' AND " : '';
return get_record_sql("SELECT cm.*, m.name
FROM {$CFG->prefix}course_modules cm,
{$CFG->prefix}modules md,
{$CFG->prefix}$modulename m
- WHERE cm.course = '$courseid' AND
+ WHERE $courseselect
cm.deleted = '0' AND
cm.instance = m.id AND
md.name = '$modulename' AND