]> git.mjollnir.org Git - moodle.git/commitdiff
Changes to improve hide/show of individual activities when the last
authormoodler <moodler>
Tue, 6 May 2003 02:51:38 +0000 (02:51 +0000)
committermoodler <moodler>
Tue, 6 May 2003 02:51:38 +0000 (02:51 +0000)
action was to hide/show a topic

course/lib.php
course/mod.php

index 981ee5f94731bfb86a6bed0d51f3e0449ca3ad00..820e5b50c448daf2389dd7d8744cbc94b6ecd8e5 100644 (file)
@@ -544,6 +544,10 @@ function set_section_visible($courseid, $sectionnumber, $visibility) {
                 set_field("course_modules", "visible", "$visibility", "id", $moduleid);
             }
         }
+        $modinfo = serialize(get_array_of_activities($courseid));
+        if (!set_field("course", "modinfo", $modinfo, "id", $courseid)) {
+            error("Could not cache module information!");
+        }
     }
 }
 
index a482bf56178d23f7f9cbe0fff0adf1d565f17933..f6e05c7601e2ea5113f01641dbd4107aa40af356 100644 (file)
@@ -5,6 +5,7 @@
     require("../config.php");
     require("lib.php");
 
+
     if (isset($cancel)) {  
         if (!empty($SESSION->returnpage)) {
             $return = $SESSION->returnpage;
             error("Could not cache module information!");
         }
 
-        redirect($_SERVER["HTTP_REFERER"]);
+        $site = get_site();
+        if ($site->id == $cm->course) {
+            redirect($CFG->wwwroot);
+        } else {
+            redirect("view.php?id=$cm->course");
+        }
         exit;
 
     } else if (isset($hide)) {
             error("Could not cache module information!");
         }
 
-        redirect($_SERVER["HTTP_REFERER"]);
+        $site = get_site();
+        if ($site->id == $cm->course) {
+            redirect($CFG->wwwroot);
+        } else {
+            redirect("view.php?id=$cm->course");
+        }
         exit;
 
     } else if (isset($show)) {
         if (! $cm = get_record("course_modules", "id", $show)) {
             error("This course module doesn't exist");
         }
-   
-        show_course_module($show);
 
-        $modinfo = serialize(get_array_of_activities($cm->course));
-        if (!set_field("course", "modinfo", $modinfo, "id", $cm->course)) {
-            error("Could not cache module information!");
+        $site = get_site();
+
+        if ($cm->visible or $site->id == $cm->course) {
+            show_course_module($show);
+            $modinfo = serialize(get_array_of_activities($cm->course));
+            if (!set_field("course", "modinfo", $modinfo, "id", $cm->course)) {
+                error("Could not cache module information!");
+            }
         }
 
-        redirect($_SERVER["HTTP_REFERER"]);
+        if ($site->id == $cm->course) {
+            redirect($CFG->wwwroot);
+        } else {
+            redirect("view.php?id=$cm->course");
+        }
         exit;
 
     } else if (isset($delete)) {   // value = course module