When hiding a document in a course it also hides the document in all sessions see BT#6621

1.9.x
Julio Montoya 12 years ago
parent 7cfaf5c714
commit dbdc8ccbc1
  1. 17
      main/document/document.php
  2. 45
      main/inc/lib/document.lib.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('<span title="'.$created_dir.'">'.get_lang('DirCr').'</span>', 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'));
}

@ -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

Loading…
Cancel
Save