Important bug fixed! Non-teachers could modify course!
[moodle.git] / course / view.php
CommitLineData
f9903ed0 1<?PHP // $Id$
2
3// Display the course home page.
4
b0e3a925 5 require_once("../config.php");
6 require_once("lib.php");
f9903ed0 7
388f8911 8 optional_variable($id);
9 optional_variable($name);
f9903ed0 10
388f8911 11 if (!$id and !$name) {
12 error("Must specify course id or short name");
13 }
f9903ed0 14
388f8911 15 if ($name) {
16 if (! $course = get_record("course", "shortname", $name) ) {
17 error("That's an invalid short course name");
18 }
19 } else {
20 if (! $course = get_record("course", "id", $id) ) {
21 error("That's an invalid course id");
22 }
f9903ed0 23 }
24
388f8911 25 require_login($id);
26
600149be 27 add_to_log($course->id, "course", "view", "view.php?id=$course->id", "$course->id");
f9903ed0 28
9c9f7d77 29 if (isset($edit)) {
30 if (isteacher($course->id)) {
31 if ($edit == "on") {
32 $USER->editing = true;
33 } else if ($edit == "off") {
34 $USER->editing = false;
35 }
f9903ed0 36 }
37 }
9c9f7d77 38
39 if (isset($help)) {
40 if ($help == "on") {
41 $USER->help = true;
42 } else if ($help == "off") {
43 $USER->help = false;
44 }
f9903ed0 45 }
8223d271 46
7d99d695 47 if (isset($hide)) {
48 set_section_visible($course->id, $hide, "0");
49 }
50
51 if (isset($show)) {
52 set_section_visible($course->id, $show, "1");
53 }
54
4c701e6f 55 $SESSION->fromdiscussion = "$CFG->wwwroot/course/view.php?id=$course->id";
4c701e6f 56
b8391635 57 if (! $course->category) { // This course is not a real course.
58 redirect("$CFG->wwwroot/");
59 }
60
dc0dc7d5 61 if (empty($THEME->custompix)) {
62 $pixpath = "../pix";
63 $modpixpath = "../mod";
64 } else {
65 $pixpath = "../theme/$CFG->theme/pix";
66 $modpixpath = "../theme/$CFG->theme/pix/mod";
67 }
b8391635 68
fa0626c6 69 $courseword = get_string("course");
70
b328523c 71 $loggedinas = "<p class=\"logininfo\">".user_login_string($course, $USER)."</p>";
a282d0ff 72
fa0626c6 73 print_header("$courseword: $course->fullname", "$course->fullname", "$course->shortname", "search.search", "", true,
a282d0ff 74 update_course_icon($course->id), $loggedinas);
f9903ed0 75
9c9f7d77 76 get_all_mods($course->id, $mods, $modnames, $modnamesplural, $modnamesused);
19801b2b 77
dfec7b01 78 if (! $sections = get_all_sections($course->id)) { // No sections found
79 // Double-check to be extra sure
80 if (! $section = get_record("course_sections", "course", $course->id, "section", 0)) {
81 $section->course = $course->id; // Create a default section.
82 $section->section = 0;
83 $section->visible = 1;
84 $section->id = insert_record("course_sections", $section);
85 }
86 if (! $sections = get_all_sections($course->id) ) { // Try again
19801b2b 87 error("Error finding or creating section structures for this course");
88 }
89 }
7468bf01 90
7d99d695 91
f9903ed0 92 switch ($course->format) {
b5fe4c93 93 case "weeks":
f9903ed0 94 include("weeks.php");
95 break;
b5fe4c93 96 case "social":
4567fb71 97 include("social.php");
98 break;
b5fe4c93 99 case "topics":
0b35af18 100 include("topics.php");
101 break;
4567fb71 102 default:
103 error("Course format not defined yet!");
f9903ed0 104 }
105
2c26c985 106 print_footer();
f9903ed0 107
f9903ed0 108?>