mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
d578afc883
confirmation on deletions, removing deleted user from all student lists, teacher lists and subscription lists and freeing up their username and email to be used again.
193 lines
6.7 KiB
PHP
193 lines
6.7 KiB
PHP
<?PHP // $Id$
|
|
// Admin-only script to assign teachers to courses
|
|
|
|
require("../config.php");
|
|
require("../user/lib.php");
|
|
|
|
optional_variable($id); // course id
|
|
|
|
if (! $site = get_site()) {
|
|
redirect("$CFG->wwwroot/admin/");
|
|
}
|
|
|
|
require_login();
|
|
|
|
if (!isadmin()) {
|
|
error("You must be an administrator to use this page.");
|
|
}
|
|
|
|
$strassignteachers = get_string("assignteachers");
|
|
$stradministration = get_string("administration");
|
|
$strexistingteachers = get_string("existingteachers");
|
|
$strnoexistingteachers = get_string("noexistingteachers");
|
|
$strpotentialteachers = get_string("potentialteachers");
|
|
$strnopotentialteachers = get_string("nopotentialteachers");
|
|
$straddteacher = get_string("addteacher");
|
|
$strremoveteacher = get_string("removeteacher");
|
|
$strsearch = get_string("search");
|
|
$strsearchagain = get_string("searchagain");
|
|
$strtoomanytoshow = get_string("toomanytoshow");
|
|
|
|
if (!$id) {
|
|
print_header("$site->fullname: $strassignteachers", "$site->fullname",
|
|
"<A HREF=\"$CFG->wwwroot/admin\">$stradministration</A> -> $strassignteachers");
|
|
|
|
if ($courses = get_records_sql("SELECT * from course WHERE category > 0 ORDER BY fullname")) {
|
|
|
|
print_heading(get_string("choosecourse"));
|
|
print_simple_box_start("CENTER");
|
|
foreach ($courses as $course) {
|
|
echo "<A HREF=\"teacher.php?id=$course->id\">$course->fullname</A><BR>";
|
|
}
|
|
print_simple_box_end();
|
|
} else {
|
|
print_heading(get_string("nocoursesyet"));
|
|
print_continue("$CFG->wwwroot/admin/");
|
|
}
|
|
print_footer();
|
|
exit;
|
|
}
|
|
|
|
if (! $course = get_record("course", "id", $id)) {
|
|
error("Course ID was incorrect (can't find it)");
|
|
}
|
|
|
|
|
|
print_header("$site->fullname: $course->shortname: $strassignteachers",
|
|
"$site->fullname",
|
|
"<A HREF=\"$CFG->wwwroot/admin\">$stradministration</A> ->
|
|
<A HREF=\"teacher.php\">$strassignteachers</A> ->
|
|
$course->shortname", "");
|
|
print_heading("<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->fullname</A>");
|
|
|
|
|
|
/// Get all existing teachers for this course.
|
|
$teachers = get_course_teachers($course->id);
|
|
|
|
/// Add a teacher if one is specified
|
|
|
|
if ($add) {
|
|
if (! $user = get_record("user", "id", $add)) {
|
|
error("That teacher (id = $add) doesn't exist", "teacher.php?id=$course->id");
|
|
}
|
|
|
|
if ($teachers) {
|
|
foreach ($teachers as $tt) {
|
|
if ($tt->id == $user->id) {
|
|
error("That user is already a teacher for this course.", "teacher.php?id=$course->id");
|
|
}
|
|
}
|
|
}
|
|
|
|
$teacher->user = $user->id;
|
|
$teacher->course = $course->id;
|
|
if ($teachers) {
|
|
$teacher->authority = 2;
|
|
} else {
|
|
$teacher->authority = 1; // First teacher is the main teacher
|
|
}
|
|
$teacher->id = insert_record("user_teachers", $teacher);
|
|
if (! $teacher->id) {
|
|
error("Could not add that teacher to this course!");
|
|
}
|
|
$teachers[] = $user;
|
|
}
|
|
|
|
/// Remove a teacher if one is specified.
|
|
|
|
if ($remove) {
|
|
if (! $user = get_record("user", "id", $remove)) {
|
|
error("That teacher (id = $remove) doesn't exist", "teacher.php?id=$course->id");
|
|
}
|
|
if ($teachers) {
|
|
foreach ($teachers as $key => $tt) {
|
|
if ($tt->id == $user->id) {
|
|
remove_teacher($user->id, $course->id);
|
|
unset($teachers[$key]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/// Print the lists of existing and potential teachers
|
|
|
|
echo "<TABLE CELLPADDING=2 CELLSPACING=10 ALIGN=CENTER>";
|
|
echo "<TR><TH WIDTH=50%>$strexistingteachers</TH><TH WIDTH=50%>$strpotentialteachers</TH></TR>";
|
|
echo "<TR><TD WIDTH=50% NOWRAP VALIGN=TOP>";
|
|
|
|
/// First, show existing teachers for this course
|
|
|
|
if (! $teachers) {
|
|
echo "<P ALIGN=CENTER>$strnoexistingteachers</A>";
|
|
|
|
} else {
|
|
foreach ($teachers as $teacher) {
|
|
echo "<P ALIGN=right>$teacher->firstname $teacher->lastname, $teacher->email <A HREF=\"teacher.php?id=$course->id&remove=$teacher->id\" TITLE=\"$strremoveteacher\"><IMG SRC=\"../pix/t/right.gif\" BORDER=0></A></P>";
|
|
}
|
|
}
|
|
|
|
echo "<TD WIDTH=50% NOWRAP VALIGN=TOP>";
|
|
|
|
/// Print list of potential teachers
|
|
|
|
if ($search) {
|
|
$users = get_records_sql("SELECT * from user WHERE confirmed = 1 AND deleted = 0
|
|
AND (firstname LIKE '%$search%' OR
|
|
lastname LIKE '%$search%' OR
|
|
email LIKE '%$search%')
|
|
AND username <> 'guest' AND username <> 'changeme'");
|
|
} else {
|
|
$users = get_records_sql("SELECT * from user WHERE confirmed = 1 AND deleted = 0
|
|
AND username <> 'guest' AND username <> 'changeme'");
|
|
}
|
|
|
|
|
|
if ($users) {
|
|
foreach ($users as $user) { // Remove users who are already teachers
|
|
if ($teachers) {
|
|
foreach ($teachers as $teacher) {
|
|
if ($teacher->id == $user->id) {
|
|
continue 2;
|
|
}
|
|
}
|
|
}
|
|
$potential[] = $user;
|
|
}
|
|
}
|
|
|
|
if (! $potential) {
|
|
echo "<P ALIGN=CENTER>$strnopotentialteachers</A>";
|
|
if ($search) {
|
|
echo "<FORM ACTION=teacher.php METHOD=GET>";
|
|
echo "<INPUT TYPE=hidden NAME=id VALUE=\"$course->id\">";
|
|
echo "<INPUT TYPE=text NAME=search SIZE=20>";
|
|
echo "<INPUT TYPE=submit VALUE=\"$strsearchagain\">";
|
|
echo "</FORM>";
|
|
}
|
|
|
|
} else {
|
|
if ($search) {
|
|
echo "<P ALIGN=CENTER>($strsearchresults)</P>";
|
|
}
|
|
if (count($potential) <= 20) {
|
|
foreach ($potential as $user) {
|
|
echo "<P ALIGN=LEFT><A HREF=\"teacher.php?id=$course->id&add=$user->id\" TITLE=\"$straddteacher\"><IMG SRC=\"../pix/t/left.gif\" BORDER=0></A> $user->firstname $user->lastname, $user->email";
|
|
}
|
|
} else {
|
|
echo "<P ALIGN=CENTER>There are too many users to show.<BR>";
|
|
echo "Enter a search word here.";
|
|
echo "<FORM ACTION=teacher.php METHOD=GET>";
|
|
echo "<INPUT TYPE=hidden NAME=id VALUE=\"$course->id\">";
|
|
echo "<INPUT TYPE=text NAME=search SIZE=20>";
|
|
echo "<INPUT TYPE=submit VALUE=\"$strsearch\">";
|
|
echo "</FORM>";
|
|
}
|
|
}
|
|
|
|
echo "</TR></TABLE>";
|
|
|
|
print_footer();
|
|
|
|
?>
|