diff --git a/main/document/document.php b/main/document/document.php index 7bb89fdd3b..757a1384f2 100644 --- a/main/document/document.php +++ b/main/document/document.php @@ -710,6 +710,10 @@ if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_fold null, $session_id )) { + // Update visibility of the document in all sessions + if (empty($session_id)) { + DocumentManager::updateVisibilityFromAllSessions($_course, $documentId, $visibilityCommand, api_get_user_id()); + } Display::display_confirmation_message(get_lang('VisibilityChanged').': '.$data['path']); } else { Display::display_error_message(get_lang('ViModProb')); @@ -729,13 +733,16 @@ if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_fold null, $session_id )) { + // Update visibility of the document in all sessions + if (empty($session_id)) { + DocumentManager::updateVisibilityFromAllSessions($_course, $documentId, $visibilityCommand, api_get_user_id()); + } Display::display_confirmation_message(get_lang('VisibilityChanged').': '.$data['path']); } else { Display::display_error_message(get_lang('ViModProb')); } break; case 'delete': - foreach ($files as $path) { if (!$is_allowed_to_edit) { if (DocumentManager::check_readonly($_course, api_get_user_id(), $path)) { @@ -783,9 +790,6 @@ if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_fold if ($created_dir) { Display::display_confirmation_message(''.get_lang('DirCr').'', false); - // Uncomment if you want to enter the created dir - //$curdirpath = $created_dir; - //$curdirpathurl = urlencode($curdirpath); } else { Display::display_error_message(get_lang('CannotCreateDir')); } @@ -828,6 +832,11 @@ if ($is_allowed_to_edit) { // Update item_property to change visibility if (api_item_property_update($_course, TOOL_DOCUMENT, $update_id, $visibility_command, api_get_user_id(), null, null, null, null, $session_id)) { Display::display_confirmation_message(get_lang('VisibilityChanged')); //don't use ViMod because firt is load ViMdod (Gradebook). VisibilityChanged (trad4all) + + if (empty($session_id)) { + DocumentManager::updateVisibilityFromAllSessions($_course, $update_id, $visibility_command, api_get_user_id()); + } + } else { Display::display_error_message(get_lang('ViModProb')); } diff --git a/main/inc/lib/document.lib.php b/main/inc/lib/document.lib.php index 129c504bf1..3b47fdeeeb 100644 --- a/main/inc/lib/document.lib.php +++ b/main/inc/lib/document.lib.php @@ -14,16 +14,21 @@ /** * Code */ -class DocumentManager { - - private function __construct() { +class DocumentManager +{ + /** + * + */ + private function __construct() + { } /** * @return the document folder quota for the current course, in bytes, or the default quota */ - public static function get_course_quota($course_code = null) { + public static function get_course_quota($course_code = null) + { if (empty($course_code)) { $course_info = api_get_course_info(); } else { @@ -497,7 +502,7 @@ class DocumentManager { // Condition for the session $current_session_id = api_get_session_id(); - $condition_session = " AND (id_session = '$current_session_id' OR id_session = '0')"; + $condition_session = " AND (id_session = '$current_session_id' OR (id_session = '0') )"; // Condition for search (get ALL folders and documents) @@ -3304,6 +3309,36 @@ class DocumentManager { return $defaultVisibility; } + /** + * @param array $courseInfo + * @param int $id doc id + * @param string $visibility visible/invisible + * @param int $userId + */ + public static function updateVisibilityFromAllSessions($courseInfo, $id, $visibility, $userId) + { + $sessionList = SessionManager::get_session_by_course($courseInfo['code']); + + if (!empty($sessionList)) { + foreach ($sessionList as $session) { + $sessionId = $session['id']; + api_item_property_update( + $courseInfo, + TOOL_DOCUMENT, + $id, + $visibility, + $userId, + null, + null, + null, + null, + $sessionId + ); + } + } + + } + } //end class DocumentManager