Browse Source

Fix queries.

Julio Montoya 10 years ago
parent
commit
15be99a991
2 changed files with 12 additions and 11 deletions
  1. 7 7
      main/inc/lib/course.lib.php
  2. 5 4
      main/inc/lib/document.lib.php

+ 7 - 7
main/inc/lib/course.lib.php

@@ -1276,20 +1276,20 @@ class CourseManager
                 $sessionCondition = " session_course_user.session_id IN ('$sessionIdListTostring') ";
             }
 
-            $courseCondition = " course.code = '".$course_code."' AND ";
+            $courseCondition = " course.code = '".$course_code."' ";
             if (!empty($courseCodeList)) {
                 $courseCodeListForSession = array_map(array('Database', 'escape_string'), $courseCodeList);
                 $courseCodeListForSession = implode('","', $courseCodeListForSession);
-                $courseCondition = ' course.code IN ("' . $courseCodeListForSession . '") AND ';
+                $courseCondition = ' course.code IN ("' . $courseCodeListForSession . '")  ';
             }
 
             $sql .= ' FROM ' . Database::get_main_table(TABLE_MAIN_USER) . ' as user ';
             $sql .= " LEFT JOIN ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . " as session_course_user
                       ON
                         user.user_id = session_course_user.user_id AND
-                        $courseCondition
                         $sessionCondition
-                        INNER JOIN $course_table course ON session_course_user.c_id = course.id
+                        INNER JOIN $course_table course ON session_course_user.c_id = course.id AND
+                        $courseCondition
                         INNER JOIN $sessionTable session ON session_course_user.session_id = session.id
                    ";
             $where[] = ' session_course_user.c_id IS NOT NULL ';
@@ -1330,10 +1330,10 @@ class CourseManager
             $sql .= ' LEFT JOIN ' . Database::get_main_table(TABLE_MAIN_COURSE_USER) . ' as course_rel_user
                         ON user.user_id = course_rel_user.user_id AND
                         course_rel_user.relation_type <> ' . COURSE_RELATION_TYPE_RRHH . '  ';
+            $sql .= " INNER JOIN $course_table course ON course_rel_user.c_id = course.id ";
+
             if (!empty($course_code)) {
                 $sql .= ' AND course_rel_user.c_id="' . $courseId . '"';
-            } else {
-                $sql .= " INNER JOIN $course_table course ON course_rel_user.c_id = course.id ";
             }
             $where[] = ' course_rel_user.c_id IS NOT NULL ';
 
@@ -4939,7 +4939,7 @@ class CourseManager
             }
         }
         if (!empty($accessUrlId) && $accessUrlId == intval($accessUrlId)) {
-            $sql = "SELECT count(id) FROM $tableCourse c, $tableCourseRelAccessUrl u
+            $sql = "SELECT count(c.id) FROM $tableCourse c, $tableCourseRelAccessUrl u
                     WHERE
                         c.id = u.c_id AND
                         u.access_url_id = $accessUrlId AND

+ 5 - 4
main/inc/lib/document.lib.php

@@ -807,7 +807,7 @@ class DocumentManager
             // No invisible folders
             // Condition for the session
             $session_id = api_get_session_id();
-            $condition_session = api_get_session_condition($session_id);
+            $condition_session = api_get_session_condition($session_id, true, false, 'docs.session_id');
             //get visible folders
             $sql = "SELECT DISTINCT docs.id, path
                     FROM
@@ -817,7 +817,8 @@ class DocumentManager
                         docs.filetype = 'folder' AND
                         last.tool = '" . TOOL_DOCUMENT . "' AND
                         last.to_group_id = " . $to_group_id . " AND
-                        last.visibility = 1 $condition_session AND
+                        last.visibility = 1
+                        $condition_session AND
                         last.c_id = {$_course['real_id']}  AND
                         docs.c_id = {$_course['real_id']} ";
             $result = Database::query($sql);
@@ -828,7 +829,7 @@ class DocumentManager
 
             // Condition for the session
             $session_id = api_get_session_id();
-            $condition_session = api_get_session_condition($session_id);
+            $condition_session = api_get_session_condition($session_id, true, false, 'docs.session_id');
             //get invisible folders
             $sql = "SELECT DISTINCT docs.id, path
                     FROM $TABLE_ITEMPROPERTY AS last, $TABLE_DOCUMENT AS docs
@@ -845,7 +846,7 @@ class DocumentManager
             while ($row = Database::fetch_array($result, 'ASSOC')) {
                 //condition for the session
                 $session_id = api_get_session_id();
-                $condition_session = api_get_session_condition($session_id);
+                $condition_session = api_get_session_condition($session_id, true, false, 'docs.session_id');
                 //get visible folders in the invisible ones -> they are invisible too
                 $sql = "SELECT DISTINCT docs.id, path
                         FROM $TABLE_ITEMPROPERTY AS last, $TABLE_DOCUMENT AS docs