moodle/course/view.php
moodler 73047f2f76 OK, this is a new scheme to allow some teachers to edit and others to not
that is much better than the proposal to change the role of course creators.

There is a new field in user_teachers called "editall", which is
ON BY DEFAULT, and allows teachers to edit courses.  It can be modified
on the teacher editing screen (formerly assign teachers).

The value is cached in the session.

To test for it, there is a new function isteacheredit($course->id)
which works much like isteacher did.

I'm going through now and applying this new function wherever
it is needed.
2003-08-16 05:19:24 +00:00

104 lines
3.1 KiB
PHP

<?PHP // $Id$
// Display the course home page.
require_once("../config.php");
require_once("lib.php");
optional_variable($id);
optional_variable($name);
if (!$id and !$name) {
error("Must specify course id or short name");
}
if ($name) {
if (! $course = get_record("course", "shortname", $name) ) {
error("That's an invalid short course name");
}
} else {
if (! $course = get_record("course", "id", $id) ) {
error("That's an invalid course id");
}
}
require_login($course->id);
add_to_log($course->id, "course", "view", "view.php?id=$course->id", "$course->id");
if (isteacheredit($course->id)) {
if (isset($edit)) {
if ($edit == "on") {
$USER->editing = true;
} else if ($edit == "off") {
$USER->editing = false;
}
}
if (isset($hide)) {
set_section_visible($course->id, $hide, "0");
}
if (isset($show)) {
set_section_visible($course->id, $show, "1");
}
if (!empty($section)) {
if (!empty($move)) {
move_section($course, $section, $move);
}
}
} else {
$USER->editing = false;
}
$SESSION->fromdiscussion = "$CFG->wwwroot/course/view.php?id=$course->id";
if (! $course->category) { // This course is not a real course.
redirect("$CFG->wwwroot/");
}
if (empty($THEME->custompix)) {
$pixpath = "../pix";
$modpixpath = "../mod";
} else {
$pixpath = "../theme/$CFG->theme/pix";
$modpixpath = "../theme/$CFG->theme/pix/mod";
}
$courseword = get_string("course");
$loggedinas = "<p class=\"logininfo\">".user_login_string($course, $USER)."</p>";
print_header("$courseword: $course->fullname", "$course->fullname", "$course->shortname", "search.search", "", true,
update_course_icon($course->id), $loggedinas);
get_all_mods($course->id, $mods, $modnames, $modnamesplural, $modnamesused);
if (! $sections = get_all_sections($course->id)) { // No sections found
// Double-check to be extra sure
if (! $section = get_record("course_sections", "course", $course->id, "section", 0)) {
$section->course = $course->id; // Create a default section.
$section->section = 0;
$section->visible = 1;
$section->id = insert_record("course_sections", $section);
}
if (! $sections = get_all_sections($course->id) ) { // Try again
error("Error finding or creating section structures for this course");
}
}
if (empty($course->modinfo)) { // Course cache was never made
rebuild_course_cache($course->id);
}
if (!file_exists("$CFG->dirroot/course/format/$course->format.php")) { // Default format is weeks
$course->format = "weeks";
}
require("$CFG->dirroot/course/format/$course->format.php"); // Include the actual course format
print_footer();
?>