All the page headers work correctly also on the site course.
On the site page the modules don't require login unless necessary or required by $CFG->forcelogin.
redirect($destination);
}
+
+/// Users can't enroll to site course
+ if (!$course->category) {
+ print_header_simple();
+ notice(get_string('enrollfirst'), $CFG->wwwroot);
+ }
/// Double check just in case they are enrolled to start in the future
$string['choicename'] = 'Choice name';
$string['choiceopen'] = 'Open';
$string['choicetext'] = 'Choice text';
+$string['havetologin'] = 'You have to log in before you can submit your choice';
$string['modulename'] = 'Choice';
$string['modulenameplural'] = 'Choices';
$string['mustchooseone'] = 'You must choose an answer before saving. Nothing was saved.';
$string['encryptedcode'] = 'Encrypted code';
$string['enrolledincourse'] = 'Enrolled in course \"$a\"';
$string['enrolledincoursenot'] = 'Not enrolled in course \"$a\"';
+$string['enrollfirst'] = 'You have to enroll in one of the courses before you can use the site activities';
$string['enrolmentconfirmation'] = 'You are about to enroll yourself as a member of this course.<br />Are you sure you wish to do this?';
$string['enrolmentkey'] = 'Enrolment key';
$string['enrolmentkeyfrom'] = 'This course requires an \'enrolment key\' - a one-time<BR>
$user->admin = true;
}
- if ($site = get_site()) { // Everyone is always a member of the top course
- $user->student[$site->id] = true;
+ if ($site = get_site()) {
+ $user->student[$site->id] = isstudent($site->id, $user->id);
}
/// Determine enrolments based on current enrolment module
global $CFG;
- $site = get_site();
- if (!$courseid or $courseid == $site->id) {
- $sort = str_replace('s.timeaccess', 'lastaccess', $sort); // site users can't be sorted by timeaccess
- if ($sort) {
- $sort = "$sort $dir";
- }
- return get_site_users($sort, '', $exceptions);
- }
-
switch ($CFG->dbtype) {
case "mysql":
$fullname = " CONCAT(firstname,\" \",lastname) ";
}
$groupmembers = '';
- $select = "s.course = '$courseid' AND s.userid = u.id AND u.deleted = '0' ";
+
+ // make sure it works on the site course
+ $select = "s.course = '$courseid' AND ";
+ $site = get_site();
+ if ($courseid == $site->id) {
+ $select = '';
+ }
+
+ $select .= "s.userid = u.id AND u.deleted = '0' ";
if (!$fields) {
$fields = 'u.id, u.confirmed, u.username, u.firstname, u.lastname, '.
/**
* Returns all the users of a course: students and teachers
-*
-* If the "course" is actually the site, then return all site users.
*
* @param type description
*/
function get_course_users($courseid, $sort="timeaccess DESC", $exceptions='') {
- $site = get_site();
-
- if ($courseid == $site->id) {
- return get_site_users($sort, '', $exceptions);
- }
-
/// Using this method because the single SQL is too inefficient
// Note that this has the effect that teachers and students are
// sorted individually. Returns first all teachers, then all students
execute_sql("UPDATE {$CFG->prefix}user SET auth = '$CFG->auth' WHERE id NOT IN ($adminlist)");
}
}
+
+ if ($oldversion < 2004082200) { // Making admins teachers on site course
+ $site = get_site();
+ $admins = get_admins();
+ foreach ($admins as $admin) {
+ add_teacher($admin->id, $site->id);
+ }
+ }
return $result;
}
}
+function require_course_login($course, $autologinguest=true) {
+// This is a weaker version of require_login which only requires login
+// when called from within a course rather than the site page, unless
+// the forcelogin option is turned on.
+ global $CFG;
+ if ($CFG->forcelogin) {
+ require_login();
+ }
+ if ($course->category) {
+ require_login($course->id, $autologinguest);
+ }
+}
+
function update_user_login_times() {
global $USER;
if (isguest($userid)) {
return false;
}
- return record_exists('user', 'id', $userid, 'confirmed', 1, 'deleted', 0);
- }
+ return record_exists('user_students', 'userid', $userid);
+ }
if (!$userid) {
return !empty($USER->student[$courseid]);
if (!record_exists("user_admins", "userid", $userid)) {
if (record_exists("user", "id", $userid)) {
$admin->userid = $userid;
+
+ // any admin is also a teacher on the site course
+ $site = get_site();
+ if (!record_exists('user_teachers', 'course', $site->id, 'userid', $userid)) {
+ if (!add_teacher($userid, $site->id)) {
+ return false;
+ }
+ }
+
return insert_record("user_admins", $admin);
}
return false;
/// Removes an admin from a site
global $db;
+ // remove also from the list of site teachers
+ $site = get_site();
+ remove_teacher($userid, $site->id);
+
return delete_records("user_admins", "userid", $userid);
}
error("Course ID is incorrect");
}
- require_login($course->id);
+ require_course_login($course);
add_to_log($course->id, "assignment", "view all", "index.php?id=$course->id", "");
$strassignments = get_string("modulenameplural", "assignment");
$currentsection = "";
foreach ($assignments as $assignment) {
+ $submitted = get_string("no");
if (isteacher($course->id)) {
if ($assignment->type == OFFLINE) {
$submitted = "<a href=\"submissions.php?id=$assignment->id\">" .
get_string("viewsubmissions", "assignment", $count) . "</a>$groupname";
}
} else {
- if ($submission = assignment_get_submission($assignment, $USER)) {
- if ($submission->timemodified <= $assignment->timedue) {
- $submitted = userdate($submission->timemodified);
- } else {
- $submitted = "<font color=red>".userdate($submission->timemodified)."</font>";
+ if (isset($USER->id)) {
+ if ($submission = assignment_get_submission($assignment, $USER)) {
+ if ($submission->timemodified <= $assignment->timedue) {
+ $submitted = userdate($submission->timemodified);
+ } else {
+ $submitted = "<font color=red>".userdate($submission->timemodified)."</font>";
+ }
}
- } else {
- $submitted = get_string("no");
}
}
AND a.timemodified > 0
AND g.groupid = '$groupid'
AND a.userid = g.userid ");
- } else {
+ } else {
+ $select = "s.course = '$assignment->course' AND";
+ $site = get_site();
+ if ($assignment->course == $site->id) {
+ $select = '';
+ }
return count_records_sql("SELECT COUNT(*)
FROM {$CFG->prefix}assignment_submissions a,
{$CFG->prefix}user_students s
WHERE a.assignment = '$assignment->id'
AND a.timemodified > 0
- AND s.course = '$assignment->course'
- AND a.userid = s.userid ");
+ AND $select a.userid = s.userid ");
}
}
} else {
$sort = "a.$sort $dir";
}
+
+ $select = "s.course = '$assignment->course' AND";
+ $site = get_site();
+ if ($assignment->course == $site->id) {
+ $select = '';
+ }
return get_records_sql("SELECT a.*
FROM {$CFG->prefix}assignment_submissions a,
{$CFG->prefix}user_students s,
{$CFG->prefix}user u
WHERE a.userid = s.userid
AND u.id = a.userid
- AND s.course = '$assignment->course'
- AND a.assignment = '$assignment->id'
+ AND $select a.assignment = '$assignment->id'
ORDER BY $sort");
}
function assignment_get_users_done($assignment) {
/// Return list of users who have done an assignment
global $CFG;
+
+ $select = "s.course = '$assignment->course' AND";
+ $site = get_site();
+ if ($assignment->course == $site->id) {
+ $select = '';
+ }
return get_records_sql("SELECT u.*
FROM {$CFG->prefix}user u,
{$CFG->prefix}user_students s,
{$CFG->prefix}assignment_submissions a
- WHERE s.course = '$assignment->course'
- AND s.userid = u.id
+ WHERE $select s.userid = u.id
AND u.id = a.userid
AND a.assignment = '$assignment->id'
ORDER BY a.timemodified DESC");
function assignment_get_unmailed_submissions($cutofftime) {
/// Return list of marked submissions that have not been mailed out for currently enrolled students
global $CFG;
- return get_records_sql("SELECT s.*, a.course, a.name
+ $records = get_records_sql("SELECT s.*, a.course, a.name
FROM {$CFG->prefix}assignment_submissions s,
{$CFG->prefix}assignment a,
{$CFG->prefix}user_students us
AND s.assignment = a.id
AND s.userid = us.userid
AND a.course = us.course");
+ $site = get_site();
+ if (record_exists('assignment', 'course', $site->id)) {
+ $records += get_records_sql("SELECT s.*, a.course, a.name
+ FROM {$CFG->prefix}assignment_submissions s,
+ {$CFG->prefix}assignment a,
+ {$CFG->prefix}user_students us
+ WHERE s.mailed = 0
+ AND s.timemarked < $cutofftime
+ AND s.timemarked > 0
+ AND s.assignment = a.id
+ AND s.userid = us.userid
+ AND a.course = $site->id");
+ }
}
}
}
- require_login($course->id);
+ require_course_login($course);
add_to_log($course->id, "assignment", "view", "view.php?id=$cm->id", $assignment->id, $cm->id);
print_simple_box_end();
echo "<br />";
- if (!isteacher($course->id) and !isguest()) {
+ if (isstudent($course->id)) {
$submission = assignment_get_submission($assignment, $USER);
if ($assignment->type == OFFLINE) {
error("Course ID is incorrect");
}
- require_login($course->id);
+ require_course_login($course);
add_to_log($course->id, "attendance", "viewall", "index.php?id=$course->id", "");
}
function attendance_add_instance($attendance) {
- global $mod;
+ global $mod;
$attendance->timemodified = time();
$attendance->dynsection = !empty($attendance->dynsection) ? 1 : 0;
$attendance->autoattend = !empty($attendance->autoattend) ? 1 : 0;
$attendance->grade = !empty($attendance->grade) ? 1 : 0;
if (empty($attendance->day)) {
$attendance->day = make_timestamp($attendance->theyear,
- $attendance->themonth, $attendance->theday);
+ $attendance->themonth, $attendance->theday);
}
$attendance->notes = $attendance->name;
$attendance->name=userdate($attendance->day, get_string("strftimedate"));
- if ($attendance->notes) {
- $attendance->name = $attendance->name . " - " . $attendance->notes;
- }
- $attendance->edited = 0;
+ if ($attendance->notes) {
+ $attendance->name = $attendance->name . " - " . $attendance->notes;
+ }
+ $attendance->edited = 0;
if ($attendance->dynsection) {
- if ($mod->course) {
- if (! $course = get_record("course", "id", $mod->course)) {
- error("Course is misconfigured");
- }
- }
+ if ($mod->course) {
+ if (! $course = get_record("course", "id", $mod->course)) {
+ error("Course is misconfigured");
+ }
+ }
if ($course->format =="weeks") {
-// floor($date_relative / 604800) + 1
- $attendance->section = floor(($attendance->day - $course->startdate)/604800) +1;
- if($attendance->section > $course->numsections){
- $attendance->section = 0;
- }
- $attendance->section = "$attendance->section";
- $mod->section = "$attendance->section";
+// floor($date_relative / 604800) + 1
+ $attendance->section = floor(($attendance->day - $course->startdate)/604800) +1;
+ if($attendance->section > $course->numsections){
+ $attendance->section = 0;
+ }
+ $attendance->section = "$attendance->section";
+ $mod->section = "$attendance->section";
}
}
- // insert the main record first
- return $attendance->id = insert_record("attendance", $attendance);
+ // insert the main record first
+ return $attendance->id = insert_record("attendance", $attendance);
}
function attendance_update_instance($attendance) {
- global $mod;
+ global $mod;
$attendance->edited = 1;
$attendance->timemodified = time();
// $attendance->oldid=$attendance->id;
$attendance->grade = !empty($attendance->grade) ? 1 : 0;
$attendance->day = make_timestamp($attendance->theyear,
- $attendance->themonth, $attendance->theday);
+ $attendance->themonth, $attendance->theday);
$attendance->notes = $attendance->name;
$attendance->name=userdate($attendance->day, get_string("strftimedate"));
- if ($attendance->notes) {
- $attendance->name = $attendance->name . " - " . $attendance->notes;
- }
+ if ($attendance->notes) {
+ $attendance->name = $attendance->name . " - " . $attendance->notes;
+ }
if ($attendance->dynsection) {
- //get info about the course
- if ($attendance->course) {
- if (! $course = get_record("course", "id", $attendance->course)) {
- error("Course is misconfigured");
- }
- }
- //work out which section this should be in
- $attendance->section = floor(($attendance->day - $course->startdate)/604800) +1;
- if (($attendance->section > $course->numsections) || ($attendance->section < 0)){
- $attendance->section = 0;
- }
-// $attendance->section = "$attendance->section";
- }
- // get the data from the attendance grid
+ //get info about the course
+ if ($attendance->course) {
+ if (! $course = get_record("course", "id", $attendance->course)) {
+ error("Course is misconfigured");
+ }
+ }
+ //work out which section this should be in
+ $attendance->section = floor(($attendance->day - $course->startdate)/604800) +1;
+ if (($attendance->section > $course->numsections) || ($attendance->section < 0)){
+ $attendance->section = 0;
+ }
+// $attendance->section = "$attendance->section";
+ }
+ // get the data from the attendance grid
if ($data = data_submitted()) {
// Peel out all the data from variable names.
$attrec->dayid = $attendance->id;
if ($data) foreach ($data as $key => $val) {
$pieces = explode('_',$key);
if ($pieces[0] == 'student') {
- $attrec->userid=$pieces[1];
+ $attrec->userid=$pieces[1];
$attrec->hour=$pieces[2];
$attrec->status=$val;
// clear out any old records for the student
- delete_records("attendance_roll",
+ delete_records("attendance_roll",
"dayid",$attrec->dayid,
"hour", $attrec->hour,
"userid",$attrec->userid);
if ($attrec->status != 0) {
// student is registered as absent or tardy
- insert_record("attendance_roll",$attrec, false);
+ insert_record("attendance_roll",$attrec, false);
}
- } // if we have a piece of the student roll data
+ } // if we have a piece of the student roll data
} // foreach for all form variables
- } // if
-
-
- if(!update_record("attendance", $attendance)){
- error("Couldn't update record");
- }
-
- if ($attendance->dynsection) {
- //get section info
- $section = get_record("course_sections", "course", $attendance->course, "section", $attendance->section);
-
- //remove module from the current section
- if (! delete_mod_from_section($attendance->coursemodule, $mod->section)) {
- notify("Could not delete module from existing section");
- }
-
- //update course with new module location
- if(! set_field("course_modules", "section", $section->id, "id", $attendance->coursemodule)){
- notify("Could not update course module list");
- }
-
- //add module to the new section
- if (! add_mod_to_section($attendance, NULL)) {
- notify("Could not add module to new section");
- }
-
- rebuild_course_cache($section->course);
- }
- return true;
+ } // if
+
+
+ if(!update_record("attendance", $attendance)){
+ error("Couldn't update record");
+ }
+
+ if ($attendance->dynsection) {
+ //get section info
+ $section = get_record("course_sections", "course", $attendance->course, "section", $attendance->section);
+
+ //remove module from the current section
+ if (! delete_mod_from_section($attendance->coursemodule, $mod->section)) {
+ notify("Could not delete module from existing section");
+ }
+
+ //update course with new module location
+ if(! set_field("course_modules", "section", $section->id, "id", $attendance->coursemodule)){
+ notify("Could not update course module list");
+ }
+
+ //add module to the new section
+ if (! add_mod_to_section($attendance, NULL)) {
+ notify("Could not add module to new section");
+ }
+
+ rebuild_course_cache($section->course);
+ }
+ return true;
}
function attendance_delete_instance($id) {
/// $return->time = the time they did it
/// $return->info = a short text description
/// for attendance, this would be a list present and tardy for every hour of the day
- $tardies=count_records("attendance_roll", "dayid", $attendance->id, "userid", $user->id, "status", 1);
- $absences=count_records("attendance_roll", "dayid", $attendance->id, "userid", $user->id, "status", 2);
-
+ $tardies=count_records("attendance_roll", "dayid", $attendance->id, "userid", $user->id, "status", 1);
+ $absences=count_records("attendance_roll", "dayid", $attendance->id, "userid", $user->id, "status", 2);
+
// build longer string for tardies
- if ($tardies > 0) {
- $tardyrecs=attendance_get_records("attendance_roll", "dayid", $attendance->id, "userid", $user->id, "status", 1, "hour ASC");
- if ($tardies == 1) {
- $tardystring = "Tardy in hour " . $tardyrecs[0]->hour . ". ";
- } elseif ($tardies == $attendance->hours) {
- $tardystring = "Tardy in all hours. (" . $attendance->hours . ") ";
- } else {
- // build array of all tardies
- $tarr = array();
- if ($tardyrecs) foreach ($tardyrecs as $tardyrec) {
- array_push($tarr, $tardyrec->hour);
- $tardystring = $tardystring . ", " . $tardyrec->hour;
- }
- $end=array_pop($tarr);
- $tardystring = "Tardy in hours " . implode(", ", $tarr) . " and ". $end . ". ";
- }
- } else { $tardystring = "";}
+ if ($tardies > 0) {
+ $tardyrecs=attendance_get_records("attendance_roll", "dayid", $attendance->id, "userid", $user->id, "status", 1, "hour ASC");
+ if ($tardies == 1) {
+ $tardystring = "Tardy in hour " . $tardyrecs[0]->hour . ". ";
+ } elseif ($tardies == $attendance->hours) {
+ $tardystring = "Tardy in all hours. (" . $attendance->hours . ") ";
+ } else {
+ // build array of all tardies
+ $tarr = array();
+ if ($tardyrecs) foreach ($tardyrecs as $tardyrec) {
+ array_push($tarr, $tardyrec->hour);
+ $tardystring = $tardystring . ", " . $tardyrec->hour;
+ }
+ $end=array_pop($tarr);
+ $tardystring = "Tardy in hours " . implode(", ", $tarr) . " and ". $end . ". ";
+ }
+ } else { $tardystring = "";}
// build longer string for absences
- if ($absences > 0) {
- $absrecs=attendance_get_records("attendance_roll", "dayid", $attendance->id, "userid", $user->id, "status", 2, "hour ASC");
- if ($absences == 1) {
- $absstring = "Absent in hour " . $absrecs[0]->hour . ".";
- } elseif ($absences == $attendance->hours) {
- $absstring = "Absent in all hours. (" . $attendance->hours . ")";
- } else {
- // build array of all absences
- $aarr = array();
- if ($absrecs) foreach ($absrecs as $absrec) {
- array_push($aarr, $absrec->hour);
- }
- $end=array_pop($aarr);
- $absstring = "Absent in hours " . implode(", ", $aarr) . " and ". $end . ".";
- }
- } else { $absstring = "";}
- $return->info=$tardystring . $absstring;
- if ($return->info == "") $return->info = "No Tardies or Absences";
+ if ($absences > 0) {
+ $absrecs=attendance_get_records("attendance_roll", "dayid", $attendance->id, "userid", $user->id, "status", 2, "hour ASC");
+ if ($absences == 1) {
+ $absstring = "Absent in hour " . $absrecs[0]->hour . ".";
+ } elseif ($absences == $attendance->hours) {
+ $absstring = "Absent in all hours. (" . $attendance->hours . ")";
+ } else {
+ // build array of all absences
+ $aarr = array();
+ if ($absrecs) foreach ($absrecs as $absrec) {
+ array_push($aarr, $absrec->hour);
+ }
+ $end=array_pop($aarr);
+ $absstring = "Absent in hours " . implode(", ", $aarr) . " and ". $end . ".";
+ }
+ } else { $absstring = "";}
+ $return->info=$tardystring . $absstring;
+ if ($return->info == "") $return->info = "No Tardies or Absences";
return $return;
}
if ($attrecs) { foreach ($attrecs as $attrec) { $grid[$attrec->hour]=$attrec->status; } }
echo "<table><tr><th>Hour:</th>\n";
// echo out the table header
- for($j=1;$j<=$attendance->hours;$j++) {
- echo "<th valign=\"top\" align=\"center\" nowrap class=\"generaltableheader\">".$j."</th>\n";
- }
- echo "</tr><tr><th>Status:</th>";
- for($j=1;$j<=$attendance->hours;$j++) {
+ for($j=1;$j<=$attendance->hours;$j++) {
+ echo "<th valign=\"top\" align=\"center\" nowrap class=\"generaltableheader\">".$j."</th>\n";
+ }
+ echo "</tr><tr><th>Status:</th>";
+ for($j=1;$j<=$attendance->hours;$j++) {
// set the attendance defaults for each student
- if (isset($grid[$j])) {
- $status = (($grid[$j] == 1) ? $T : $A);
- } else {$status=$P;}
+ if (isset($grid[$j])) {
+ $status = (($grid[$j] == 1) ? $T : $A);
+ } else {$status=$P;}
echo "<td align=\"left\" nowrap class=\"generaltablecell\" style=\"border-left: 1px dotted; border-top: 1px solid;\">".$status."</td>\n";
- } /// for loop
+ } /// for loop
echo "</tr></table>\n";
global $CFG;
echo "Attendance: Performing automatic attendance logging\n";
// look for all attendance instances set to autoattend
- if (!$attendances = get_records("attendance", "autoattend", 1, "course ASC")) {
+ if (!$attendances = get_records("attendance", "autoattend", 1, "course ASC")) {
return true;
}
- $td = attendance_find_today(time());
- $tm = attendance_find_tomorrow(time());
- if ($attendances) foreach($attendances as $attendance) {
+ $td = attendance_find_today(time());
+ $tm = attendance_find_tomorrow(time());
+ if ($attendances) foreach($attendances as $attendance) {
if (($attendance->day >=$td ) && ($attendance->day < $tm)) {
echo "Attendance: Taking attendance for $attendance->name\n";
- if(!isset($courses[$attendance->course]->students)) {
- $courses[$attendance->course]->students =
- attendance_get_course_students($attendance->course, "u.lastname ASC");
- }
+ if(!isset($courses[$attendance->course]->students)) {
+ $courses[$attendance->course]->students =
+ attendance_get_course_students($attendance->course, "u.lastname ASC");
+ }
if ($courses[$attendance->course]->students) {
- foreach ($courses[$attendance->course]->students as $student) {
- // first, clear out the records that may be there already
- delete_records("attendance_roll",
- "dayid",$attendance->id,
- "userid",$student->id);
- $wc = "userid = " . $student->id . " AND course = " . $attendance->course .
- " AND time >= " . $td . " AND time < " . $tm;
- $count = get_record_select("log",$wc,"COUNT(*) as c");
- if ($count->c == "0") { // then the student hasn't done anything today, so mark him absent
- $attrec->dayid = $attendance->id;
- $attrec->userid = $student->id;
- $attrec->status = 2; // status 2 is absent
- // mark ALL hours as absent for first version
- for ($i=1;$i<=$attendance->hours;$i++) {
- $attrec->hour = $i;
- insert_record("attendance_roll",$attrec, false);
- } // for loop to mark all hours absent
- } // if student has no activity
- } // foreach student in the list
- } // if students exist
+ foreach ($courses[$attendance->course]->students as $student) {
+ // first, clear out the records that may be there already
+ delete_records("attendance_roll",
+ "dayid",$attendance->id,
+ "userid",$student->id);
+ $wc = "userid = " . $student->id . " AND course = " . $attendance->course .
+ " AND time >= " . $td . " AND time < " . $tm;
+ $count = get_record_select("log",$wc,"COUNT(*) as c");
+ if ($count->c == "0") { // then the student hasn't done anything today, so mark him absent
+ $attrec->dayid = $attendance->id;
+ $attrec->userid = $student->id;
+ $attrec->status = 2; // status 2 is absent
+ // mark ALL hours as absent for first version
+ for ($i=1;$i<=$attendance->hours;$i++) {
+ $attrec->hour = $i;
+ insert_record("attendance_roll",$attrec, false);
+ } // for loop to mark all hours absent
+ } // if student has no activity
+ } // foreach student in the list
+ } // if students exist
} // if the attendance roll is for today
- } // for each attendance in the system
+ } // for each attendance in the system
return true;
} // function cron
if ($attendance->grade == "1") {
$students = get_course_students($attendance->course);
if ($students) {
- foreach ($students as $student) {
- $rolls = attendance_get_records("attendance_roll",
- "dayid",$attendance->id,
- "userid",$student->id);
- $abs=$tar=0;
- if ($rolls) {
- foreach ($rolls as $roll) {
- if ($roll->status == 1) {$tar++;}
- elseif ($roll->status == 2) {$abs++;}
- } // if rolls
- $total = $attendance->hours - attendance_tally_overall_absences_decimal($abs, $tar);
- $percent = ($total != 0)?$total/$attendance->hours:0;
- $return->grades[$student->id] = ($percent == 0)?0.0:$attendance->maxgrade * $percent;
- } else { $return->grades[$student->id] = $attendance->maxgrade; }
- } // foreach student
+ foreach ($students as $student) {
+ $rolls = attendance_get_records("attendance_roll",
+ "dayid",$attendance->id,
+ "userid",$student->id);
+ $abs=$tar=0;
+ if ($rolls) {
+ foreach ($rolls as $roll) {
+ if ($roll->status == 1) {$tar++;}
+ elseif ($roll->status == 2) {$abs++;}
+ } // if rolls
+ $total = $attendance->hours - attendance_tally_overall_absences_decimal($abs, $tar);
+ $percent = ($total != 0)?$total/$attendance->hours:0;
+ $return->grades[$student->id] = ($percent == 0)?0.0:$attendance->maxgrade * $percent;
+ } else { $return->grades[$student->id] = $attendance->maxgrade; }
+ } // foreach student
} // if students
$return->maxgrade = $attendance->maxgrade;
} else { // if attendance->grade == "1"
* STUDENT ID INTO THE RECORDSET
* if courseid = 0 then return ALL students in all courses
*
-* @param int $courseid the id of the course
-* @param string $sort a field name and ASC or DESC for a SQL 'ORDER BY' clause (optional)
-* @return array(recorset) a list of all students in the specified course
+* @param int $courseid the id of the course
+* @param string $sort a field name and ASC or DESC for a SQL 'ORDER BY' clause (optional)
+* @return array(recorset) a list of all students in the specified course
Returns
*/
function attendance_get_course_students($courseid, $sort="u.lastaccess DESC") {
global $CFG;
+ // make sure it works on the site course
+ $select = "s.course = '$courseid' AND";
+ $site = get_site();
+ if ($courseid == $site->id) {
+ $select = '';
+ }
return get_records_sql("SELECT u.id, u.username, u.firstname, u.lastname, u.maildisplay, u.mailformat,
u.email, u.city, u.country, u.lastaccess, u.lastlogin, u.picture, u.idnumber
FROM {$CFG->prefix}user u,
{$CFG->prefix}user_students s
- WHERE s.course = '$courseid' AND s.userid = u.id AND u.deleted = '0'
+ WHERE $select s.userid = u.id AND u.deleted = '0'
ORDER BY $sort");
}
* Given a number of tardies and absences, determine the total
* number of equivalent absences it adds up to.
*
-* @param int $absences the total number of absences for a span of time
-* @param int $tardies the total number of tardies for a span of time
-* @return float the number of absences it adds up to - may be a decimal!
+* @param int $absences the total number of absences for a span of time
+* @param int $tardies the total number of tardies for a span of time
+* @return float the number of absences it adds up to - may be a decimal!
*/
function attendance_tally_overall_absences_decimal($absences, $tardies) {
global $CFG;
- if (isset($CFG->attendance_tardies_per_absence) && ($CFG->attendance_tardies_per_absence>0)) {
- return $absences + ($tardies/$CFG->attendance_tardies_per_absence);
- } else { return $absences; }
+ if (isset($CFG->attendance_tardies_per_absence) && ($CFG->attendance_tardies_per_absence>0)) {
+ return $absences + ($tardies/$CFG->attendance_tardies_per_absence);
+ } else { return $absences; }
}
/**
* number of equivalent absences it adds up to and express it as a string with
* a possible fractional remainder
*
-* @param int $absences the total number of absences for a span of time
-* @param int $tardies the total number of tardies for a span of time
-* @return string the number of absences it adds up to - may have a fractional component!
+* @param int $absences the total number of absences for a span of time
+* @param int $tardies the total number of tardies for a span of time
+* @return string the number of absences it adds up to - may have a fractional component!
*/
function attendance_tally_overall_absences_fraction($absences, $tardies) {
global $CFG;
- if (isset($CFG->attendance_tardies_per_absence) && ($CFG->attendance_tardies_per_absence>0)) {
- $whole = floor($tardies/$CFG->attendance_tardies_per_absence);
- $fractional=$tardies-($whole * $CFG->attendance_tardies_per_absence);
- if ($absences + $whole > 0) {
- return ($absences + $whole) . (($fractional > 0) ? " ". $fractional. "/". $CFG->attendance_tardies_per_absence : "");
- } else {
- return (($fractional > 0) ? $fractional. "/". $CFG->attendance_tardies_per_absence : "0");
- }
- } else {
- return $absences."";
- }
+ if (isset($CFG->attendance_tardies_per_absence) && ($CFG->attendance_tardies_per_absence>0)) {
+ $whole = floor($tardies/$CFG->attendance_tardies_per_absence);
+ $fractional=$tardies-($whole * $CFG->attendance_tardies_per_absence);
+ if ($absences + $whole > 0) {
+ return ($absences + $whole) . (($fractional > 0) ? " ". $fractional. "/". $CFG->attendance_tardies_per_absence : "");
+ } else {
+ return (($fractional > 0) ? $fractional. "/". $CFG->attendance_tardies_per_absence : "0");
+ }
+ } else {
+ return $absences."";
+ }
}
/**
* first what section the specified attendance instance in the course is in, then all the
* attendance records that are in the same section, regardless of the format of the course
*
-* @param int $instance id of the attendance instance in course_modules
-* @param int $courseid the id of the course for which we're getting records
-* @return (object)recordset associative array of records containing the attendance records we wanted
+* @param int $instance id of the attendance instance in course_modules
+* @param int $courseid the id of the course for which we're getting records
+* @return (object)recordset associative array of records containing the attendance records we wanted
*/
function get_attendance_for_section($instance, $courseid) {
global $CFG;
* function will work with non-weekly formatted courses, though the results won't easily
* correlate with the course view. But it will work regardless.
*
-* @param int $id the id of the attendance record we're using as a basis for the query
-* @param int $courseid the id of the course for which we're getting records
-* @return (object)recordset associative array of records containing the attendance records we wanted
+* @param int $id the id of the attendance record we're using as a basis for the query
+* @param int $courseid the id of the course for which we're getting records
+* @return (object)recordset associative array of records containing the attendance records we wanted
*/
function get_attendance_for_week($id, $courseid) {
global $CFG;
*
* This function returns the timestamp for midnight of the day specified in the timestamp
*
-* @param timestamp $d The time to find the beginning of the day for
-* @return timestamp midnight for that day
+* @param timestamp $d The time to find the beginning of the day for
+* @return timestamp midnight for that day
*/
function attendance_find_today($d) {
// $da = getdate($d);
*
* This function returns the timestamp for midnight of the day after the timestamp specified
*
-* @param timestamp $d The time to find the next day of
-* @return timestamp midnight of the next day
+* @param timestamp $d The time to find the next day of
+* @return timestamp midnight of the next day
*/
function attendance_find_tomorrow($d) {
// add 24 hours to the current time - to solve end of month date issues
error("Course ID is incorrect");
}
- require_login($course->id);
+ require_course_login($course);
add_to_log($course->id, "chat", "view all", "index.php?id=$course->id", "");
}
}
- require_login($course->id);
+ require_course_login($course);
add_to_log($course->id, "chat", "view", "view.php?id=$cm->id", $chat->id, $cm->id);
error("Course ID is incorrect");
}
- require_login($course->id);
+ require_course_login($course);
add_to_log($course->id, "choice", "view all", "index?id=$course->id", "");
notice("There are no choices", "../../course/view.php?id=$course->id");
}
- if ( $allanswers = get_records("choice_answers", "userid", $USER->id)) {
+ if ( isset($USER->id) and $allanswers = get_records("choice_answers", "userid", $USER->id)) {
foreach ($allanswers as $aa) {
$answers[$aa->choice] = $aa;
}
error("Course is misconfigured");
}
- require_login($course->id);
+ require_course_login($course);
if (!$choice = choice_get_choice($cm->instance)) {
error("Course module is incorrect");
for ($i=1; $i <= $CHOICE_MAX_NUMBER; $i++) {
$answerchecked[$i] = '';
}
- if ($current = get_record("choice_answers", "choice", $choice->id, "userid", $USER->id)) {
+ if (isset($USER->id) and $current = get_record("choice_answers", "choice", $choice->id, "userid", $USER->id)) {
$answerchecked[$current->answer] = 'CHECKED';
+ } else {
+ $current = false;
}
if ($form = data_submitted()) {
echo "<INPUT type=hidden name=id value=\"$cm->id\">";
if (isstudent($course->id) or isteacher($course->id, 0, false)) {
echo "<INPUT type=submit value=\"".get_string("savemychoice","choice")."\">";
+ } else {
+ print_string('havetologin', 'choice');
}
echo "</P></FORM></CENTER>";
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_get_users_done($dialogue) {
global $CFG;
- return get_records_sql("SELECT u.*
+
+ // make sure it works on the site course
+ $select = "s.course = '$dialogue->course' AND";
+ $site = get_site();
+ if ($courseid == $site->id) {
+ $select = '';
+ }
+ if (!$students = get_records_sql("SELECT u.*
+ FROM {$CFG->prefix}user u,
+ {$CFG->prefix}user_students s,
+ {$CFG->prefix}dialogue_entries j
+ WHERE ($select s.userid = u.id)
+ AND u.id = j.userid
+ AND j.dialogue = '$dialogue->id'
+ ORDER BY j.modified DESC")) {
+ $students = array();
+ }
+ if (!$teachers = get_records_sql("SELECT u.*
FROM {$CFG->prefix}user u,
- {$CFG->prefix}user_students s,
- {$CFG->prefix}user_teachers t,
+ {$CFG->prefix}user_teachers s,
{$CFG->prefix}dialogue_entries j
- WHERE ((s.course = '$dialogue->course' AND s.userid = u.id)
- OR (t.course = '$dialogue->course' AND t.userid = u.id))
+ WHERE (s.course = '$dialogue->course' AND s.userid = u.id)
AND u.id = j.userid
AND j.dialogue = '$dialogue->id'
- ORDER BY j.modified DESC");
+ ORDER BY j.modified DESC")) {
+ $teachers = array();
+ }
+ return $teachers + $students;
+
+// The following original version is very inefficient on large sites
+// return get_records_sql("SELECT u.*
+// FROM {$CFG->prefix}user u,
+// {$CFG->prefix}user_students s,
+// {$CFG->prefix}user_teachers t,
+// {$CFG->prefix}dialogue_entries j
+// WHERE ((s.course = '$dialogue->course' AND s.userid = u.id)
+// OR (t.course = '$dialogue->course' AND t.userid = u.id))
+// AND u.id = j.userid
+// AND j.dialogue = '$dialogue->id'
+// ORDER BY j.modified DESC");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_student_submissions($exercise) {
global $CFG;
-
- return count_records_sql("SELECT count(*) FROM {$CFG->prefix}exercise_submissions s, {$CFG->prefix}user_students u
- WHERE u.course = $exercise->course
- AND s.userid = u.userid
+
+ // make sure it works on the site course
+ $select = "u.course = '$exercise->course' AND";
+ $site = get_site();
+ if ($exercise->course == $site->id) {
+ $select = '';
+ }
+
+ return count_records_sql("SELECT count(*) FROM {$CFG->prefix}exercise_submissions s, {$CFG->prefix}user_students u
+ WHERE $select s.userid = u.userid
AND s.exerciseid = $exercise->id
AND timecreated > 0");
}
function exercise_get_best_submission_grades($exercise) {
// Returns the grades of students' best submissions
global $CFG;
-
+
+ // make sure it works on the site course
+ $select = "u.course = '$exercise->course' AND";
+ $site = get_site();
+ if ($exercise->course == $site->id) {
+ $select = '';
+ }
+
return get_records_sql("SELECT DISTINCT u.userid, MAX(a.grade) AS grade FROM
{$CFG->prefix}exercise_submissions s,
{$CFG->prefix}exercise_assessments a, {$CFG->prefix}user_students u
- WHERE u.course = $exercise->course
- AND s.userid = u.userid
+ WHERE $select s.userid = u.userid
AND s.exerciseid = $exercise->id
AND s.late = 0
AND a.submissionid = s.id
// just look at a single group
if ($order == "grade") {
// allow for multiple assessments of submissions (coming from different teachers)
+
+ // make sure it works on the site course
+ $select = "u.course = '$exercise->course' AND";
+ $site = get_site();
+ if ($exercise->course == $site->id) {
+ $select = '';
+ }
+
return get_records_sql("SELECT s.*, AVG(a.grade) AS grade FROM {$CFG->prefix}user_students u,
{$CFG->prefix}groups_members g, {$CFG->prefix}exercise_submissions s,
{$CFG->prefix}exercise_assessments a
- WHERE u.course = $exercise->course
- AND g.groupid = $groupid
+ WHERE $select g.groupid = $groupid
AND u.userid = g.userid
AND s.userid = u.userid
AND s.exerciseid = $exercise->id
$order = "s.timecreated";
}
+ // make sure it works on the site course
+ $select = "u.course = '$exercise->course' AND";
+ $site = get_site();
+ if ($exercise->course == $site->id) {
+ $select = '';
+ }
+
return get_records_sql("SELECT s.* FROM {$CFG->prefix}user_students u, {$CFG->prefix}user n,
{$CFG->prefix}groups_members g, {$CFG->prefix}exercise_submissions s
- WHERE u.course = $exercise->course
- AND g.groupid = $groupid
+ WHERE $select g.groupid = $groupid
AND u.userid = g.userid
AND s.userid = u.userid
AND n.id = u.userid
else { // no group - all users
if ($order == "grade") {
// allow for multiple assessments of submissions (coming from different teachers)
+
+ // make sure it works on the site course
+ $select = "u.course = '$exercise->course' AND";
+ $site = get_site();
+ if ($exercise->course == $site->id) {
+ $select = '';
+ }
+
return get_records_sql("SELECT s.*, AVG(a.grade) AS grade FROM {$CFG->prefix}exercise_submissions s,
{$CFG->prefix}user_students u, {$CFG->prefix}exercise_assessments a
- WHERE u.course = $exercise->course
- AND s.userid = u.userid
+ WHERE $select s.userid = u.userid
AND s.exerciseid = $exercise->id
AND a.submissionid = s.id
GROUP BY s.id
$order = "s.timecreated";
}
+ // make sure it works on the site course
+ $select = "u.course = '$exercise->course' AND";
+ $site = get_site();
+ if ($exercise->course == $site->id) {
+ $select = '';
+ }
+
return get_records_sql("SELECT s.* FROM {$CFG->prefix}exercise_submissions s,
{$CFG->prefix}user_students u, {$CFG->prefix}user n
- WHERE u.course = $exercise->course
- AND s.userid = u.userid
+ WHERE $select s.userid = u.userid
AND n.id = u.userid
AND s.exerciseid = $exercise->id
ORDER BY $order");
function exercise_get_ungraded_assessments_student($exercise) {
global $CFG;
// Return all assessments which have not been graded or just graded of student's submissions
-
+
+ // make sure it works on the site course
+ $select = "u.course = '$exercise->course' AND";
+ $site = get_site();
+ if ($exercise->course == $site->id) {
+ $select = '';
+ }
+
$cutofftime =time() - $CFG->maxeditingtime;
return get_records_sql("SELECT a.* FROM {$CFG->prefix}exercise_submissions s, {$CFG->prefix}user_students u,
{$CFG->prefix}exercise_assessments a
- WHERE u.course = $exercise->course
- AND s.userid = u.userid
+ WHERE $select s.userid = u.userid
AND s.exerciseid = $exercise->id
AND a.submissionid = s.id
AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
$course = get_record('course', 'id', $forum->course);
$strforums = get_string("modulenameplural", "forum");
- print_header("$course->shortname: $discussion->name: $post->subject", "$course->fullname",
- "<a href=../../course/view.php?id=$course->id>$course->shortname</a> ->
- <a href=\"../forum/index.php?id=$course->id\">$strforums</a> ->
+ print_header_simple("$discussion->name: $post->subject", "",
+ "<a href=\"../forum/index.php?id=$course->id\">$strforums</a> ->
<a href=\"view.php?f=$forum->id\">$forum->name</a> ->
<a href=\"discuss.php?d=$discussion->id\">$post->subject</a> -> ".
get_string("prune", "forum"), '', "", true, "", navmenu($course, $cm));
$searchform = forum_print_search_form($course, $search, true, "plain");
if (!$search) {
- print_header("$course->shortname: $strsearch", "$course->fullname",
- "<A HREF=\"../../course/view.php?id=$course->id\">$course->shortname</A> ->
- <A HREF=\"index.php?id=$course->id\">$strforums</A> -> $strsearch", "search.search",
+ print_header_simple("$strsearch", "",
+ "<A HREF=\"index.php?id=$course->id\">$strforums</A> -> $strsearch", "search.search",
"", "", " ", navmenu($course));
print_simple_box_start("center");
if (!$posts = forum_search_posts($searchterms, $course->id, $page*$perpage, $perpage, $totalcount)) {
- print_header("$course->shortname: $strsearchresults", "$course->fullname",
- "<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> ->
- <a href=\"index.php?id=$course->id\">$strforums</a> ->
+ print_header_simple("$strsearchresults", "",
+ "<a href=\"index.php?id=$course->id\">$strforums</a> ->
<a href=\"search.php?id=$course->id\">$strsearch</a> -> \"$search\"", "search.search",
"", "", " ", navmenu($course));
print_heading(get_string("nopostscontaining", "forum", $search));
exit;
}
- print_header("$course->shortname: $strsearchresults", "$course->fullname",
- "<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> ->
- <a href=\"index.php?id=$course->id\">$strforums</a> ->
+ print_header_simple("$strsearchresults", "",
+ "<a href=\"index.php?id=$course->id\">$strforums</a> ->
<a href=\"search.php?id=$course->id\">$strsearch</a> -> \"$search\"", "search.search",
"", "", $searchform, navmenu($course));
$onsubmit = "";
}
- print_header(strip_tags("$course->shortname: $glossary->name"), "$course->fullname",
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->
- <A HREF=\"index.php?id=$course->id\">$strglossaries</A> ->
+ print_header_simple(strip_tags("$glossary->name"), "",
+ "<A HREF=\"index.php?id=$course->id\">$strglossaries</A> ->
<A HREF=\"view.php?id=$cm->id\">$glossary->name</A> -> $stredit", "form.text",
"", true, "", navmenu($course, $cm));
$onsubmit = "";
}
-print_header(strip_tags("$course->shortname: $glossary->name"), "$course->fullname",
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->
- <A HREF=\"index.php?id=$course->id\">$strglossaries</A> ->
+print_header_simple(strip_tags("$glossary->name"), "",
+ "<A HREF=\"index.php?id=$course->id\">$strglossaries</A> ->
<A HREF=\"view.php?id=$cm->id\">$glossary->name</A> -> $stredit", "",
"", true, "", navmenu($course, $cm));
require_variable($id);
optional_variable($mode);
-
+
require_login();
if ( !isadmin() ) {
error("You must be an admin to use this page.");
$strmodulename = get_string("modulename", "glossary");
$strdisplayformats = get_string("displayformats","glossary");
- print_header("$site->shortname: $strmodulename: $strconfiguration", $site->fullname,
+ print_header("$strmodulename: $strconfiguration", $site->fullname,
"<a href=\"../../admin/index.php\">$stradmin</a> -> ".
"<a href=\"../../admin/configure.php\">$strconfiguration</a> -> ".
"<a href=\"../../admin/modules.php\">$strmanagemodules</a> -> <a href=\"../../admin/module.php?module=glossary\">$strmodulename</a> -> $strdisplayformats");
echo '<form method="post" action="formats.php" name="form">';
echo '<table width="90%" align="center" bgcolor="' . $THEME->cellheading . '" class="generalbox">';
?>
- <tr>
- <td colspan=3 align=center><strong>
- <?php echo get_string('displayformat'.$displayformat->name,"glossary"); ?>
+ <tr>
+ <td colspan=3 align=center><strong>
+ <?php echo get_string('displayformat'.$displayformat->name,"glossary"); ?>
</strong></td>
- </tr>
+ </tr>
<tr valign=top>
<td align="right" width="20%"><?PHP print_string('popupformat','glossary'); ?></td>
<td>
<?php print_string("cnfshowgroup", "glossary") ?><br /><br />
</td>
</tr>
- <tr>
- <td colspan=3 align=center>
- <input type="submit" value="<?php print_string("savechanges") ?>"></td>
- </tr>
+ <tr>
+ <td colspan=3 align=center>
+ <input type="submit" value="<?php print_string("savechanges") ?>"></td>
+ </tr>
<input type="hidden" name=id value="<?php p($id) ?>">
<input type="hidden" name=mode value="edit">
- <?PHP
-
+ <?PHP
+
print_simple_box_end();
echo '</form>';
error("Course ID is incorrect");
}
- require_login($course->id);
+ require_course_login($course);
add_to_log($course->id, "glossary", "view all", "index.php?id=$course->id", "");
$entriesbypage = $CFG->glossary_entbypage;
}
- print_header(strip_tags("$course->shortname: $glossary->name"));
+ print_header_simple(strip_tags("$glossary->name"));
if ($CFG->forcelogin) {
require_login();
/// printpivot indicate if the pivot should be printed or not
switch ($CFG->dbtype) {
case 'postgres7':
- $as = 'as';
+ $as = 'as';
break;
case 'mysql':
- $as = '';
+ $as = '';
break;
}
$fullpivot = 1;
$userid = '';
- if ( $USER->id ) {
+ if ( isset($USER->id) ) {
$userid = "OR ge.userid = $USER->id";
}
switch ($tab) {
$sqllimit = '';
if ( $offset >= 0 ) {
- switch ($CFG->dbtype) {
+ switch ($CFG->dbtype) {
case 'postgres7':
- $sqllimit = " LIMIT $entriesbypage OFFSET $offset";
+ $sqllimit = " LIMIT $entriesbypage OFFSET $offset";
break;
case 'mysql':
- $sqllimit = " LIMIT $offset, $entriesbypage";
+ $sqllimit = " LIMIT $offset, $entriesbypage";
break;
}
}
$CFG->enablerssfeeds && $CFG->glossary_enablerssfeeds && $glossary->rsstype and $glossary->rssarticles) {
echo '<table width="100%" border="0" cellpadding="3" cellspacing="0"><tr valign="top"><td align="right">';
$tooltiptext = get_string("rsssubscriberss","glossary",$glossary->name);
- rss_print_link($course->id, $USER->id, "glossary", $glossary->id, $tooltiptext);
+ if (isset($USER->id)) {
+ rss_print_link($course->id, $USER->id, "glossary", $glossary->id, $tooltiptext);
+ }
echo '</td></tr></table>';
}
<?PHP // $Id$
- require_once("../../config.php");
+ require_once("../../config.php");
require_variable($id); // Course Module ID
if ($form = data_submitted()) {
- $timenow = time();
+ $timenow = time();
$form->text = clean_text($form->text, $form->format);
- if ($entry) {
+ if ($entry) {
$newentry->id = $entry->id;
$newentry->text = $form->text;
$newentry->format = $form->format;
$newentry->modified = $timenow;
- if (! update_record("journal_entries", $newentry)) {
- error("Could not update your journal");
- }
+ if (! update_record("journal_entries", $newentry)) {
+ error("Could not update your journal");
+ }
add_to_log($course->id, "journal", "update entry", "view.php?id=$cm->id", "$newentry->id", $cm->id);
- } else {
+ } else {
$newentry->userid = $USER->id;
$newentry->journal = $journal->id;
$newentry->text = $form->text;
$newentry->format = $form->format;
$newentry->modified = $timenow;
- if (! $newentry->id = insert_record("journal_entries", $newentry)) {
- error("Could not insert a new journal entry");
- }
+ if (! $newentry->id = insert_record("journal_entries", $newentry)) {
+ error("Could not insert a new journal entry");
+ }
add_to_log($course->id, "journal", "add entry", "view.php?id=$cm->id", "$newentry->id", $cm->id);
- }
-
- redirect("view.php?id=$cm->id");
- die;
- }
+ }
+
+ redirect("view.php?id=$cm->id");
+ die;
+ }
/// Otherwise fill and print the form.
$entry->format = $defaultformat;
}
- print_header("$course->shortname: $journal->name", "$course->fullname",
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->
- <A HREF=\"index.php?id=$course->id\">$strjournals</A> ->
+ print_header_simple("$journal->name", "",
+ "<A HREF=\"index.php?id=$course->id\">$strjournals</A> ->
<A HREF=\"view.php?id=$cm->id\">$journal->name</A> -> $stredit", "",
"", true, "", navmenu($course, $cm));
echo "<br />";
- include("edit.html");
+ include("edit.html");
if ($usehtmleditor) {
use_html_editor("text");
error("Course ID is incorrect");
}
- require_login($course->id);
+ require_course_login($course);
add_to_log($course->id, "journal", "view all", "index.php?id=$course->id", "");
$strjournal = get_string("modulename", "journal");
print_simple_box_end();
echo "<br clear=all />";
echo "<br />";
+
+ if (isstudent($course->id) or isteacher($course->id)) {
- print_simple_box_start("right", "90%");
-
- if ($journalopen) {
- echo "<p align=right><a href=\"edit.php?id=$journal->coursemodule\">";
- echo get_string("edit")."</a></p>";
- } else {
- echo "<p align=right><a href=\"view.php?id=$journal->coursemodule\">";
- echo get_string("view")."</a></p>";
- }
-
- if ($entry = get_record("journal_entries", "userid", $user->id, "journal", $journal->id)) {
- if ($entry->modified) {
- echo "<p align=\"center\"><font size=1>".get_string("lastedited").": ".userdate($entry->modified)."</font></p>";
- }
- if ($entry->text) {
- echo format_text($entry->text, $entry->format);
+ print_simple_box_start("right", "90%");
+
+ if ($journalopen) {
+ echo "<p align=right><a href=\"edit.php?id=$journal->coursemodule\">";
+ echo get_string("edit")."</a></p>";
+ } else {
+ echo "<p align=right><a href=\"view.php?id=$journal->coursemodule\">";
+ echo get_string("view")."</a></p>";
}
- if ($entry->teacher) {
- $grades = make_grades_menu($journal->assessed);
- journal_print_feedback($course, $entry, $grades);
+
+ if ($entry = get_record("journal_entries", "userid", $user->id, "journal", $journal->id)) {
+ if ($entry->modified) {
+ echo "<p align=\"center\"><font size=1>".get_string("lastedited").": ".userdate($entry->modified)."</font></p>";
+ }
+ if ($entry->text) {
+ echo format_text($entry->text, $entry->format);
+ }
+ if ($entry->teacher) {
+ $grades = make_grades_menu($journal->assessed);
+ journal_print_feedback($course, $entry, $grades);
+ }
+ } else {
+ print_string("noentry", "journal");
}
- } else {
- print_string("noentry", "journal");
+
+ print_simple_box_end();
+ echo "<br clear=all />";
+ echo "<br />";
}
- print_simple_box_end();
- echo "<br clear=all />";
- echo "<br />";
-
}
function journal_get_users_done($journal) {
global $CFG;
+ // make sure it works on the site course
+ $select = "s.course = '$journal->course' AND";
+ $site = get_site();
+ if ($journal->course == $site->id) {
+ $select = '';
+ }
+
$studentjournals = get_records_sql ("SELECT u.*
FROM {$CFG->prefix}journal_entries j,
{$CFG->prefix}user u,
{$CFG->prefix}user_students s
WHERE j.userid = u.id
AND s.userid = u.id
- AND j.journal = $journal->id
- AND s.course = $journal->course
+ AND $select j.journal = $journal->id
ORDER BY j.modified DESC");
$teacherjournals = get_records_sql ("SELECT u.*
AND j.userid = g.userid");
} else { /// Count all the entries from the whole course
+
+ // make sure it works on the site course
+ $select = "s.course = '$journal->course' AND";
+ $site = get_site();
+ if ($journal->course == $site->id) {
+ $select = '';
+ }
+
$studentjournals = count_records_sql("SELECT COUNT(*)
FROM {$CFG->prefix}journal_entries j,
{$CFG->prefix}user u,
{$CFG->prefix}user_students s
WHERE j.userid = u.id
AND s.userid = u.id
- AND j.journal = $journal->id
- AND s.course = $journal->course ");
+ AND $select j.journal = $journal->id");
$teacherjournals = count_records_sql("SELECT COUNT(*)
FROM {$CFG->prefix}journal_entries j,
$strentries = get_string("entries", "journal");
$strjournals = get_string("modulenameplural", "journal");
- print_header("$course->shortname: $strjournals", "$course->fullname",
- "<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> ->
- <a href=\"index.php?id=$course->id\">$strjournals</a> ->
+ print_header_simple("$strjournals", "",
+ "<a href=\"index.php?id=$course->id\">$strjournals</a> ->
<a href=\"view.php?id=$cm->id\">$journal->name</a> -> $strentries", "", "", true);
$strimportquestions = get_string("importquestions", "lesson");
$strlessons = get_string("modulenameplural", "lesson");
- print_header("$course->shortname: $strimportquestions", "$course->shortname: $strimportquestions",
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> -> ".
+ print_header_simple("$strimportquestions", " $strimportquestions",
"<A HREF=index.php?id=$course->id>$strlessons</A> -> <a href=\"view.php?id=$cm->id\">$lesson->name</a>-> $strimportquestions");
if ($form = data_submitted()) { /// Filename
error("Course ID is incorrect");
}
- require_login($course->id);
+ require_course_login($course);
add_to_log($course->id, "lesson", "view all", "index.php?id=$course->id", "");
$due = "<FONT COLOR=\"red\">".userdate($lesson->deadline)."</FONT>";
}
+ $grade_value = '';
if ($course->format == "weeks" or $course->format == "topics") {
if (isteacher($course->id)) {
$grade_value = $lesson->grade;
- } else {
+ } elseif (isstudent($course->id)) {
// it's a student, show their mean or maximum grade
if ($lesson->usemaxgrade) {
$grade = get_record_sql("SELECT MAX(grade) as grade FROM {$CFG->prefix}lesson_grades
if ($grade) {
// grades are stored as percentages
$grade_value = number_format($grade->grade * $lesson->grade / 100, 1);
- } else {
- $grade_value = 0;
}
}
$table->data[] = array ($lesson->section, $link, $grade_value, $due);
<?PHP // $Id$
// Allows a teacher to create, edit and delete categories
- require_once("../../config.php");
- require_once("lib.php");
+ require_once("../../config.php");
+ require_once("lib.php");
require_variable($id); // course
"quiz");
$streditcategories = get_string("editcategories", "quiz");
- print_header("$course->shortname: $streditcategories", "$course->shortname: $streditcategories",
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A>
- -> <A HREF=\"edit.php\">$streditingquiz</A> -> $streditcategories");
+ print_header_simple("$streditcategories", " $streditcategories",
+ "<A HREF=\"edit.php\">$streditingquiz</A> -> $streditcategories");
/// Delete category if the user wants to delete it
}
}
}
- }
+ }
/// Get the existing categories
$strediting = get_string(isset($modform->instance) ? "editingquiz" : "editquestions", "quiz");
$strheading = empty($modform->name) ? $strediting : $modform->name;
- print_header("$course->shortname: $strediting", "$course->shortname: $strheading",
- "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a> -> ".
+ print_header_simple("$strediting", "$strheading",
"<a href=\"$CFG->wwwroot/mod/quiz/index.php?id=$course->id\">$strquizzes</a> -> $strediting");
// Print basic page layout.
$strquizzes = get_string('modulenameplural', 'quiz');
$streditingquiz = get_string(isset($SESSION->modform->instance) ? "editingquiz" : "editquestions", "quiz");
- print_header("$course->shortname: $strexportquestions", "$course->shortname: $strexportquestions",
- "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a> ".
- "-> <a href=\"$CFG->wwwroot/mod/quiz/index.php?id=$course->id\">$strquizzes</a>".
+ print_header_simple("$strexportquestions", "$strexportquestions",
+ "<a href=\"$CFG->wwwroot/mod/quiz/index.php?id=$course->id\">$strquizzes</a>".
" -> <a href=\"edit.php\">$streditingquiz</a> -> $strexportquestions");
if ($form = data_submitted()) { /// Filename
if (! is_readable("format/$form->format/format.php")) {
- error("Format not known ($form->format)");
+ error("Format not known ($form->format)");
}
require("format.php"); // Parent class
$format = new quiz_file_format();
if (! $format->exportpreprocess($category, $course)) { // Do anything before that we need to
- error("Error occurred during pre-processing!",
- "$CFG->wwwroot/mod/quiz/export.php?category=$category->id");
+ error("Error occurred during pre-processing!",
+ "$CFG->wwwroot/mod/quiz/export.php?category=$category->id");
}
if (! $format->exportprocess($exportfilename)) { // Process the export data
- error("Error occurred during processing!",
- "$CFG->wwwroot/mod/quiz/export.php?category=$category->id");
+ error("Error occurred during processing!",
+ "$CFG->wwwroot/mod/quiz/export.php?category=$category->id");
}
if (! $format->exportpostprocess()) { // In case anything needs to be done after
- error("Error occurred during post-processing!",
- "$CFG->wwwroot/mod/quiz/export.php?category=$category->id");
+ error("Error occurred during post-processing!",
+ "$CFG->wwwroot/mod/quiz/export.php?category=$category->id");
}
echo "<hr>";
$strquizzes = get_string('modulenameplural', 'quiz');
$streditingquiz = get_string(isset($SESSION->modform->instance) ? "editingquiz" : "editquestions", "quiz");
- print_header("$course->shortname: $strimportquestions", "$course->shortname: $strimportquestions",
- "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a> ".
- "-> <a href=\"$CFG->wwwroot/mod/quiz/index.php?id=$course->id\">$strquizzes</a>".
+ print_header_simple("$strimportquestions", "$strimportquestions",
+ "<a href=\"$CFG->wwwroot/mod/quiz/index.php?id=$course->id\">$strquizzes</a>".
" -> <a href=\"edit.php\">$streditingquiz</a> -> $strimportquestions");
if ($form = data_submitted()) { /// Filename
<?PHP // $Id$
// A quick way to add lots of questions to a category (and a quiz)
- require_once("../../config.php");
- require_once("lib.php");
+ require_once("../../config.php");
+ require_once("lib.php");
require_variable($category);
$streditingquiz = get_string(isset($SESSION->modform->instance) ? "editingquiz" : "editquestions", "quiz");
$strcreatemultiple = get_string("createmultiple", "quiz");
- print_header("$course->shortname: $strcreatemultiple", "$course->shortname: $strcreatemultiple",
- "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a> ".
- " -> <a href=\"$CFG->wwwroot/mod/quiz/index.php?id=$course->id\">$strquizzes</a>".
+ print_header_simple("$strcreatemultiple", "$strcreatemultiple",
+ "<a href=\"$CFG->wwwroot/mod/quiz/index.php?id=$course->id\">$strquizzes</a>".
" -> <a href=\"edit.php\">$streditingquiz</a> -> $strcreatemultiple");
$streditingquiz = get_string(isset($SESSION->modform->instance) ? "editingquiz" : "editquestions", "quiz");
$streditingquestion = get_string("editingquestion", "quiz");
- print_header("$course->shortname: $streditingquestion", "$course->shortname: $streditingquestion",
- "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a> ".
- "-> <a href=\"$CFG->wwwroot/mod/quiz/index.php?id=$course->id\">$strquizzes</a>".
+ print_header_simple("$streditingquestion", "$streditingquestion",
+ "<a href=\"$CFG->wwwroot/mod/quiz/index.php?id=$course->id\">$strquizzes</a>".
" -> <a href=\"edit.php\">$streditingquiz</a> -> $streditingquestion");
if (isset($delete)) {
$strdefinedataset = get_string("datasetdefinitions", "quiz", $category->name);
$strquestions = get_string("questions", "quiz");
- print_header("$course->shortname: $strdefinedataset", "$course->shortname: $strdefinedataset",
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A>
- -> <A HREF=\"../../edit.php\">$streditingquiz</A> -> $strdefinedataset");
+ print_header_simple("$strdefinedataset", "$strdefinedataset",
+ "<A HREF=\"../../edit.php\">$streditingquiz</A> -> $strdefinedataset");
if ($form = data_submitted()) { /// Filename
$strediting = get_string("validateascorm", "scorm");
$strname = get_string("name");
- print_header("$course->shortname: $strediting", "$course->shortname: $strediting",
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> -> $strediting");
+ print_header_simple("$strediting", "$strediting",
+ "$strediting");
if (!$form->name or !$form->reference or !$form->summary) {
error(get_string("filloutallfields"), $_SERVER["HTTP_REFERER"]);
}
-
- //
- // Create a temporary directory to unzip package and validate imsmanifest
- //
+
+ //
+ // Create a temporary directory to unzip package and validate imsmanifest
+ //
- $coursedir = "$CFG->dataroot/$course->id";
+ $coursedir = "$CFG->dataroot/$course->id";
- if ($scormdir = make_upload_directory("$course->id/$CFG->moddata/scorm")) {
+ if ($scormdir = make_upload_directory("$course->id/$CFG->moddata/scorm")) {
if ($tempdir = scorm_datadir($scormdir, $form->datadir)) {
copy ("$coursedir/$form->reference", $tempdir."/".basename($form->reference));
if (empty($CFG->unzip)) { // Use built-in php-based unzip function
} else {
$result = "packagedir";
}
- } else {
- $result = "datadir";
- }
- $errorlogs = '';
- if (($result != "regular") && ($result != "found")) {
- if ($CFG->scorm_validate == 'domxml') {
- foreach ($errors as $error) {
- $errorlogs .= get_string($error->type,"scorm",$error->data) . ".\n";
- }
- }
- //
- // Delete files and temporary directory
- //
- if (is_dir($tempdir))
- scorm_delete_files($tempdir);
- } else {
- //
- // Delete package file
- //
- unlink ($tempdir."/".basename($form->reference));
- if ($form->mode == "update") {
- $fp = fopen($coursedir."/".$form->reference,"r");
- $fstat = fstat($fp);
- fclose($fp);
- if (get_field("scorm","timemodified","id",$form->instance) < $fstat["mtime"])
- $form->launch = 0;
- }
- }
- //
- // Print validation result
- //
- print_simple_box_start("center", "", "$THEME->cellheading");
- echo "<table cellpadding=\"5\" align=\"center\">\n";
- echo " <tr><td align=\"right\" nowrap><p><b>$strname:</b></p></td><td><p>$form->name</p></a></td></tr>\n";
- echo " <tr><td align=\"right\" nowrap><p><b>".get_string("validation","scorm").":</b></p></td><td><p>".get_string($result,"scorm")."</p></a></td></tr>\n";
- if ($errorlogs != '') {
- $lines = round(count($errors)/4);
- if ($lines < 5) {
- $lines = 5;
- }
- echo " <tr><td align=\"right\" nowrap><p><b>".get_string("errorlogs","scorm").":</b></p></td><td><textarea rows=\"".$lines."\" cols=\"30\" readonly>".$errorlogs."</textarea></a></td></tr>\n";
- }
- if (($form->mode == "update") && ($form->launch == 0) && (get_records("scorm_sco_users","scormid",$form->instance)))
- echo " <tr><td align=\"center\" colspan=\"2\" nowrap><p><b>".get_string("trackingloose","scorm")."</b></p></td></tr>\n";
- echo "</table>\n";
- if (($result == "regular") || ($result == "found")){
- if (empty($form->auto)) {
- $form->auto = "";
- }
- if (empty($form->maxgrade)) {
- $form->maxgrade = "";
- }
- if (empty($form->grademethod)) {
- $form->grademethod = "0";
- }
- echo "<form name=\"theform\" method=\"post\" action=\"$form->destination\">\n";
-
- //$form->popup = $CFG->scorm_popup;
- $strnewwindow = get_string("newwindow", "scorm");
+ } else {
+ $result = "datadir";
+ }
+ $errorlogs = '';
+ if (($result != "regular") && ($result != "found")) {
+ if ($CFG->scorm_validate == 'domxml') {
+ foreach ($errors as $error) {
+ $errorlogs .= get_string($error->type,"scorm",$error->data) . ".\n";
+ }
+ }
+ //
+ // Delete files and temporary directory
+ //
+ if (is_dir($tempdir))
+ scorm_delete_files($tempdir);
+ } else {
+ //
+ // Delete package file
+ //
+ unlink ($tempdir."/".basename($form->reference));
+ if ($form->mode == "update") {
+ $fp = fopen($coursedir."/".$form->reference,"r");
+ $fstat = fstat($fp);
+ fclose($fp);
+ if (get_field("scorm","timemodified","id",$form->instance) < $fstat["mtime"])
+ $form->launch = 0;
+ }
+ }
+ //
+ // Print validation result
+ //
+ print_simple_box_start("center", "", "$THEME->cellheading");
+ echo "<table cellpadding=\"5\" align=\"center\">\n";
+ echo " <tr><td align=\"right\" nowrap><p><b>$strname:</b></p></td><td><p>$form->name</p></a></td></tr>\n";
+ echo " <tr><td align=\"right\" nowrap><p><b>".get_string("validation","scorm").":</b></p></td><td><p>".get_string($result,"scorm")."</p></a></td></tr>\n";
+ if ($errorlogs != '') {
+ $lines = round(count($errors)/4);
+ if ($lines < 5) {
+ $lines = 5;
+ }
+ echo " <tr><td align=\"right\" nowrap><p><b>".get_string("errorlogs","scorm").":</b></p></td><td><textarea rows=\"".$lines."\" cols=\"30\" readonly>".$errorlogs."</textarea></a></td></tr>\n";
+ }
+ if (($form->mode == "update") && ($form->launch == 0) && (get_records("scorm_sco_users","scormid",$form->instance)))
+ echo " <tr><td align=\"center\" colspan=\"2\" nowrap><p><b>".get_string("trackingloose","scorm")."</b></p></td></tr>\n";
+ echo "</table>\n";
+ if (($result == "regular") || ($result == "found")){
+ if (empty($form->auto)) {
+ $form->auto = "";
+ }
+ if (empty($form->maxgrade)) {
+ $form->maxgrade = "";
+ }
+ if (empty($form->grademethod)) {
+ $form->grademethod = "0";
+ }
+ echo "<form name=\"theform\" method=\"post\" action=\"$form->destination\">\n";
+
+ //$form->popup = $CFG->scorm_popup;
+ $strnewwindow = get_string("newwindow", "scorm");
$strnewwindowopen = get_string("newwindowopen", "scorm");
- foreach ($SCORM_WINDOW_OPTIONS as $optionname) {
- $stringname = "str$optionname";
- $$stringname = get_string("new$optionname", "scorm");
- $window->$optionname = "";
- $jsoption[] = "\"$optionname\"";
+ foreach ($SCORM_WINDOW_OPTIONS as $optionname) {
+ $stringname = "str$optionname";
+ $$stringname = get_string("new$optionname", "scorm");
+ $window->$optionname = "";
+ $jsoption[] = "\"$optionname\"";
}
$alljsoptions = implode(",", $jsoption);
-
+
if ($form->instance) { // Re-editing
- if ($form->popup == "") {
+ if ($form->popup == "") {
$newwindow = ""; // Disable the new window
foreach ($SCORM_WINDOW_OPTIONS as $optionname) {
- $defaultvalue = "scorm_popup$optionname";
- $window->$optionname = $CFG->$defaultvalue;
- }
- } else {
- $newwindow = "checked";
+ $defaultvalue = "scorm_popup$optionname";
+ $window->$optionname = $CFG->$defaultvalue;
+ }
+ } else {
+ $newwindow = "checked";
$rawoptions = explode(',', $form->popup);
foreach ($rawoptions as $rawoption) {
- $option = explode('=', trim($rawoption));
- if (($option[0] != 'location') && ($option[0] != 'menubar') && ($option[0] != 'toolbar')) {
- $optionname = $option[0];
- $optionvalue = $option[1];
- if ($optionname == "height" or $optionname == "width") {
- $window->$optionname = $optionvalue;
- } else if ($optionvalue == 1) {
- $window->$optionname = "checked";
- }
- }
- }
- }
- } else {
- foreach ($SCORM_WINDOW_OPTIONS as $optionname) {
+ $option = explode('=', trim($rawoption));
+ if (($option[0] != 'location') && ($option[0] != 'menubar') && ($option[0] != 'toolbar')) {
+ $optionname = $option[0];
+ $optionvalue = $option[1];
+ if ($optionname == "height" or $optionname == "width") {
+ $window->$optionname = $optionvalue;
+ } else if ($optionvalue == 1) {
+ $window->$optionname = "checked";
+ }
+ }
+ }
+ }
+ } else {
+ foreach ($SCORM_WINDOW_OPTIONS as $optionname) {
$defaultvalue = "scorm_popup$optionname";
$window->$optionname = $CFG->$defaultvalue;
- }
- $newwindow = $CFG->scorm_popup;
- }
-
+ }
+ $newwindow = $CFG->scorm_popup;
+ }
+
?>
- <table cellpadding="5" align="center">
- <tr valign=top>
- <td align=right><p><b><?php print_string("grademethod", "scorm") ?>:</b></p></td>
- <td>
- <?php
- $options = array();
- $options[0] = get_string("gradescoes", "scorm");
- $options[1] = get_string("gradehighest", "scorm");
- $options[2] = get_string("gradeaverage", "scorm");
- choose_from_menu($SCORM_GRADE_METHOD, "grademethod", "$form->grademethod", "");
- helpbutton("grademethod", get_string("grademethod","scorm"), "scorm");
- ?>
- </td>
- </tr>
- <tr valign=top>
- <td align=right><p><b><?php print_string("maximumgrade") ?>:</b></p></td>
- <td>
- <?php
- for ($i=100; $i>=1; $i--) {
- $grades[$i] = $i;
- }
+ <table cellpadding="5" align="center">
+ <tr valign=top>
+ <td align=right><p><b><?php print_string("grademethod", "scorm") ?>:</b></p></td>
+ <td>
+ <?php
+ $options = array();
+ $options[0] = get_string("gradescoes", "scorm");
+ $options[1] = get_string("gradehighest", "scorm");
+ $options[2] = get_string("gradeaverage", "scorm");
+ choose_from_menu($SCORM_GRADE_METHOD, "grademethod", "$form->grademethod", "");
+ helpbutton("grademethod", get_string("grademethod","scorm"), "scorm");
+ ?>
+ </td>
+ </tr>
+ <tr valign=top>
+ <td align=right><p><b><?php print_string("maximumgrade") ?>:</b></p></td>
+ <td>
+ <?php
+ for ($i=100; $i>=1; $i--) {
+ $grades[$i] = $i;
+ }
- choose_from_menu($grades, "maxgrade", "$form->maxgrade", "");
- helpbutton("maxgrade", get_string("maximumgrade"), "scorm");
- ?>
- </td>
- </tr>
- <tr valign=top>
- <td align=right><p><b><?php print_string("autocontinue","scorm") ?>:</b></p></td>
- <td>
- <?php
- $options = array();
- $options[0]=get_string("no");
- $options[1]=get_string("yes");
- choose_from_menu ($options, "auto", $form->auto);
- ?>
- </td>
- </tr>
- <tr valign="top">
+ choose_from_menu($grades, "maxgrade", "$form->maxgrade", "");
+ helpbutton("maxgrade", get_string("maximumgrade"), "scorm");
+ ?>
+ </td>
+ </tr>
+ <tr valign=top>
+ <td align=right><p><b><?php print_string("autocontinue","scorm") ?>:</b></p></td>
+ <td>
+ <?php
+ $options = array();
+ $options[0]=get_string("no");
+ $options[1]=get_string("yes");
+ choose_from_menu ($options, "auto", $form->auto);
+ ?>
+ </td>
+ </tr>
+ <tr valign="top">
<td align="right" nowrap>
<p><b><?php p($strnewwindow) ?></b></p>
</td>
</td>
</tr>
</table>
- <input type="hidden" name="reference" value="<?php p($form->reference) ?>" />
- <input type="hidden" name="datadir" value="<?php p(substr($tempdir,strlen($scormdir))) ?>" />
- <input type="hidden" name="summary" value="<?php p($form->summary) ?>" />
- <input type="hidden" name="name" value="<?php p($form->name) ?>" />
- <input type="hidden" name="launch" value="<?php p($form->launch) ?>" />
- <input type="hidden" name="course" value="<?php p($form->course) ?>" />
- <input type="hidden" name="coursemodule" value="<?php p($form->coursemodule) ?>" />
- <input type="hidden" name="section" value="<?php p($form->section) ?>" />
- <input type="hidden" name="module" value="<?php p($form->module) ?>" />
- <input type="hidden" name="modulename" value="<?php p($form->modulename) ?>" />
- <input type="hidden" name="instance" value="<?php p($form->instance) ?>" />
- <input type="hidden" name="mode" value="<?php p($form->mode) ?>" />
- <div align="center">
- <input type="submit" value="<?php print_string("savechanges") ?>" />
- <input type="submit" name=cancel value="<?php print_string("cancel") ?>" />
- </div>
+ <input type="hidden" name="reference" value="<?php p($form->reference) ?>" />
+ <input type="hidden" name="datadir" value="<?php p(substr($tempdir,strlen($scormdir))) ?>" />
+ <input type="hidden" name="summary" value="<?php p($form->summary) ?>" />
+ <input type="hidden" name="name" value="<?php p($form->name) ?>" />
+ <input type="hidden" name="launch" value="<?php p($form->launch) ?>" />
+ <input type="hidden" name="course" value="<?php p($form->course) ?>" />
+ <input type="hidden" name="coursemodule" value="<?php p($form->coursemodule) ?>" />
+ <input type="hidden" name="section" value="<?php p($form->section) ?>" />
+ <input type="hidden" name="module" value="<?php p($form->module) ?>" />
+ <input type="hidden" name="modulename" value="<?php p($form->modulename) ?>" />
+ <input type="hidden" name="instance" value="<?php p($form->instance) ?>" />
+ <input type="hidden" name="mode" value="<?php p($form->mode) ?>" />
+ <div align="center">
+ <input type="submit" value="<?php print_string("savechanges") ?>" />
+ <input type="submit" name=cancel value="<?php print_string("cancel") ?>" />
+ </div>
</form>
<?php
- } else {
+ } else {
?>
- <center>
+ <center>
<input type="button" value="<?php print_string("continue") ?>" onClick="document.location='<?php echo $CFG->wwwroot ?>/course/view.php?id=<?php echo $course->id ?>';">
</center>
<?php
- }
- print_simple_box_end();
+ }
+ print_simple_box_end();
print_footer($course);
} else {
error("This script was called incorrectly");
$streditingasurvey = get_string("editingasurvey", "survey");
$strsurveys = get_string("modulenameplural", "survey");
- print_header("$course->shortname: $streditingasurvey", "$course->fullname",
- "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a>".
- " -> <a href=\"index.php?id=$course->id\">$strsurveys</a>".
+ print_header_simple("$streditingasurvey", "",
+ "<a href=\"index.php?id=$course->id\">$strsurveys</a>".
" -> $form->name ($streditingasurvey)");
if (!$form->name or !$form->template) {
error("Course ID is incorrect");
}
- require_login($course->id);
+ require_course_login($course);
add_to_log($course->id, "survey", "view all", "index.php?id=$course->id", "");
$currentsection = '';
foreach ($surveys as $survey) {
- if (survey_already_done($survey->id, $USER->id)) {
+ if (isset($USER->id) and survey_already_done($survey->id, $USER->id)) {
$ss = $strdone;
} else {
$ss = $strnotdone;
<?PHP // $Id$
- require_once('../../config.php');
- require_once('lib.php');
+ require_once('../../config.php');
+ require_once('lib.php');
// Make sure this is a legitimate posting
$strsurveys = get_string("modulenameplural", "survey");
$strsurveysaved = get_string("surveysaved", "survey");
- print_header("$course->shortname: $strsurveysaved", "$course->fullname",
- "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a> ->
- <a href=\"index.php?id=$course->id\">$strsurveys</a> -> $survey->name -> $strsurveysaved", "");
+ print_header_simple("$strsurveysaved", "",
+ "<a href=\"index.php?id=$course->id\">$strsurveys</a> -> $survey->name -> $strsurveysaved", "");
notice(get_string("thanksforanswers","survey", $USER->firstname), "$CFG->wwwroot/course/view.php?id=$course->id");
error("Course ID is incorrect");
}
- require_login($course->id);
+ require_course_login($course);
add_to_log($course->id, "wiki", "view all", "index.php?id=$course->id", "");
if ($order == "grade") {
$order = "$workshop->teacherweight * s.teachergrade + $workshop->peerweight * s.peergrade DESC";
}
+
+ // make sure it works on the site course
+ $select = "u.course = '$workshop->course' AND";
+ $site = get_site();
+ if ($workshop->course == $site->id) {
+ $select = '';
+ }
+
return get_records_sql("SELECT s.* FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_students u, {$CFG->prefix}user a
- WHERE u.course = $workshop->course
- AND s.userid = u.userid
+ WHERE $select s.userid = u.userid
AND a.id = u.userid
AND s.workshopid = $workshop->id
AND s.timecreated > 0
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_student_submissions($workshop) {
global $CFG;
-
- return count_records_sql("SELECT count(*) FROM {$CFG->prefix}workshop_submissions s,
+
+ // make sure it works on the site course
+ $select = "s.course = '$workshop->course' AND";
+ $site = get_site();
+ if ($workshop->course == $site->id) {
+ $select = '';
+ }
+
+ return count_records_sql("SELECT count(*) FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_students u
- WHERE u.course = $workshop->course
- AND s.userid = u.userid
+ WHERE $select s.userid = u.userid
AND s.workshopid = $workshop->id
AND timecreated > 0");
}
function workshop_get_student_assessments($workshop, $user) {
// Return all assessments on the student submissions by a user, order by youngest first, oldest last
global $CFG;
-
+
+ // make sure it works on the site course
+ $select = "u.course = '$workshop->course' AND";
+ $site = get_site();
+ if ($workshop->course == $site->id) {
+ $select = '';
+ }
+
return get_records_sql("SELECT a.* FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_students u,
{$CFG->prefix}workshop_assessments a
- WHERE u.course = $workshop->course
- AND s.userid = u.userid
+ WHERE $select s.userid = u.userid
AND s.workshopid = $workshop->id
AND a.submissionid = s.id
AND a.userid = $user->id
function workshop_get_student_submission_assessments($workshop) {
// Return all assessments on the student submissions, order by youngest first, oldest last
global $CFG;
-
+
+ // make sure it works on the site course
+ $select = "u.course = '$workshop->course' AND";
+ $site = get_site();
+ if ($workshop->course == $site->id) {
+ $select = '';
+ }
+
return get_records_sql("SELECT a.* FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_students u, {$CFG->prefix}workshop_assessments a
- WHERE u.course = $workshop->course
- AND s.userid = u.userid
+ WHERE $select s.userid = u.userid
AND s.workshopid = $workshop->id
AND a.submissionid = s.id
ORDER BY a.timecreated DESC");
function workshop_get_ungraded_assessments_student($workshop) {
global $CFG;
// Return all assessments which have not been graded or just graded of student's submissions
-
+
+ // make sure it works on the site course
+ $select = "u.course = '$workshop->course' AND";
+ $site = get_site();
+ if ($workshop->course == $site->id) {
+ $select = '';
+ }
+
$cutofftime = time() - $CFG->maxeditingtime;
return get_records_sql("SELECT a.* FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_students u, {$CFG->prefix}workshop_assessments a
- WHERE u.course = $workshop->course
- AND s.userid = u.userid
+ WHERE $select s.userid = u.userid
AND s.workshopid = $workshop->id
AND a.submissionid = s.id
AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_users_done($workshop) {
global $CFG;
+
+ // make sure it works on the site course
+ $select = "s.course = '$workshop->course' AND";
+ $site = get_site();
+ if ($workshop->course == $site->id) {
+ $select = '';
+ }
+
return get_records_sql("SELECT u.*
FROM {$CFG->prefix}user u, {$CFG->prefix}user_students s,
{$CFG->prefix}workshop_submissions a
- WHERE s.course = '$workshop->course' AND s.user = u.id
+ WHERE $select s.user = u.id
AND u.id = a.user AND a.workshop = '$workshop->id'
ORDER BY a.timemodified DESC");
}
// database to determine whether upgrades should
// be performed (see lib/db/*.php)
-$version = 2004082100; // The current version is a date (YYYYMMDDXX)
+$version = 2004082200; // The current version is a date (YYYYMMDDXX)
$release = "1.4 aiming-for-beta-soon"; // User-friendly version number