New function to detect visibility of a single module, and
authormoodler <moodler>
Fri, 25 Apr 2003 05:24:29 +0000 (05:24 +0000)
committermoodler <moodler>
Fri, 25 Apr 2003 05:24:29 +0000 (05:24 +0000)
use of this function when displaying list of forums

lib/datalib.php
mod/forum/index.php

index ed94653edea1d88e828287bd101464feca531f57..a3a054cc1658ca04833c813bd9265db980759811 100644 (file)
@@ -1024,6 +1024,31 @@ function get_all_instances_in_course($modulename, $courseid, $sort="cw.section")
 }
 
 
+function instance_is_visible($moduletype, $module) {
+/// Given a valid module object with info about the id and course, 
+/// and the module's type (eg "forum") returns whether the object 
+/// is visible or not
+
+    global $CFG;
+
+    if ($records = get_records_sql("SELECT f.id, cm.visible
+                                    FROM {$CFG->prefix}course_modules cm,
+                                         {$CFG->prefix}forum f,
+                                         {$CFG->prefix}modules m
+                                   WHERE cm.course = '$module->course' AND
+                                         cm.module = m.id AND 
+                                         m.name = '$moduletype' AND 
+                                         cm.instance = f.id AND 
+                                         f.id = '$module->id'")) {
+
+        foreach ($records as $record) { // there should only be one - use the first one
+            return $record->visible;
+        }
+    }
+
+    return true;  // visible by default!
+}
+
 
 
 
index eb150e0551e2eed596f4fea2040140ba6dfc8605..d610abb2e4a112feb834202f283231798b2bc49b 100644 (file)
         $table->align[] = "CENTER";
     }
 
-    //Obtains all the forum data and visible field
-    if ($forums = get_records_sql("SELECT f.*,cm.visible as visible
-                                   FROM {$CFG->prefix}course_modules cm,
-                                        {$CFG->prefix}forum f,
-                                        {$CFG->prefix}modules md
-                                   WHERE cm.course = '$id' AND
-                                         f.course = '$id' AND
-                                         md.name = 'forum' AND
-                                         md.id = cm.module AND
-                                         f.id = cm.instance
-                                   ORDER BY f.name"))
-       {
+    if ($forums = get_records("forum", "course", $id, "name ASC")) {
         foreach ($forums as $forum) {
+            $forum->visible = true;
             switch ($forum->type) {
                 case "news":
                 case "social":
+                    $forum->visible = instance_is_visible("forum", $forum);
                     $generalforums[] = $forum;
                     break;
                 case "teacher": 
         foreach ($generalforums as $forum) {
             $count = count_records("forum_discussions", "forum", "$forum->id");
 
-            //Calculate the href
-            if (!$forum->visible) {
-                //Show dimmed if the mod is hidden
-                $tt_href = "<A class=\"dimmed\" HREF=\"view.php?f=$forum->id\">$forum->name</A>";
+            if ($forum->visible) {
+                $forumlink = "<a href=\"view.php?f=$forum->id\">$forum->name</a>";
             } else {
-            //Show normal if the mod is visible
-                $tt_href = "<A HREF=\"view.php?f=$forum->id\">$forum->name</A>";
+                $forumlink = "<a class=\"dimmed\" href=\"view.php?f=$forum->id\">$forum->name</a>";
             }
 
             if ($can_subscribe) {
                         $subscribed = get_string("no");
                         $subtitle = get_string("subscribe", "forum");
                     }
-                    $sublink = "<A TITLE=\"$subtitle\" HREF=\"subscribe.php?id=$forum->id\">$subscribed</A>";
+                    $sublink = "<a title=\"$subtitle\" href=\"subscribe.php?id=$forum->id\">$subscribed</a>";
                 }
-                $table->data[] = array ($tt_href, "$forum->intro", "$count", "$sublink");
+                $table->data[] = array ($forumlink, "$forum->intro", "$count", $sublink);
             } else {
-                $table->data[] = array ($tt_href, "$forum->intro", "$count");
+                $table->data[] = array ($forumlink, "$forum->intro", "$count");
             }
         }
         print_heading(get_string("generalforums", "forum"));
                     $forum->section = "";
                 }
 
-                //Calculate the href
-                if (!$forum->visible) {
-                    //Show dimmed if the mod is hidden
-                    $tt_href = "<A class=\"dimmed\" HREF=\"view.php?f=$forum->id\">$forum->name</A>";
+                if ($forum->visible) {
+                    $forumlink = "<a href=\"view.php?f=$forum->id\">$forum->name</a>";
                 } else {
-                //Show normal if the mod is visible
-                    $tt_href = "<A HREF=\"view.php?f=$forum->id\">$forum->name</A>";
+                    $forumlink = "<a class=\"dimmed\" href=\"view.php?f=$forum->id\">$forum->name</a>";
                 }
-
+    
                 if ($can_subscribe) {
                     if (forum_is_forcesubscribed($forum->id)) {
                         $sublink = get_string("yes");
                             $subscribed = get_string("no");
                             $subtitle = get_string("subscribe", "forum");
                         }
-                        $sublink = "<A TITLE=\"$subtitle\" HREF=\"subscribe.php?id=$forum->id\">$subscribed</A>";
+                        $sublink = "<a title=\"$subtitle\" href=\"subscribe.php?id=$forum->id\">$subscribed</a>";
                     }
-                    $table->data[] = array ("$forum->section", $tt_href, "$forum->intro", "$count", "$sublink");
+                    $table->data[] = array ("$forum->section", $forumlink, "$forum->intro", "$count", "$sublink");
                 } else {
-                    $table->data[] = array ("$forum->section", $tt_href, "$forum->intro", "$count");
+                    $table->data[] = array ("$forum->section", $forumlink, "$forum->intro", "$count");
                 }
             }
             print_heading(get_string("learningforums", "forum"));