diff --git a/main/admin/special_exports.php b/main/admin/special_exports.php
index c053bd34f8..1ba1bf5215 100755
--- a/main/admin/special_exports.php
+++ b/main/admin/special_exports.php
@@ -46,7 +46,9 @@ $error =0;
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
-if ((isset ($_POST['action']) && $_POST['action'] == 'course_select_form') || (isset ($_POST['backup_option']) && $_POST['backup_option'] == 'full_backup')) {
+if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') ||
+ (isset ($_POST['backup_option']) && $_POST['backup_option'] == 'full_backup')
+) {
$export = false;
if (isset ($_POST['action']) && $_POST['action'] == 'course_select_form') {
$FileZip = create_zip();
@@ -58,6 +60,11 @@ if ((isset ($_POST['action']) && $_POST['action'] == 'course_select_form') || (i
$ListSession[$rows_session['id']] = $rows_session['name'];
}
+ $groupCondition = " props.to_group_id = $to_group_id";
+ if (empty($to_group_id)) {
+ $groupCondition = " (props.to_group_id = 0 OR props.to_group_id IS NULL)";
+ }
+
$zip_folder=new PclZip($FileZip['TEMP_FILE_ZIP']);
if(!isset($_POST['resource']) || count($_POST['resource']) == 0 ) {
Display::display_error_message(get_lang('ErrorMsgSpecialExport'));
@@ -76,15 +83,20 @@ if ((isset ($_POST['action']) && $_POST['action'] == 'course_select_form') || (i
AND docs.id=props.ref
AND docs.path LIKE '".$querypath."/%'
AND docs.filetype='file'
- AND docs.session_id = '0'
+ AND (docs.session_id = '0' OR docs.session_id IS NULL)
AND props.visibility<>'2'
- AND props.to_group_id= $to_group_id AND docs.c_id = $course_id AND props.c_id = $course_id";
+ AND $groupCondition
+ AND docs.c_id = $course_id
+ AND props.c_id = $course_id";
$query = Database::query($sql );
while ($rows_course_file = Database::fetch_assoc($query)) {
- $zip_folder->add($FileZip['PATH_COURSE'].$_course['directory']."/document".$rows_course_file['path'],
- PCLZIP_OPT_ADD_PATH, $_course['directory'],
- PCLZIP_OPT_REMOVE_PATH, $FileZip['PATH_COURSE'].$_course['directory']."/document".$FileZip['PATH_REMOVE']
- );
+ $zip_folder->add(
+ $FileZip['PATH_COURSE'].$_course['directory']."/document".$rows_course_file['path'],
+ PCLZIP_OPT_ADD_PATH,
+ $_course['directory'],
+ PCLZIP_OPT_REMOVE_PATH,
+ $FileZip['PATH_COURSE'].$_course['directory']."/document".$FileZip['PATH_REMOVE']
+ );
}
foreach ($Sessions as $IdSession => $value){
@@ -97,13 +109,18 @@ if ((isset ($_POST['action']) && $_POST['action'] == 'course_select_form') || (i
AND docs.filetype='file'
AND docs.session_id = '$session_id'
AND props.visibility<>'2'
- AND props.to_group_id= $to_group_id AND docs.c_id = $course_id AND props.c_id = $course_id";
+ AND $groupCondition
+ AND docs.c_id = $course_id
+ AND props.c_id = $course_id";
$query_session_doc = Database::query($sql_session_doc);
while ($rows_course_session_file = Database::fetch_assoc($query_session_doc)) {
- $zip_folder->add($FileZip['PATH_COURSE'].$_course['directory'].'/document'.$rows_course_session_file['path'],
- PCLZIP_OPT_ADD_PATH, $_course['directory']."/".$ListSession[$session_id],
- PCLZIP_OPT_REMOVE_PATH, $FileZip['PATH_COURSE'].$_course['directory'].'/document'.$FileZip['PATH_REMOVE']
- );
+ $zip_folder->add(
+ $FileZip['PATH_COURSE'].$_course['directory'].'/document'.$rows_course_session_file['path'],
+ PCLZIP_OPT_ADD_PATH,
+ $_course['directory']."/".$ListSession[$session_id],
+ PCLZIP_OPT_REMOVE_PATH,
+ $FileZip['PATH_COURSE'].$_course['directory'].'/document'.$FileZip['PATH_REMOVE']
+ );
}
}
}
@@ -211,6 +228,11 @@ function fullexportspecial(){
$tbl_document = Database::get_course_table(TABLE_DOCUMENT);
$tbl_property = Database::get_course_table(TABLE_ITEM_PROPERTY);
+ $groupCondition = " props.to_group_id = $to_group_id";
+ if (empty($to_group_id)) {
+ $groupCondition = " (props.to_group_id = 0 OR props.to_group_id IS NULL)";
+ }
+
if (count($list_course) >0 ) {
foreach($list_course as $_course) {
@@ -227,9 +249,11 @@ function fullexportspecial(){
AND docs.id=props.ref
AND docs.path LIKE '".$querypath."/%'
AND docs.filetype='file'
- AND docs.session_id = '0'
+ AND (docs.session_id = '0' OR docs.session_id IS NULL)
AND props.visibility<>'2'
- AND props.to_group_id=".$to_group_id." AND docs.c_id = $course_id AND props.c_id = $course_id";
+ AND $groupCondition
+ AND docs.c_id = $course_id
+ AND props.c_id = $course_id";
$query = Database::query($sql );
while ($rows_course_file = Database::fetch_assoc($query)) {
$rows_course_file['path'];
@@ -256,7 +280,9 @@ function fullexportspecial(){
AND docs.filetype='file'
AND docs.session_id = '$session_id'
AND props.visibility<>'2'
- AND props.to_group_id=".$to_group_id." AND docs.c_id = $course_id AND props.c_id = $course_id ";
+ AND $groupCondition
+ AND docs.c_id = $course_id
+ AND props.c_id = $course_id ";
$query_session_doc = Database::query($sql_session_doc);
while ($rows_course_session_file = Database::fetch_assoc($query_session_doc)) {
$zip_folder->add($FileZip['PATH_COURSE'].$_course['directory'].'/document'.$rows_course_session_file['path'],
diff --git a/main/chat/chat_functions.lib.php b/main/chat/chat_functions.lib.php
index 1e504fba72..d6841061e0 100755
--- a/main/chat/chat_functions.lib.php
+++ b/main/chat/chat_functions.lib.php
@@ -27,10 +27,14 @@ function user_connected_in_chat($user_id)
$extra_condition = api_get_session_condition($session_id);
}
- $sql = 'SELECT COUNT(*) AS count FROM '.$tbl_chat_connected .' c
- WHERE c_id = '.$course_id.' AND user_id='.$user_id.$extra_condition;
+ $sql = 'SELECT COUNT(*) AS count
+ FROM '.$tbl_chat_connected .' c
+ WHERE
+ c_id = '.$course_id.' AND
+ user_id='.$user_id.$extra_condition;
$result = Database::query($sql);
$count = Database::fetch_array($result,'ASSOC');
+
return $count['count'] == 1;
}
diff --git a/main/chat/chat_hidden.php b/main/chat/chat_hidden.php
index 28e9779970..629bde69c4 100755
--- a/main/chat/chat_hidden.php
+++ b/main/chat/chat_hidden.php
@@ -70,11 +70,12 @@ if (file_exists($file)) {
$chat_size_new = filesize($file);
}
-$sql = "SELECT user_id FROM $tbl_chat_connected WHERE user_id='".$userId."' $extra_condition";
+$sql = "SELECT user_id FROM $tbl_chat_connected
+ WHERE user_id='".$userId."' $extra_condition";
$result = Database::query($sql);
// The user_id exists so we must do an UPDATE and not a INSERT
-$current_time = date('Y-m-d H:i:s');
+$current_time = api_get_utc_datetime();
if (Database::num_rows($result) == 0) {
$query = "INSERT INTO $tbl_chat_connected(c_id, user_id,last_connection,session_id,to_group_id)
VALUES($course_id, '".$userId."','$current_time','$session_id','$group_id')";
diff --git a/main/coursecopy/classes/CourseRestorer.class.php b/main/coursecopy/classes/CourseRestorer.class.php
index cdbb4bc679..8c849e9202 100755
--- a/main/coursecopy/classes/CourseRestorer.class.php
+++ b/main/coursecopy/classes/CourseRestorer.class.php
@@ -218,19 +218,20 @@ class CourseRestorer
values as users/groups possibly not exist in
the target course*/
$sql = "INSERT INTO $table SET
- c_id = '".$this->destination_course_id."',
- tool = '".self::DBUTF8escapestring($property['tool'])."',
- insert_user_id = '".self::DBUTF8escapestring($property['insert_user_id'])."',
- insert_date = '".self::DBUTF8escapestring($property['insert_date'])."',
- lastedit_date = '".self::DBUTF8escapestring($property['lastedit_date'])."',
- ref = '".self::DBUTF8escapestring($resource->destination_id)."',
- lastedit_type = '".self::DBUTF8escapestring($property['lastedit_type'])."',
- lastedit_user_id = '".self::DBUTF8escapestring($property['lastedit_user_id'])."',
- visibility = '".self::DBUTF8escapestring($property['visibility'])."',
- start_visible = '".self::DBUTF8escapestring($property['start_visible'])."',
- end_visible = '".self::DBUTF8escapestring($property['end_visible'])."',
- to_user_id = '".self::DBUTF8escapestring($property['to_user_id'])."',
- to_group_id = '0' $condition_session" ;
+ c_id = '".$this->destination_course_id."',
+ tool = '".self::DBUTF8escapestring($property['tool'])."',
+ insert_user_id = '".self::DBUTF8escapestring($property['insert_user_id'])."',
+ insert_date = '".self::DBUTF8escapestring($property['insert_date'])."',
+ lastedit_date = '".self::DBUTF8escapestring($property['lastedit_date'])."',
+ ref = '".self::DBUTF8escapestring($resource->destination_id)."',
+ lastedit_type = '".self::DBUTF8escapestring($property['lastedit_type'])."',
+ lastedit_user_id = '".self::DBUTF8escapestring($property['lastedit_user_id'])."',
+ visibility = '".self::DBUTF8escapestring($property['visibility'])."',
+ start_visible = '".self::DBUTF8escapestring($property['start_visible'])."',
+ end_visible = '".self::DBUTF8escapestring($property['end_visible'])."',
+ to_user_id = '".self::DBUTF8escapestring($property['to_user_id'])."',
+ to_group_id = NULL
+ $condition_session" ;
;
Database::query($sql);
}
@@ -2352,7 +2353,8 @@ class CourseRestorer
start_visible,
end_visible
FROM '.$item_property_table.' ip
- INNER JOIN '.$work_table.' sp ON ip.ref=sp.id
+ INNER JOIN '.$work_table.' sp
+ ON ip.ref=sp.id
WHERE
sp.c_id = '.$this->course_origin_id.' AND
ip.c_id = '.$this->course_origin_id.' AND
diff --git a/main/document/document.php b/main/document/document.php
index f117a23458..e168ef8bc3 100755
--- a/main/document/document.php
+++ b/main/document/document.php
@@ -216,6 +216,7 @@ switch ($action) {
);
// Check whether the document is in the database.
+
if (!empty($documentInfo)) {
$deleteDocument = DocumentManager::delete_document(
$courseInfo,
@@ -284,7 +285,8 @@ switch ($action) {
case 'downloadfolder':
if (api_get_setting('students_download_folders') == 'true'
|| api_is_allowed_to_edit()
- || api_is_platform_admin()) {
+ || api_is_platform_admin()
+ ) {
// Get the document data from the ID
$document_data = DocumentManager::get_document_data_by_id(
$document_id,
@@ -292,6 +294,7 @@ switch ($action) {
false,
$sessionId
);
+
if ($sessionId != 0 && !$document_data) {
// If there is a session defined and asking for the
// document * from the session* didn't work, try it from the
@@ -672,8 +675,9 @@ if (isset($_GET['curdirpath']) &&
// Check whether the tool is actually visible
$table_course_tool = Database::get_course_table(TABLE_TOOL_LIST);
$course_id = api_get_course_int_id();
-$tool_sql = 'SELECT visibility FROM '.$table_course_tool.
- ' WHERE c_id = '.$course_id.' AND name = "'.TOOL_DOCUMENT.'" LIMIT 1';
+$tool_sql = 'SELECT visibility FROM '.$table_course_tool.'
+ WHERE c_id = '.$course_id.' AND name = "'.TOOL_DOCUMENT.'"
+ LIMIT 1';
$tool_result = Database::query($tool_sql);
$tool_row = Database::fetch_array($tool_result);
$tool_visibility = $tool_row['visibility'];
@@ -1335,6 +1339,7 @@ if ($is_allowed_to_edit) {
Display::return_message(get_lang('ViModProb'), 'error')
);
}
+
header('Location: '.$currentUrl);
exit;
}
@@ -1949,7 +1954,7 @@ if (count($documentAndFolders) > 1) {
$table->set_form_actions($form_action, 'ids');
}
}
-$flashMessage = Display::getFlashToString();
+
Display::display_header('', 'Doc');
/* Introduction section (editable by course admins) */
@@ -1960,16 +1965,6 @@ if (!empty($groupId)) {
Display::display_introduction_section(TOOL_DOCUMENT);
}
-$message = Session::read('message');
-
-if (!empty($message)) {
- echo $message;
-}
-
-echo $flashMessage;
-
-Session::erase('message');
-
echo $actions;
echo $templateForm;
echo $moveForm;
diff --git a/main/document/downloadfolder.inc.php b/main/document/downloadfolder.inc.php
index 7d0638dd56..3bb7497f37 100755
--- a/main/document/downloadfolder.inc.php
+++ b/main/document/downloadfolder.inc.php
@@ -102,6 +102,12 @@ function fixDocumentNameCallback($p_event, &$p_header)
return 1;
}
+
+$groupCondition = " props.to_group_id = ".$groupId;
+if (empty($groupId)) {
+ $groupCondition = " (props.to_group_id = 0 OR props.to_group_id IS NULL ) ";
+}
+
// Admins are allowed to download invisible files
if (api_is_allowed_to_edit()) {
// Set the path that will be used in the query
@@ -111,6 +117,7 @@ if (api_is_allowed_to_edit()) {
$querypath = $path;
}
$querypath = Database::escape_string($querypath);
+
// Search for all files that are not deleted => visibility != 2
$sql = "SELECT
path,
@@ -128,8 +135,8 @@ if (api_is_allowed_to_edit()) {
docs.path LIKE '".$querypath."/%' AND
docs.filetype = 'file' AND
props.visibility <> '2' AND
- props.to_group_id = ".$groupId." AND
- props.session_id IN ('0', '$sessionId') AND
+ $groupCondition AND
+ (props.session_id IN ('0', '$sessionId') OR props.session_id IS NULL) AND
docs.c_id = ".$courseId." ";
$sql.= DocumentManager::getSessionFolderFilters($querypath, $sessionId);
@@ -181,18 +188,20 @@ if (api_is_allowed_to_edit()) {
*/
$querypath = Database::escape_string($querypath);
$sql = "SELECT path, session_id, docs.id, props.to_group_id, docs.c_id
- FROM $doc_table AS docs INNER JOIN $prop_table AS props
+ FROM $doc_table AS docs
+ INNER JOIN $prop_table AS props
ON
docs.id = props.ref AND
docs.c_id = props.c_id
WHERE
- docs.c_id = $courseId AND
- props.tool = '".TOOL_DOCUMENT."' AND
- docs.path LIKE '".$querypath."/%' AND
- props.visibility = '1' AND
- docs.filetype = 'file' AND
- props.session_id IN ('0', '$sessionId') AND
- props.to_group_id = ".$groupId;
+ docs.c_id = $courseId AND
+ props.tool = '".TOOL_DOCUMENT."' AND
+ docs.path LIKE '".$querypath."/%' AND
+ props.visibility = '1' AND
+ docs.filetype = 'file' AND
+ (props.session_id IN ('0', '$sessionId') OR props.session_id IS NULL) AND
+ $groupCondition
+ ";
$sql.= DocumentManager::getSessionFolderFilters($querypath, $sessionId);
$result = Database::query($sql);
@@ -225,7 +234,7 @@ if (api_is_allowed_to_edit()) {
props.tool = '".TOOL_DOCUMENT."' AND
docs.path LIKE '".$querypath."/%' AND
props.visibility <> '1' AND
- props.session_id IN ('0', '$sessionId') AND
+ (props.session_id IN ('0', '$sessionId') OR props.session_id IS NULL) AND
docs.filetype = 'folder'";
$query2 = Database::query($sql);
@@ -247,7 +256,7 @@ if (api_is_allowed_to_edit()) {
props.tool ='".TOOL_DOCUMENT."' AND
docs.path LIKE '".$invisible_folders['path']."/%' AND
docs.filetype ='file' AND
- props.session_id IN ('0', '$sessionId') AND
+ (props.session_id IN ('0', '$sessionId') OR props.session_id IS NULL) AND
props.visibility ='1'";
$query3 = Database::query($sql);
// Add tem to an array
diff --git a/main/inc/lib/AnnouncementManager.php b/main/inc/lib/AnnouncementManager.php
index 3a5994e339..b086dee884 100755
--- a/main/inc/lib/AnnouncementManager.php
+++ b/main/inc/lib/AnnouncementManager.php
@@ -187,7 +187,8 @@ class AnnouncementManager
toolitemproperties.tool='announcement' AND
(
toolitemproperties.to_user_id='" . api_get_user_id() . "' OR
- toolitemproperties.to_group_id IN ('0', '" . implode("', '", $group_list) . "')
+ toolitemproperties.to_group_id IN ('0', '" . implode("', '", $group_list) . "') OR
+ toolitemproperties.to_group_id IS NULL
) AND
toolitemproperties.visibility='1' AND
announcement.c_id = $course_id AND
@@ -200,7 +201,7 @@ class AnnouncementManager
announcement.id = toolitemproperties.ref AND
announcement.id = '$announcement_id' AND
toolitemproperties.tool='announcement' AND
- toolitemproperties.to_group_id='0' AND
+ (toolitemproperties.to_group_id='0' OR toolitemproperties.to_group_id IS NULL) AND
toolitemproperties.visibility='1' AND
announcement.c_id = $course_id AND
toolitemproperties.c_id = $course_id
@@ -675,7 +676,7 @@ class AnnouncementManager
toolitemproperties.tool='announcement' AND
(
toolitemproperties.insert_user_id='$user_id' AND
- (toolitemproperties.to_group_id='0' OR toolitemproperties.to_group_id is null)
+ (toolitemproperties.to_group_id='0' OR toolitemproperties.to_group_id IS NULL)
)
AND toolitemproperties.visibility='1'
AND announcement.session_id = 0
@@ -1636,7 +1637,7 @@ class AnnouncementManager
if (api_get_group_id() == 0) {
$group_condition = "";
} else {
- $group_condition = " AND (ip.to_group_id='".api_get_group_id()."' OR ip.to_group_id = 0)";
+ $group_condition = " AND (ip.to_group_id='".api_get_group_id()."' OR ip.to_group_id = 0 OR ip.to_group_id IS NULL)";
}
$sql = "SELECT announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
FROM $tbl_announcement announcement, $tbl_item_property ip
@@ -1660,19 +1661,34 @@ class AnnouncementManager
if ((api_get_course_setting('allow_user_edit_announcement') && !api_is_anonymous())) {
if (api_get_group_id() == 0) {
- $cond_user_id = " AND (ip.lastedit_user_id = '".$userId."' OR ( ip.to_user_id='".$userId."'" .
- "OR ip.to_group_id IN (0, ".implode(", ", $group_memberships)."))) ";
+ $cond_user_id = " AND (
+ ip.lastedit_user_id = '".$userId."' OR (
+ ip.to_user_id='".$userId."' OR
+ ip.to_group_id IN (0, ".implode(", ", $group_memberships).") OR
+ ip.to_group_id IS NULL
+ )
+ )
+ ";
} else {
- $cond_user_id = " AND (ip.lastedit_user_id = '".$userId."'
- OR ip.to_group_id IN (0, ".api_get_group_id()."))";
+ $cond_user_id = " AND (
+ ip.lastedit_user_id = '".$userId."'OR
+ ip.to_group_id IN (0, ".api_get_group_id().") OR
+ ip.to_group_id IS NULL
+ )";
}
} else {
if (api_get_group_id() == 0) {
- $cond_user_id = " AND ( ip.to_user_id='".$userId."'" .
- "OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) ";
+ $cond_user_id = " AND (
+ ip.to_user_id='".$userId."' OR
+ ip.to_group_id IN (0, ".implode(", ", $group_memberships).") OR
+ ip.to_group_id IS NULL
+ ) ";
} else {
- $cond_user_id = " AND ( ip.to_user_id='".$userId."'" .
- "OR ip.to_group_id IN (0, ".api_get_group_id().")) ";
+ $cond_user_id = " AND (
+ ip.to_user_id='".$userId."' OR
+ ip.to_group_id IN (0, ".api_get_group_id().") OR
+ ip.to_group_id IS NULL
+ ) ";
}
}
@@ -1696,9 +1712,12 @@ class AnnouncementManager
// this is an identified user => show the general announcements AND his personal announcements
if ($userId) {
if ((api_get_course_setting('allow_user_edit_announcement') && !api_is_anonymous())) {
- $cond_user_id = " AND (ip.lastedit_user_id = '".$userId."' OR ( ip.to_user_id='".$userId."' OR ip.to_group_id='0')) ";
+ $cond_user_id = " AND (
+ ip.lastedit_user_id = '".$userId."' OR
+ ( ip.to_user_id='".$userId."' OR ip.to_group_id='0' OR ip.to_group_id IS NULL)
+ ) ";
} else {
- $cond_user_id = " AND ( ip.to_user_id='".$userId."' OR ip.to_group_id='0') ";
+ $cond_user_id = " AND ( ip.to_user_id='".$userId."' OR ip.to_group_id='0' OR ip.to_group_id IS NULL) ";
}
$sql = "SELECT announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
FROM $tbl_announcement announcement, $tbl_item_property ip
@@ -1716,7 +1735,9 @@ class AnnouncementManager
} else {
if (api_get_course_setting('allow_user_edit_announcement')) {
- $cond_user_id = " AND (ip.lastedit_user_id = '".api_get_user_id()."' OR ip.to_group_id='0') ";
+ $cond_user_id = " AND (
+ ip.lastedit_user_id = '".api_get_user_id()."' OR ip.to_group_id='0' OR ip.to_group_id IS NULL
+ ) ";
} else {
$cond_user_id = " AND ip.to_group_id='0' ";
}
diff --git a/main/inc/lib/add_course.lib.inc.php b/main/inc/lib/add_course.lib.inc.php
index 74955c5ead..1d41338640 100755
--- a/main/inc/lib/add_course.lib.inc.php
+++ b/main/inc/lib/add_course.lib.inc.php
@@ -870,11 +870,9 @@ class AddCourse
);
$image_id = Database:: insert_id();
-
-
Database::query(
"INSERT INTO $TABLEITEMPROPERTY (c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility)
- VALUES ($course_id,'document',1,'$now','$now',$image_id,'DocumentAdded',1,0,NULL,0)"
+ VALUES ($course_id,'document',1,'$now','$now',$image_id,'DocumentAdded',1,NULL,NULL,0)"
);
}
}
@@ -919,11 +917,14 @@ class AddCourse
$example_cert_id = $image_id;
}
Database::query(
- "INSERT INTO $TABLEITEMPROPERTY (c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility) VALUES ($course_id,'document',1,'$now','$now',$image_id,'DocumentAdded',1,0,NULL,1)"
+ "INSERT INTO $TABLEITEMPROPERTY (c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility)
+ VALUES ($course_id,'document',1,'$now','$now',$image_id,'DocumentAdded',1,NULL,NULL,1)"
);
$docId = Database:: insert_id();
- $sql = "UPDATE $TABLEITEMPROPERTY SET id = iid WHERE iid = $docId";
- Database::query($sql);
+ if ($docId) {
+ $sql = "UPDATE $TABLEITEMPROPERTY SET id = iid WHERE iid = $docId";
+ Database::query($sql);
+ }
}
}
}
@@ -1174,15 +1175,14 @@ class AddCourse
Database::query(
"INSERT INTO $tableItem (id, c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility)
- VALUES ($counter, $course_id,'document',1,'$now', '$now', $docId, 'DocumentAdded', 1, 0, NULL, 0)"
+ VALUES ($counter, $course_id,'document',1,'$now', '$now', $docId, 'DocumentAdded', 1, NULL, NULL, 0)"
);
-
$id = Database:: insert_id();
-
- $sql = "UPDATE $tableItem SET id = iid WHERE iid = $id";
- Database::query($sql);
+ if ($id) {
+ $sql = "UPDATE $tableItem SET id = iid WHERE iid = $id";
+ Database::query($sql);
+ }
}
-
}
/**
@@ -1511,7 +1511,7 @@ class AddCourse
}
/**
- * Generate a new id for c_tool table
+ * Generate a new id for c_tool table
* @param int $courseId The course id
* @return int the new id
*/
diff --git a/main/inc/lib/agenda.lib.php b/main/inc/lib/agenda.lib.php
index 798cee766a..a65c354920 100644
--- a/main/inc/lib/agenda.lib.php
+++ b/main/inc/lib/agenda.lib.php
@@ -1176,6 +1176,11 @@ class Agenda
$courseId = intval($courseId);
$sessionId = intval($sessionId);
+ $sessionCondition = "ip.session_id = $sessionId";
+ if (empty($sessionId)) {
+ $sessionCondition = " (ip.session_id = 0 OR ip.session_id IS NULL) ";
+ }
+
$tlb_course_agenda = Database::get_course_table(TABLE_AGENDA);
$tbl_property = Database::get_course_table(TABLE_ITEM_PROPERTY);
@@ -1185,11 +1190,11 @@ class Agenda
INNER JOIN $tlb_course_agenda agenda
ON (ip.ref = agenda.id AND ip.c_id = agenda.c_id)
WHERE
- ip.tool = '".TOOL_CALENDAR_EVENT."' AND
- ref = $eventId AND
- ip.visibility = '1' AND
+ ip.tool = '".TOOL_CALENDAR_EVENT."' AND
+ ref = $eventId AND
+ ip.visibility = '1' AND
ip.c_id = $courseId AND
- ip.session_id = $sessionId
+ $sessionCondition
";
$result = Database::query($sql);
@@ -1273,16 +1278,16 @@ class Agenda
if (api_is_allowed_to_edit()) {
if (!empty($groupId)) {
- $where_condition = "( ip.to_group_id IN (0, ".implode(", ", $group_memberships).") ) ";
+ $where_condition = "( ip.to_group_id IS NULL OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).") ) ";
} else {
if (!empty($user_id)) {
- $where_condition = "( ip.to_user_id = $user_id OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).") ) ";
+ $where_condition = "( ip.to_user_id = $user_id OR (ip.to_group_id IS NULL OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) ) ";
} else {
- $where_condition = "( ip.to_group_id is null OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).") ) ";
+ $where_condition = "( ip.to_group_id IS NULL OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).") ) ";
}
}
} else {
- $where_condition = "( ip.to_user_id = $user_id OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).") ) ";
+ $where_condition = "( ip.to_user_id = $user_id OR (ip.to_group_id IS NULL OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) ) ";
}
$sql = "SELECT DISTINCT
@@ -1309,15 +1314,16 @@ class Agenda
if ($user_id == 0) {
$where_condition = "";
} else {
- $where_condition = " ( ip.to_user_id = ".$user_id. " OR ip.to_group_id='0' ) AND ";
+ $where_condition = " ( ip.to_user_id = ".$user_id. " OR ip.to_group_id='0' OR ip.to_group_id IS NULL ) AND ";
}
$visibilityCondition = " (ip.visibility IN ('1', '0')) AND ";
} else {
- $where_condition = " ( ip.to_user_id = $user_id OR ip.to_group_id='0' ) AND ";
+ $where_condition = " ( ip.to_user_id = $user_id OR ip.to_group_id='0' OR ip.to_group_id IS NULL) AND ";
}
$sql = "SELECT DISTINCT agenda.*, ip.visibility, ip.to_group_id, ip.insert_user_id, ip.ref, to_user_id
- FROM $tlb_course_agenda agenda INNER JOIN $tbl_property ip
+ FROM $tlb_course_agenda agenda
+ INNER JOIN $tbl_property ip
ON (agenda.id = ip.ref AND agenda.c_id = ip.c_id)
WHERE
ip.tool='".TOOL_CALENDAR_EVENT."' AND
@@ -2468,7 +2474,7 @@ class Agenda
AND MONTH(agenda.start_date)='".$month."'
AND YEAR(agenda.start_date)='".$year."'
AND ip.tool='".TOOL_CALENDAR_EVENT."'
- AND ( ip.to_user_id='".$user_id."' OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).") )
+ AND ( ip.to_user_id='".$user_id."' OR (ip.to_group_id IS NULL OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) )
AND ip.visibility='1'
ORDER BY start_date ";
} else {
@@ -2479,7 +2485,7 @@ class Agenda
AND MONTH(agenda.start_date)='".$month."'
AND YEAR(agenda.start_date)='".$year."'
AND ip.tool='".TOOL_CALENDAR_EVENT."'
- AND ( ip.to_user_id='".$user_id."' OR ip.to_group_id='0')
+ AND ( ip.to_user_id='".$user_id."' OR ip.to_group_id='0' OR ip.to_group_id IS NULL)
AND ip.visibility='1'
ORDER BY start_date ";
}
@@ -2963,7 +2969,7 @@ class Agenda
" AND agenda.start_date>='$date_start' ".
" AND agenda.end_date<='$date_end' ".
" AND ip.tool='".TOOL_CALENDAR_EVENT."' ".
- " AND ( ip.to_user_id='".$user_id."' OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).") ) ".
+ " AND ( ip.to_user_id='".$user_id."' OR (ip.to_group_id IS NULL OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) ) ".
" AND ip.visibility='1' ".
" ORDER BY start_date ";
} else {
@@ -2975,7 +2981,7 @@ class Agenda
" AND agenda.start_date>='$date_start' ".
" AND agenda.end_date<='$date_end' ".
" AND ip.tool='".TOOL_CALENDAR_EVENT."' ".
- " AND ( ip.to_user_id='".$user_id."' OR ip.to_group_id='0') ".
+ " AND ( ip.to_user_id='".$user_id."' OR ip.to_group_id='0' OR ip.to_group_id IS NULL) ".
" AND ip.visibility='1' ".
" ORDER BY start_date ";
}
diff --git a/main/inc/lib/api.lib.php b/main/inc/lib/api.lib.php
index 033e661a66..ba88c2ed08 100644
--- a/main/inc/lib/api.lib.php
+++ b/main/inc/lib/api.lib.php
@@ -2375,7 +2375,7 @@ function api_get_session_condition(
$condition_add = $and ? " AND " : " WHERE ";
if ($with_base_content) {
- $condition_session = $condition_add." ( $session_field = $session_id OR $session_field = 0) ";
+ $condition_session = $condition_add." ( $session_field = $session_id OR $session_field = 0 OR $session_field IS NULL) ";
} else {
$condition_session = $condition_add." $session_field = $session_id ";
}
@@ -3622,10 +3622,19 @@ function api_item_property_update(
$lastEditTypeNoFilter = $lastedit_type;
$lastedit_type = Database::escape_string($lastedit_type);
$user_id = intval($user_id);
- $to_group_id = intval($to_group_id);
- $to_user_id = intval($to_user_id);
- $start_visible = Database::escape_string($start_visible);
- $end_visible = Database::escape_string($end_visible);
+
+ $startVisible = "NULL";
+ if (!empty($start_visible)) {
+ $start_visible = Database::escape_string($start_visible);
+ $startVisible = "'$start_visible'";
+ }
+
+ $endVisible = "NULL";
+ if (!empty($end_visible)) {
+ $end_visible = Database::escape_string($end_visible);
+ $endVisible = "'$end_visible'";
+ }
+
$to_filter = '';
$time = api_get_utc_datetime();
@@ -3644,6 +3653,7 @@ function api_item_property_update(
if (!is_null($to_user_id)) {
// $to_user_id has more priority than $to_group_id
+ $to_user_id = intval($to_user_id);
$to_field = 'to_user_id';
$to_value = $to_user_id;
} else {
@@ -3652,6 +3662,8 @@ function api_item_property_update(
$to_value = $to_group_id;
}
+ $toValueCondition = empty($to_value) ? "NULL" : "'$to_value'";
+
// Set filters for $to_user_id and $to_group_id, with priority for $to_user_id
$condition_session = '';
if (!empty($session_id)) {
@@ -3670,6 +3682,7 @@ function api_item_property_update(
if (is_null($to_user_id) && is_null($to_group_id)) {
$to_group_id = 0;
}
+
if (!is_null($to_user_id)) {
// Set filter to intended user.
$to_filter = " AND to_user_id= '$to_user_id' $condition_session";
@@ -3709,12 +3722,13 @@ function api_item_property_update(
$result = Database::query($sql);
} else {
$sql = "INSERT INTO $TABLE_ITEMPROPERTY (c_id, tool, ref, insert_date, insert_user_id, lastedit_date, lastedit_type, lastedit_user_id, $to_field, visibility, start_visible, end_visible, session_id)
- VALUES ($course_id, '$tool','$item_id','$time', '$user_id', '$time', '$lastedit_type','$user_id', '$to_value', '$visibility', '$start_visible','$end_visible', '$session_id')";
+ VALUES ($course_id, '$tool','$item_id','$time', '$user_id', '$time', '$lastedit_type','$user_id', $toValueCondition, '$visibility', $startVisible, $endVisible, '$session_id')";
$result = Database::query($sql);
-
$id = Database::insert_id();
- $sql = "UPDATE $TABLE_ITEMPROPERTY SET id = iid WHERE iid = $id";
- Database::query($sql);
+ if ($id) {
+ $sql = "UPDATE $TABLE_ITEMPROPERTY SET id = iid WHERE iid = $id";
+ Database::query($sql);
+ }
}
} else {
$sql = "UPDATE $TABLE_ITEMPROPERTY
@@ -3750,9 +3764,8 @@ function api_item_property_update(
$result = Database::query($sql);
} else {
$sql = "INSERT INTO $TABLE_ITEMPROPERTY (c_id, tool, ref, insert_date, insert_user_id, lastedit_date, lastedit_type, lastedit_user_id, $to_field, visibility, start_visible, end_visible, session_id)
- VALUES ($course_id, '$tool', '$item_id', '$time', '$user_id', '$time', '$lastedit_type', '$user_id', '$to_value', '$visibility', '$start_visible', '$end_visible', '$session_id')";
+ VALUES ($course_id, '$tool', '$item_id', '$time', '$user_id', '$time', '$lastedit_type', '$user_id', $toValueCondition, '$visibility', $startVisible, $endVisible, '$session_id')";
$result = Database::query($sql);
-
$id = Database::insert_id();
if ($id) {
$sql = "UPDATE $TABLE_ITEMPROPERTY SET id = iid WHERE iid = $id";
@@ -3793,12 +3806,13 @@ function api_item_property_update(
$result = Database::query($sql);
} else {
$sql = "INSERT INTO $TABLE_ITEMPROPERTY (c_id, tool, ref, insert_date, insert_user_id, lastedit_date, lastedit_type, lastedit_user_id,$to_field, visibility, start_visible, end_visible, session_id)
- VALUES ($course_id, '$tool', '$item_id', '$time', '$user_id', '$time', '$lastedit_type', '$user_id', '$to_value', '$visibility', '$start_visible', '$end_visible', '$session_id')";
+ VALUES ($course_id, '$tool', '$item_id', '$time', '$user_id', '$time', '$lastedit_type', '$user_id', $toValueCondition, '$visibility', $startVisible, $endVisible, '$session_id')";
$result = Database::query($sql);
-
$id = Database::insert_id();
- $sql = "UPDATE $TABLE_ITEMPROPERTY SET id = iid WHERE iid = $id";
- Database::query($sql);
+ if ($id) {
+ $sql = "UPDATE $TABLE_ITEMPROPERTY SET id = iid WHERE iid = $id";
+ Database::query($sql);
+ }
}
} else {
$sql = "UPDATE $TABLE_ITEMPROPERTY
@@ -3826,17 +3840,17 @@ function api_item_property_update(
// Insert if no entries are found (can only happen in case of $lastedit_type switch is 'default').
if (Database::affected_rows($result) == 0) {
$sessionCondition = empty($session_id) ? "NULL" : "'$session_id'";
- $toValueCondition = empty($to_value) ? "NULL" : "'$to_value'";
$sql = "INSERT INTO $TABLE_ITEMPROPERTY (c_id, tool,ref,insert_date,insert_user_id,lastedit_date,lastedit_type, lastedit_user_id, $to_field, visibility, start_visible, end_visible, session_id)
- VALUES ($course_id, '$tool', '$item_id', '$time', '$user_id', '$time', '$lastedit_type', '$user_id', $toValueCondition, '$visibility', '$start_visible', '$end_visible', $sessionCondition)";
+ VALUES ($course_id, '$tool', '$item_id', '$time', '$user_id', '$time', '$lastedit_type', '$user_id', $toValueCondition, '$visibility', $startVisible, $endVisible, $sessionCondition)";
$res = Database::query($sql);
- if (!$res) {
- $id = Database::insert_id();
+ $id = Database::insert_id();
+ if ($id) {
$sql = "UPDATE $TABLE_ITEMPROPERTY SET id = iid WHERE iid = $id";
Database::query($sql);
return false;
}
}
+
return true;
}
@@ -3999,17 +4013,22 @@ function api_get_track_item_property_history($tool, $ref)
*/
function api_get_item_property_info($course_id, $tool, $ref, $session_id = 0)
{
- $course_info = api_get_course_info_by_id($course_id);
+ $courseInfo = api_get_course_info_by_id($course_id);
- if (empty($course_info)) {
+ if (empty($courseInfo)) {
return false;
}
$tool = Database::escape_string($tool);
$ref = intval($ref);
- $course_id = $course_info['real_id'];
+ $course_id = $courseInfo['real_id'];
$session_id = intval($session_id);
+ $sessionCondition = " session_id = $session_id";
+ if (empty($session_id)) {
+ $sessionCondition = " (session_id = 0 OR session_id IS NULL) ";
+ }
+
// Definition of tables.
$table = Database::get_course_table(TABLE_ITEM_PROPERTY);
@@ -4018,13 +4037,14 @@ function api_get_item_property_info($course_id, $tool, $ref, $session_id = 0)
c_id = $course_id AND
tool = '$tool' AND
ref = $ref AND
- session_id = $session_id ";
+ $sessionCondition ";
$rs = Database::query($sql);
$row = array();
if (Database::num_rows($rs) > 0) {
$row = Database::fetch_array($rs,'ASSOC');
}
+
return $row;
}
diff --git a/main/inc/lib/display.lib.php b/main/inc/lib/display.lib.php
index 0a202f9d3a..303fb0bb5c 100755
--- a/main/inc/lib/display.lib.php
+++ b/main/inc/lib/display.lib.php
@@ -1467,7 +1467,7 @@ class Display
$my_course['id_session'] = $course_info['id_session'];
}
$label = get_lang('TitleNotification').": ".get_lang($type)." ($lastDate)";
- $retvalue .= ''.
+ $retvalue .= ''.
Display::return_icon($notification['image'], $label).' ';
}
diff --git a/main/inc/lib/document.lib.php b/main/inc/lib/document.lib.php
index 5c038e5420..46ff1e342e 100755
--- a/main/inc/lib/document.lib.php
+++ b/main/inc/lib/document.lib.php
@@ -520,18 +520,24 @@ class DocumentManager
$TABLE_ITEMPROPERTY = Database::get_course_table(TABLE_ITEM_PROPERTY);
$TABLE_DOCUMENT = Database::get_course_table(TABLE_DOCUMENT);
+ $userGroupFilter = '';
if (!is_null($to_user_id)) {
- $to_field = 'last.to_user_id';
- $to_value = $to_user_id;
+ $to_user_id = intval($to_user_id);
+ $userGroupFilter = "last.to_user_id = $to_user_id";
+ if (empty($to_user_id)) {
+ $userGroupFilter = " (last.to_user_id = 0 OR last.to_user_id IS NULL) ";
+ }
} else {
- $to_field = 'last.to_group_id';
- $to_value = $to_group_id;
+ $to_group_id = intval($to_group_id);
+ $userGroupFilter = "last.to_group_id = $to_group_id";
+ if (empty($to_group_id)) {
+ $userGroupFilter = "( last.to_group_id = 0 OR last.to_group_id IS NULL) ";
+ }
}
// Escape underscores in the path so they don't act as a wildcard
$originalPath = $path;
$path = str_replace('_', '\_', $path);
- $to_value = Database::escape_string($to_value);
$visibility_bit = ' <> 2';
@@ -541,7 +547,7 @@ class DocumentManager
// Condition for the session
$sessionId = api_get_session_id();
- $condition_session = " AND (last.session_id = '$sessionId' OR (last.session_id = '0') )";
+ $condition_session = " AND (last.session_id = '$sessionId' OR (last.session_id = '0' OR last.session_id IS NULL) )";
$condition_session .= self::getSessionFolderFilters($originalPath, $sessionId);
$sharedCondition = null;
@@ -581,13 +587,11 @@ class DocumentManager
docs.path LIKE '" . Database::escape_string($path . $added_slash.'%'). "' AND
docs.path NOT LIKE '" . Database::escape_string($path . $added_slash.'%/%')."' AND
docs.path NOT LIKE '%_DELETED_%' AND
- $to_field = $to_value AND
- last.visibility
- $visibility_bit
+ $userGroupFilter AND
+ last.visibility $visibility_bit
$condition_session
$sharedCondition
";
-
$result = Database::query($sql);
$doc_list = array();
@@ -736,6 +740,11 @@ class DocumentManager
}
}
+ $groupCondition = " last.to_group_id = $to_group_id";
+ if (empty($to_group_id)) {
+ $groupCondition = " (last.to_group_id = 0 OR last.to_group_id IS NULL)";
+ }
+
if ($can_see_invisible) {
// condition for the session
$session_id = api_get_session_id();
@@ -757,7 +766,7 @@ class DocumentManager
)
WHERE
docs.filetype = 'folder' AND
- last.to_group_id = " . $to_group_id . " AND
+ $groupCondition AND
docs.path NOT LIKE '%shared_folder%' AND
docs.path NOT LIKE '%_DELETED_%' AND
last.visibility <> 2
@@ -775,7 +784,7 @@ class DocumentManager
WHERE
docs.filetype = 'folder' AND
docs.path NOT LIKE '%_DELETED_%' AND
- last.to_group_id = 0 AND
+ $groupCondition AND
last.visibility <> 2
$show_users_condition $condition_session ";
}
@@ -816,7 +825,7 @@ class DocumentManager
docs.id = last.ref AND
docs.filetype = 'folder' AND
last.tool = '" . TOOL_DOCUMENT . "' AND
- last.to_group_id = " . $to_group_id . " AND
+ $groupCondition AND
last.visibility = 1
$condition_session AND
last.c_id = {$_course['real_id']} AND
@@ -837,7 +846,7 @@ class DocumentManager
docs.id = last.ref AND
docs.filetype = 'folder' AND
last.tool = '" . TOOL_DOCUMENT . "' AND
- last.to_group_id = " . $to_group_id . " AND
+ $groupCondition AND
last.visibility = 0 $condition_session AND
last.c_id = {$_course['real_id']} AND
docs.c_id = {$_course['real_id']} ";
@@ -855,7 +864,7 @@ class DocumentManager
docs.path LIKE '" . Database::escape_string($row['path'].'/%') . "' AND
docs.filetype = 'folder' AND
last.tool = '" . TOOL_DOCUMENT . "' AND
- last.to_group_id = " . $to_group_id . " AND
+ $groupCondition AND
last.visibility = 1 $condition_session AND
last.c_id = {$_course['real_id']} AND
docs.c_id = {$_course['real_id']} ";
@@ -1130,6 +1139,7 @@ class DocumentManager
$sessionId
);
+
if (empty($itemInfo)) {
return false;
}
@@ -2917,14 +2927,12 @@ class DocumentManager
}
$group_condition = null;
-
if (isset($group_id)) {
$group_id = intval($group_id);
$group_condition = " AND props.to_group_id='" . $group_id . "' ";
}
$session_condition = null;
-
if (isset($session_id)) {
$session_id = intval($session_id);
$session_condition = " AND props.session_id='" . $session_id . "' ";
@@ -3232,7 +3240,7 @@ class DocumentManager
$tbl_doc = Database::get_course_table(TABLE_DOCUMENT);
$tbl_item_prop = Database::get_course_table(TABLE_ITEM_PROPERTY);
- $condition_session = " AND (last.session_id = '$session_id' OR last.session_id = '0' )";
+ $condition_session = " AND (last.session_id = '$session_id' OR last.session_id = '0' OR last.session_id IS NULL)";
$add_folder_filter = null;
if (!empty($filter_by_folder)) {
diff --git a/main/newscorm/resourcelinker.inc.php b/main/newscorm/resourcelinker.inc.php
index 2293af952a..0ddc2c4719 100755
--- a/main/newscorm/resourcelinker.inc.php
+++ b/main/newscorm/resourcelinker.inc.php
@@ -16,7 +16,7 @@
// Flag to allow for anonymous user - needs to be set before global.inc.php.
-use \ChamiloSession as Session;
+use ChamiloSession as Session;
$use_anonymous = true;
@@ -81,9 +81,15 @@ function show_documents($folder) {
$item_property_table = Database::get_course_table(TABLE_ITEM_PROPERTY);
$document_table = Database::get_course_table(TABLE_DOCUMENT);
$sql = "SELECT * from $document_table docs , $item_property_table ip
- WHERE docs.c_id = $course_id AND
- ip.c_id = $course_id AND
- docs.id=ip.ref AND ip.tool = '".TOOL_DOCUMENT."' AND $visibility AND ip.to_group_id = 0 AND ip.to_user_id IS NULL ORDER BY docs.path ASC";
+ WHERE
+ docs.c_id = $course_id AND
+ ip.c_id = $course_id AND
+ docs.id=ip.ref AND
+ ip.tool = '".TOOL_DOCUMENT."' AND
+ $visibility AND
+ (ip.to_group_id = 0 OR ip.to_group_id IS NULL)AND
+ ip.to_user_id IS NULL
+ ORDER BY docs.path ASC";
$result = Database::query($sql);
while ($row = Database::fetch_array($result)) {
if (!$folder) {
diff --git a/main/newscorm/resourcelinker.php b/main/newscorm/resourcelinker.php
index 40c5db4936..edf95e6bc4 100755
--- a/main/newscorm/resourcelinker.php
+++ b/main/newscorm/resourcelinker.php
@@ -617,11 +617,12 @@ if ($content == 'Agenda') {
$TABLE_ITEM_PROPERTY = Database::get_course_table(TABLE_ITEM_PROPERTY);
$sql = "SELECT agenda.*, toolitemproperties.*
- FROM ".$TABLEAGENDA." agenda, ".$TABLE_ITEM_PROPERTY." toolitemproperties
- WHERE agenda.id = toolitemproperties.ref
- AND toolitemproperties.tool='".TOOL_CALENDAR_EVENT."'
- AND toolitemproperties.to_group_id='0'
- AND toolitemproperties.visibility='1'";
+ FROM ".$TABLEAGENDA." agenda, ".$TABLE_ITEM_PROPERTY." toolitemproperties
+ WHERE
+ agenda.id = toolitemproperties.ref
+ AND toolitemproperties.tool='".TOOL_CALENDAR_EVENT."'
+ AND (toolitemproperties.to_group_id='0' OR toolitemproperties.to_group_id IS NULL)
+ AND toolitemproperties.visibility='1'";
$result = Database::query($sql);
@@ -677,7 +678,14 @@ if ($content == 'Document' || (empty($content) && (api_is_allowed_to_edit() || i
if ($content == 'Ad_Valvas') {
$tbl_announcement = Database :: get_course_table(TABLE_ANNOUNCEMENT);
- $sql = "SELECT * FROM ".$tbl_announcement." a, ".$item_property_table." i WHERE i.tool = '".TOOL_ANNOUNCEMENT."' AND a.id=i.ref AND i.visibility='1' AND i.to_group_id = 0 AND i.to_user_id IS NULL ORDER BY a.display_order ASC";
+ $sql = "SELECT * FROM ".$tbl_announcement." a, ".$item_property_table." i
+ WHERE
+ i.tool = '".TOOL_ANNOUNCEMENT."' AND
+ a.id=i.ref AND
+ i.visibility='1' AND
+ (i.to_group_id = 0 OR i.to_group_id IS NULL) AND
+ i.to_user_id IS NULL
+ ORDER BY a.display_order ASC";
//error_log($sql, 0);
$result = Database::query($sql);
while ($myrow = Database::fetch_array($result)) {
diff --git a/main/resourcelinker/resourcelinker.inc.php b/main/resourcelinker/resourcelinker.inc.php
index 2d53c307de..c92056e66f 100755
--- a/main/resourcelinker/resourcelinker.inc.php
+++ b/main/resourcelinker/resourcelinker.inc.php
@@ -11,7 +11,7 @@
*/
-use \ChamiloSession as Session;
+use ChamiloSession as Session;
/**
* INIT SECTION
@@ -77,7 +77,14 @@ function show_documents($folder)
$item_property_table = Database::get_course_table(TABLE_ITEM_PROPERTY);
$document_table = Database::get_course_table(TABLE_DOCUMENT);
- $sql="SELECT * from $document_table docs, $item_property_table ip WHERE docs.id=ip.ref AND ip.tool = '".TOOL_DOCUMENT."' AND $visibility AND ip.to_group_id = 0 AND ip.to_user_id IS NULL ORDER BY docs.path ASC";
+ $sql = "SELECT * from $document_table docs, $item_property_table ip
+ WHERE
+ docs.id=ip.ref AND
+ ip.tool = '".TOOL_DOCUMENT."' AND
+ $visibility AND
+ (ip.to_group_id = 0 OR i.to_group_id IS NULL) AND
+ ip.to_user_id IS NULL
+ ORDER BY docs.path ASC";
$result=Database::query($sql);
while ($row=Database::fetch_array($result))
{
diff --git a/main/resourcelinker/resourcelinker.php b/main/resourcelinker/resourcelinker.php
index 1b2c356ab3..0c7638ae53 100755
--- a/main/resourcelinker/resourcelinker.php
+++ b/main/resourcelinker/resourcelinker.php
@@ -14,7 +14,7 @@
* INIT SECTION
*/
-use \ChamiloSession as Session;
+use ChamiloSession as Session;
include ('../inc/global.inc.php');
$this_section=SECTION_COURSES;
@@ -596,7 +596,7 @@ if ($content == "Agenda")
FROM ".$TABLEAGENDA." agenda, ".$TABLE_ITEM_PROPERTY." toolitemproperties
WHERE agenda.id = toolitemproperties.ref
AND toolitemproperties.tool='".TOOL_CALENDAR_EVENT."'
- AND toolitemproperties.to_group_id='0'
+ AND (toolitemproperties.to_group_id='0' OR toolitemproperties.to_group_id IS NULL)
AND toolitemproperties.visibility='1'";
$result = Database::query($sql);
@@ -667,7 +667,14 @@ if ($content == "Document" OR (empty($content) AND (api_is_allowed_to_edit() OR
if ($content == "Ad_Valvas")
{
$tbl_announcement = Database :: get_course_table(TABLE_ANNOUNCEMENT);
- $sql = "SELECT * FROM ".$tbl_announcement." a, ".$item_property_table." i WHERE i.tool = '".TOOL_ANNOUNCEMENT."' AND a.id=i.ref AND i.visibility='1' AND i.to_group_id = 0 AND i.to_user_id IS NULL ORDER BY a.display_order ASC";
+ $sql = "SELECT * FROM ".$tbl_announcement." a, ".$item_property_table." i
+ WHERE
+ i.tool = '".TOOL_ANNOUNCEMENT."' AND
+ a.id=i.ref AND
+ i.visibility='1' AND
+ (i.to_group_id = 0 OR i.to_group_id IS NULL) AND
+ i.to_user_id IS NULL
+ ORDER BY a.display_order ASC";
$result = Database::query($sql);
while ($myrow = Database::fetch_array($result))
diff --git a/main/upload/upload.document.php b/main/upload/upload.document.php
index afd7b3b857..44653f4d65 100755
--- a/main/upload/upload.document.php
+++ b/main/upload/upload.document.php
@@ -91,7 +91,13 @@ if (isset($_FILES['user_upload'])) {
$missing_files = check_for_missing_files($base_work_dir.$_POST['curdirpath'].$new_path);
if ($missing_files) {
//show a form to upload the missing files
- Display::display_normal_message(build_missing_files_form($missing_files,$_POST['curdirpath'],$_FILES['user_upload']['name']));
+ Display::display_normal_message(
+ build_missing_files_form(
+ $missing_files,
+ $_POST['curdirpath'],
+ $_FILES['user_upload']['name']
+ )
+ );
}
}
}
@@ -114,7 +120,16 @@ if (isset($_POST['submit_image'])) {
);
$missing_files_dir = $folderData['path'];
//put the uploaded files in the new directory and get the paths
- $paths_to_replace_in_file = move_uploaded_file_collection_into_directory($_course, $_FILES['img_file'],$base_work_dir,$missing_files_dir,$_user['user_id'],$to_group_id,$to_user_id,$max_filled_space);
+ $paths_to_replace_in_file = move_uploaded_file_collection_into_directory(
+ $_course,
+ $_FILES['img_file'],
+ $base_work_dir,
+ $missing_files_dir,
+ $_user['user_id'],
+ $to_group_id,
+ $to_user_id,
+ $max_filled_space
+ );
//open the html file and replace the paths
replace_img_path_in_html_file(
$_POST['img_file_path'],
@@ -129,7 +144,16 @@ if (isset($_POST['submit_image'])) {
if (isset($_POST['create_dir']) && $_POST['dirname']!='') {
$added_slash = ($path=='/')?'':'/';
$dir_name = $path.$added_slash.api_replace_dangerous_char($_POST['dirname']);
- $created_dir = create_unexisting_directory($_course,$_user['user_id'],api_get_session_id(), $to_group_id,$to_user_id,$base_work_dir,$dir_name,$_POST['dirname']);
+ $created_dir = create_unexisting_directory(
+ $_course,
+ $_user['user_id'],
+ api_get_session_id(),
+ $to_group_id,
+ $to_user_id,
+ $base_work_dir,
+ $dir_name,
+ $_POST['dirname']
+ );
if ($created_dir) {
Display::display_normal_message(get_lang('DirCr'));
$path = $created_dir;
diff --git a/main/webservices/cm_webservice_announcements.php b/main/webservices/cm_webservice_announcements.php
index 9018601ca5..0ffa10edd4 100755
--- a/main/webservices/cm_webservice_announcements.php
+++ b/main/webservices/cm_webservice_announcements.php
@@ -97,71 +97,86 @@ class WSCMAnnouncements extends WSCM
$group_memberships=GroupManager::get_group_ids($course_info['real_id'], $user_id);
if (api_get_group_id() == 0) {
- $cond_user_id = " AND ( ip.to_user_id='".$user_id."'" .
- "OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) ";
+ $cond_user_id = " AND (
+ ip.to_user_id='".$user_id."' OR
+ ip.to_group_id IN (0, ".implode(", ", $group_memberships).") OR
+ ip.to_group_id IS NULL
+ ) ";
} else {
- $cond_user_id = " AND ( ip.to_user_id='".$user_id."'" .
- "OR ip.to_group_id IN (0, ".api_get_group_id().")) ";
+ $cond_user_id = " AND (
+ ip.to_user_id='".$user_id."' OR
+ ip.to_group_id IN (0, ".api_get_group_id().") OR
+ ip.to_group_id IS NULL
+ ) ";
}
- // the user is member of several groups => display personal announcements AND his group announcements AND the general announcements
+ // the user is member of several groups => display personal
+ // announcements AND his group announcements AND the general announcements
if (is_array($group_memberships) && count($group_memberships)>0) {
$sql="SELECT
- announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
- FROM $tbl_announcement announcement, $tbl_item_property ip
- WHERE announcement.id = ip.ref
- AND ip.tool='announcement'
- AND ip.visibility='1'
- $announcement_id
- $cond_user_id
- $condition_session
- GROUP BY ip.ref
- ORDER BY display_order DESC
- LIMIT 0,$maximum";
+ announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
+ FROM $tbl_announcement announcement, $tbl_item_property ip
+ WHERE
+ announcement.id = ip.ref AND
+ ip.tool='announcement' AND
+ ip.visibility='1'
+ $announcement_id
+ $cond_user_id
+ $condition_session
+ GROUP BY ip.ref
+ ORDER BY display_order DESC
+ LIMIT 0,$maximum";
} else {
// the user is not member of any group
// this is an identified user => show the general announcements AND his personal announcements
if ($user_id) {
if ((api_get_course_setting('allow_user_edit_announcement') && !api_is_anonymous())) {
- $cond_user_id = " AND (ip.lastedit_user_id = '".api_get_user_id()."' OR ( ip.to_user_id='".$user_id."' OR ip.to_group_id='0')) ";
+ $cond_user_id = " AND (
+ ip.lastedit_user_id = '".api_get_user_id()."' OR
+ ( ip.to_user_id='".$user_id."' OR ip.to_group_id='0' OR ip.to_group_id IS NULL)
+ ) ";
} else {
- $cond_user_id = " AND ( ip.to_user_id='".$user_id."' OR ip.to_group_id='0') ";
+ $cond_user_id = " AND ( ip.to_user_id='".$user_id."' OR ip.to_group_id='0' OR ip.to_group_id IS NULL) ";
}
- $sql="SELECT
- announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
- FROM $tbl_announcement announcement, $tbl_item_property ip
- WHERE announcement.id = ip.ref
- AND ip.tool='announcement'
- AND ip.visibility='1'
- $announcement_id
- $cond_user_id
- $condition_session
- GROUP BY ip.ref
- ORDER BY display_order DESC
- LIMIT 0,$maximum";
+
+ $sql = "SELECT
+ announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
+ FROM $tbl_announcement announcement, $tbl_item_property ip
+ WHERE
+ announcement.id = ip.ref AND
+ ip.tool='announcement' AND
+ ip.visibility='1'
+ $announcement_id
+ $cond_user_id
+ $condition_session
+ GROUP BY ip.ref
+ ORDER BY display_order DESC
+ LIMIT 0,$maximum";
} else {
if (api_get_course_setting('allow_user_edit_announcement')) {
- $cond_user_id = " AND (ip.lastedit_user_id = '".api_get_user_id()."' OR ip.to_group_id='0') ";
+ $cond_user_id = " AND (
+ ip.lastedit_user_id = '".api_get_user_id()."' OR ip.to_group_id='0' OR ip.to_group_id IS NULL
+ ) ";
} else {
$cond_user_id = " AND ip.to_group_id='0' ";
}
// the user is not identiefied => show only the general announcements
- $sql="SELECT
- announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
- FROM $tbl_announcement announcement, $tbl_item_property ip
- WHERE announcement.id = ip.ref
- AND ip.tool='announcement'
- AND ip.visibility='1'
- AND ip.to_group_id='0'
- $announcement_id
- $condition_session
- GROUP BY ip.ref
- ORDER BY display_order DESC
- LIMIT 0,$maximum";
+ $sql = "SELECT
+ announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
+ FROM $tbl_announcement announcement, $tbl_item_property ip
+ WHERE announcement.id = ip.ref
+ AND ip.tool='announcement'
+ AND ip.visibility='1'
+ AND ip.to_group_id='0'
+ $announcement_id
+ $condition_session
+ GROUP BY ip.ref
+ ORDER BY display_order DESC
+ LIMIT 0,$maximum";
}
}
diff --git a/tests/main/inc/course_document.lib.test.php b/tests/main/inc/course_document.lib.test.php
index ba0769cf24..d91337584b 100755
--- a/tests/main/inc/course_document.lib.test.php
+++ b/tests/main/inc/course_document.lib.test.php
@@ -32,9 +32,4 @@ class Testcdocu extends UnitTestCase{
$this->assertTrue(is_bool($res));
$this->assertTrue($res === true || $res === false);
}
-
}
-
-
-
-?>