]> git.mjollnir.org Git - moodle.git/commitdiff
Split get-courses_page from get-courses so they can specialise
authormoodler <moodler>
Thu, 21 Aug 2003 14:04:04 +0000 (14:04 +0000)
committermoodler <moodler>
Thu, 21 Aug 2003 14:04:04 +0000 (14:04 +0000)
course/category.php
course/search.php
lib/datalib.php

index e9df6bc411b58c5116d41105a5f2c3ce245b9059..b74127a765525932c1610cd34b7a3667f86d9fe2 100644 (file)
 
 /// Print out all the courses
 
-    if (!$courses = get_courses($category->id, "c.sortorder ASC", "c.*", $totalcount, $page*$perpage, $perpage)) {
+    if (!$courses = get_course_pages($category->id, "c.sortorder ASC", "c.*", $totalcount, $page*$perpage, $perpage)) {
         print_heading(get_string("nocoursesyet"));
 
     } else {
 
-        echo "<center>";
         print_paging_bar($totalcount, $page, $perpage, "category.php?id=$category->id&perpage=$perpage&");
-        echo "</center>";
 
         $strcourses  = get_string("courses");
         $strselect   = get_string("select");
index e97ae12f65fe3a4705ad91fe070b4f5c4dc198dd..5dd76458c46ba2b752dbc56dd6f95a4c584fe046 100644 (file)
@@ -66,9 +66,7 @@
 
         print_heading("$strsearchresults: $totalcount");
 
-        echo "<center>";
         print_paging_bar($totalcount, $page, $perpage, "search.php?search=$search&perpage=$perpage&");
-        echo "</center>";
 
         foreach ($courses as $course) {
             $course->fullname = highlight("$search", $course->fullname);
@@ -81,9 +79,7 @@
             print_spacer(5,5);
         }
 
-        echo "<center>";
         print_paging_bar($totalcount, $page, $perpage, "search.php?search=$search&perpage=$perpage&");
-        echo "</center>";
 
     } else {
         print_heading(get_string("nocoursesfound", "", $search));
index 209544efaa88d9f71c3c59eae3edcd26dc4b9a9f..569ba3bf9398a85ad417fded782dcae8c3eeb3e5 100644 (file)
@@ -1108,8 +1108,7 @@ function get_site () {
 }
 
 
-function get_courses($categoryid="all", $sort="c.sortorder ASC", $fields="c.*", 
-                     &$totalcount, $limitfrom="", $limitnum="") {
+function get_courses($categoryid="all", $sort="c.sortorder ASC", $fields="c.*") {
 /// Returns list of courses, for whole site, or category
 
     global $USER, $CFG;
@@ -1132,6 +1131,37 @@ function get_courses($categoryid="all", $sort="c.sortorder ASC", $fields="c.*",
         $visiblecourses = "AND c.visible > 0";
     }
 
+    $selectsql = "{$CFG->prefix}course c $teachertable WHERE $categoryselect $visiblecourses";
+
+    return get_records_sql("SELECT $fields FROM $selectsql $teachergroup ORDER BY $sort");
+}
+
+
+function get_courses_page($categoryid="all", $sort="c.sortorder ASC", $fields="c.*", 
+                          &$totalcount, $limitfrom="", $limitnum="") {
+/// Returns list of courses, for whole site, or category
+/// Similar to get_courses, but allows paging
+
+    global $USER, $CFG;
+
+    $categoryselect = "";
+    if ($categoryid != "all") {
+        $categoryselect = "c.category = '$categoryid'";
+    }
+
+    $teachertable = "";
+    $teachergroup = "";
+    $visiblecourses = "";
+    if (!empty($USER)) {  // May need to check they are a teacher
+        if (!isadmin()) {
+            $visiblecourses = "AND ((c.visible > 0) OR (t.userid = '$USER->id' AND t.course = c.id))";
+            $teachertable = ", {$CFG->prefix}user_teachers t";
+            $teachergroup = "GROUP BY c.id";
+        }
+    } else {
+        $visiblecourses = "AND c.visible > 0";
+    }
+
     if ($limitfrom !== "") {
         switch ($CFG->dbtype) {
             case "mysql":