浏览代码

Fix selector see BT#12010

jmontoyaa 8 年之前
父节点
当前提交
42e982f4f0
共有 2 个文件被更改,包括 19 次插入7 次删除
  1. 10 4
      main/document/document.php
  2. 9 3
      main/inc/lib/document.lib.php

+ 10 - 4
main/document/document.php

@@ -1019,7 +1019,9 @@ if ($is_allowed_to_edit ||
             $folders = DocumentManager::get_all_document_folders(
                 $courseInfo,
                 $groupIid,
-                $is_allowed_to_edit || $group_member_with_upload_rights
+                $is_allowed_to_edit || $group_member_with_upload_rights,
+                false,
+                $curdirpath
             );
 
             // filter if is my shared folder. TODO: move this code to build_move_to_selector function
@@ -1547,14 +1549,18 @@ if ($groupId != 0) {
         $folders = DocumentManager::get_all_document_folders(
             $courseInfo,
             $groupIid,
-            $is_allowed_to_edit || $group_member_with_upload_rights
+            $is_allowed_to_edit || $group_member_with_upload_rights,
+            false,
+            $curdirpath
         );
     }
 } else {
     $folders = DocumentManager::get_all_document_folders(
         $courseInfo,
-        $groupIid,
-        $is_allowed_to_edit || $group_member_with_upload_rights
+        0,
+        $is_allowed_to_edit || $group_member_with_upload_rights,
+        false,
+        $curdirpath
     );
 }
 

+ 9 - 3
main/inc/lib/document.lib.php

@@ -744,6 +744,7 @@ class DocumentManager
      * @param int $groupIid iid
      * @param boolean $can_see_invisible
      * @param boolean $getInvisibleList
+     * @param string $path current path
      *
      * @return array with paths
      */
@@ -751,7 +752,8 @@ class DocumentManager
         $_course,
         $groupIid = 0,
         $can_see_invisible = false,
-        $getInvisibleList = false
+        $getInvisibleList = false,
+        $path = ''
     ) {
         $TABLE_ITEMPROPERTY = Database::get_course_table(TABLE_ITEM_PROPERTY);
         $TABLE_DOCUMENT = Database::get_course_table(TABLE_DOCUMENT);
@@ -763,8 +765,8 @@ class DocumentManager
             api_get_session_id()
         );
 
+        $conditionList = array();
         if (!empty($students)) {
-            $conditionList = array();
             foreach ($students as $studentId => $studentInfo) {
                 $conditionList[] = '/shared_folder/sf_user_' . $studentInfo['user_id'];
             }
@@ -783,7 +785,11 @@ class DocumentManager
         if ($can_see_invisible) {
             // condition for the session
             $session_id = api_get_session_id();
-            $condition_session = api_get_session_condition($session_id, true, false, 'docs.session_id');
+            //$condition_session = api_get_session_condition($session_id, true, false, 'docs.session_id');
+
+            $session_id = $session_id ?: api_get_session_id();
+            $condition_session = " AND (last.session_id = '$session_id' OR (last.session_id = '0' OR last.session_id IS NULL) )";
+            $condition_session .= self::getSessionFolderFilters($path, $session_id);
 
             if ($groupIid <> 0) {
                 $sql = "SELECT DISTINCT docs.id, path