diff --git a/main/forum/forumfunction.inc.php b/main/forum/forumfunction.inc.php
index b2de5c8edc..88d8f08b5a 100644
--- a/main/forum/forumfunction.inc.php
+++ b/main/forum/forumfunction.inc.php
@@ -511,14 +511,15 @@ function store_forumcategory($values) {
function store_forum($values) {
global $_course;
global $_user;
-
+ $course_id = api_get_course_int_id();
$table_forums = Database::get_course_table(TABLE_FORUM);
// Find the max forum_order for the given category. The new forum is added at the end => max cat_order + &
if (is_null($values['forum_category'])) {
$new_max = null;
} else {
- $sql = "SELECT MAX(forum_order) as sort_max FROM ".$table_forums." WHERE forum_category='".Database::escape_string(stripslashes($values['forum_category']))."'";
+ $sql = "SELECT MAX(forum_order) as sort_max FROM ".$table_forums."
+ WHERE c_id = $course_id AND forum_category='".Database::escape_string(stripslashes($values['forum_category']))."'";
$result = Database::query($sql);
$row = Database::fetch_array($result);
$new_max = $row['sort_max'] + 1;
@@ -611,8 +612,8 @@ function store_forum($values) {
".api_get_course_int_id().",
'".$clean_title."',
".$sql_image."
- '".Database::escape_string(stripslashes(isset($values['forum_comment'])?$values['forum_comment']:null))."',
- '".Database::escape_string(stripslashes(isset($values['forum_category'])?$values['forum_category']:null))."',
+ '".Database::escape_string(isset($values['forum_comment'])?$values['forum_comment']:null)."',
+ '".Database::escape_string(isset($values['forum_category'])?$values['forum_category']:null)."',
'".Database::escape_string(isset($values['allow_anonymous_group']['allow_anonymous'])?$values['allow_anonymous_group']['allow_anonymous']:null)."',
'".Database::escape_string(isset($values['students_can_edit_group']['students_can_edit'])?$values['students_can_edit_group']['students_can_edit']:null)."',
'".Database::escape_string(isset($values['approval_direct_group']['approval_direct'])?$values['approval_direct_group']['approval_direct']:null)."',
@@ -623,9 +624,7 @@ function store_forum($values) {
'".Database::escape_string(isset($values['public_private_group_forum_group']['public_private_group_forum'])?$values['public_private_group_forum_group']['public_private_group_forum']:null)."',
'".Database::escape_string(isset($new_max)?$new_max:null)."',
".intval($session_id).")";
-
Database::query($sql);
-
$last_id = Database::insert_id();
if ($last_id > 0) {
api_item_property_update($_course, TOOL_FORUM, $last_id, 'ForumAdded', api_get_user_id());
diff --git a/main/group/group.php b/main/group/group.php
old mode 100755
new mode 100644
index 7682513c32..dbae1ba162
--- a/main/group/group.php
+++ b/main/group/group.php
@@ -41,14 +41,18 @@ $nameTools = get_lang('GroupManagement');
require_once api_get_path(LIBRARY_PATH).'course.lib.php';
require_once api_get_path(LIBRARY_PATH).'groupmanager.lib.php';
+$course_id = api_get_course_int_id();
+
// Create default category if it doesn't exist when group categories aren't allowed
if (api_get_setting('allow_group_categories') == 'false') {
$cat_table = Database::get_course_table(TABLE_GROUP_CATEGORY);
- $sql = "SELECT * FROM $cat_table WHERE id = '".DEFAULT_GROUP_CATEGORY."'";
+ $sql = "SELECT * FROM $cat_table WHERE c_id = $course_id AND id = '".DEFAULT_GROUP_CATEGORY."'";
$res = Database::query($sql);
$num = Database::num_rows($res);
if ($num == 0) {
- Database::query("INSERT INTO ".$cat_table." ( id , title , description , forum_state , wiki_state, max_student , self_reg_allowed , self_unreg_allowed , groups_per_user , display_order ) VALUES ('2', '".lang2db($DefaultGroupCategory)."', '', '1', '1', '8', '0', '0', '0', '0');");
+ $sql = "INSERT INTO ".$cat_table." ( c_id, id , title , description , forum_state, wiki_state, max_student, self_reg_allowed, self_unreg_allowed, groups_per_user, display_order)
+ VALUES ($course_id, '2', '".lang2db($DefaultGroupCategory)."', '', '1', '1', '8', '0', '0', '0', '0');";
+ Database::query ($sql);
}
}
@@ -183,10 +187,12 @@ echo '';
/*
* List all categories
*/
+
foreach ($group_cats as $index => $category) {
$group_list = array ();
$in_category = false;
if (api_get_setting('allow_group_categories') == 'true') {
+
if (isset ($_GET['show_all']) || (isset ($_GET['category']) && $_GET['category'] == $category['id'])) {
echo '
';
echo ''.$category['title'].'';
@@ -215,11 +221,14 @@ foreach ($group_cats as $index => $category) {
}
//if (count($group_list) > 0 && $in_category)
+
if ($in_category) {
$totalRegistered = 0;
// Determine wether current user is tutor for this course
- $user_is_tutor = GroupManager :: is_tutor($_user['user_id']);
+ $user_is_tutor = GroupManager :: is_tutor(api_get_user_id());
+
$group_data = array();
+
foreach ($group_list as $index => $this_group) {
// Validacion when belongs to a session
diff --git a/main/group/group_category.php b/main/group/group_category.php
old mode 100755
new mode 100644
index 10fb4d1349..249b0e8d70
--- a/main/group/group_category.php
+++ b/main/group/group_category.php
@@ -55,6 +55,8 @@ if (api_get_setting('allow_group_categories') == 'true') {
$interbreadcrumb[] = array ('url' => 'group.php', 'name' => get_lang('Groups'));
+$course_id = api_get_course_int_id();
+
// Build the form
if (isset ($_GET['id'])) {
// Update settings of existing category
@@ -65,8 +67,8 @@ if (isset ($_GET['id'])) {
} else {
// Checks if the field was created in the table Category. It creates it if is neccesary
$table_category = Database :: get_course_table(TABLE_GROUP_CATEGORY);
- if (!Database::query("SELECT wiki_state FROM $table_category")) {
- Database::query("ALTER TABLE $table_category ADD wiki_state tinyint(3) UNSIGNED NOT NULL default '1';");
+ if (!Database::query("SELECT wiki_state FROM $table_category WHERE c_id = $course_id")) {
+ Database::query("ALTER TABLE $table_category ADD wiki_state tinyint(3) UNSIGNED NOT NULL default '1' WHERE c_id = $course_id");
}
// Create a new category
$action = 'add_category';
diff --git a/main/group/group_creation.php b/main/group/group_creation.php
old mode 100755
new mode 100644
index c3c588a26d..bf6f75b3e6
--- a/main/group/group_creation.php
+++ b/main/group/group_creation.php
@@ -15,7 +15,6 @@ $this_section = SECTION_COURSES;
require_once api_get_path(LIBRARY_PATH).'groupmanager.lib.php';
require_once api_get_path(LIBRARY_PATH).'classmanager.lib.php';
-require_once api_get_path(LIBRARY_PATH).'course.lib.php';
require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
/* Create the groups */
@@ -45,7 +44,7 @@ if (isset ($_POST['action'])) {
} elseif ($_POST['same_category']) {
$group['category'] = $_POST['group_0_category'];
}
- GroupManager :: create_group(strip_tags($group['name']), $group['category'], $group['tutor'], $group['places']);
+ GroupManager :: create_group($group['name'], $group['category'], $group['tutor'], $group['places']);
}
$msg = urlencode(count($groups).' '.get_lang('GroupsAdded'));
header('Location: group.php?action=show_msg&msg='.$msg);
diff --git a/main/group/group_space.php b/main/group/group_space.php
old mode 100755
new mode 100644
index ec8603336a..36868053a0
--- a/main/group/group_space.php
+++ b/main/group/group_space.php
@@ -329,6 +329,8 @@ function get_group_user_data($from, $number_of_items, $column, $direction) {
// Database table definition
$table_group_user = Database :: get_course_table(TABLE_GROUP_USER);
$table_user = Database :: get_main_table(TABLE_MAIN_USER);
+
+ $course_id = api_get_course_int_id();
// Query
if (api_get_setting('show_email_addresses') == 'true') {
@@ -343,7 +345,7 @@ function get_group_user_data($from, $number_of_items, $column, $direction) {
)."
user.email AS col3
FROM ".$table_user." user, ".$table_group_user." group_rel_user
- WHERE group_rel_user.user_id = user.user_id
+ WHERE group_rel_user.c_id = $course_id group_rel_user.user_id = user.user_id
AND group_rel_user.group_id = '".Database::escape_string($current_group['id'])."'";
$sql .= " ORDER BY col$column $direction ";
$sql .= " LIMIT $from,$number_of_items";
diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php
index 9621268511..911c3e35b5 100644
--- a/main/inc/lib/course.lib.php
+++ b/main/inc/lib/course.lib.php
@@ -220,6 +220,15 @@ class CourseManager {
);
return $result['status'];
}
+
+ public static function get_tutor_in_course_status($user_id, $course_code) {
+ $result = Database::fetch_array(Database::query(
+ "SELECT tutor_id FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
+ WHERE course_code = '".Database::escape_string($course_code)."' AND user_id = ".Database::escape_string($user_id))
+ );
+ return $result['tutor_id'];
+ }
+
/**
* Unsubscribe one or more users from a course
diff --git a/main/inc/lib/document.lib.php b/main/inc/lib/document.lib.php
index 4ef778ee1c..4bac89b54d 100755
--- a/main/inc/lib/document.lib.php
+++ b/main/inc/lib/document.lib.php
@@ -533,19 +533,19 @@ return 'application/octet-stream';
AND last.visibility".$visibility_bit.$condition_session." AND
docs.c_id = {$_course['real_id']} AND
last.c_id = {$_course['real_id']} ";
- }
-
+ }
+
$result = Database::query($sql);
$doc_list = array();
$document_data = array();
$is_allowed_to_edit = api_is_allowed_to_edit(null, true);
- if ($result!==false && Database::num_rows($result) != 0) {
+ if ($result !== false && Database::num_rows($result) != 0) {
while ($row = Database::fetch_array($result, 'ASSOC')) {
if (api_is_coach()) {
- //Looking for course items that are invisible to hide it in the session
+ //Looking for course items that are invisible to hide it in the session
if (in_array($row['id'], array_keys($doc_list))) {
if ($doc_list[$row['id']]['item_property_session_id'] == 0 && $doc_list[$row['id']]['session_id'] == 0) {
if ($doc_list[$row['id']]['visibility'] == 0) {
@@ -554,10 +554,11 @@ return 'application/octet-stream';
}
}
}
+
$doc_list[$row['id']] = $row;
}
- if (!api_is_coach() && !$is_allowed_to_edit) {
+ if (!api_is_coach() && !$is_allowed_to_edit) {
$doc_list[] = $row;
}
@@ -572,8 +573,10 @@ return 'application/octet-stream';
$template_result = Database::query($sql_is_template);
$row['is_template'] = (Database::num_rows($template_result) > 0) ? 1 : 0;
}
+ //just filling $document_data
$document_data[$row['id']] = $row;
}
+
//Only for the student we filter the results see BT#1652
diff --git a/main/inc/lib/image.lib.php b/main/inc/lib/image.lib.php
old mode 100755
new mode 100644
index 3f19e81967..e3b21c04f6
--- a/main/inc/lib/image.lib.php
+++ b/main/inc/lib/image.lib.php
@@ -199,6 +199,7 @@ class GDWrapper extends ImageWrapper {
public function set_image_wrapper() {
$handler = null;
$this->fill_image_info();
+
switch ($this->type) {
case 0:
$handler = false;
@@ -233,7 +234,7 @@ class GDWrapper extends ImageWrapper {
public function fill_image_info() {
if (file_exists($this->path)) {
- $image_info = getimagesize($this->path);
+ $image_info = getimagesize($this->path);
$this->width = $image_info[0];
$this->height = $image_info[1];
$this->type = $image_info[2];
diff --git a/main/inc/lib/main_api.lib.php b/main/inc/lib/main_api.lib.php
index 4b7da5f1d2..29599eeb5b 100644
--- a/main/inc/lib/main_api.lib.php
+++ b/main/inc/lib/main_api.lib.php
@@ -1867,6 +1867,86 @@ function api_is_course_tutor() {
return $_SESSION['is_courseTutor'];
}
+function api_get_user_platform_status($user_id = false) {
+ $status = array();
+ $user_id = intval($user_id);
+ if (empty($user_id)) {
+ $user_id = api_get_user_id();
+ }
+
+ if (empty($user_id)) {
+ return false;
+ }
+ $group_id = api_get_group_id();
+ $course_id = api_get_course_int_id();
+ $course_code= api_get_course_id();
+ $session_id = api_get_session_id();
+
+ //Group (in course)
+ if ($group_id && $course_id) {
+ $group_status = array();
+ require_once api_get_path(LIBRARY_PATH).'groupmanager.lib.php';
+ $is_subscribed = GroupManager::is_subscribed($user_id, $group_id);
+ if ($is_subscribed) {
+ $group_status = array('id'=> $group_id , 'status' => 'student');
+ $is_tutor = GroupManager::is_tutor_of_group($user_id, $group_id);
+ if ($is_tutor) {
+ $group_status['status'] = 'tutor';
+ } else {
+ $group_status['status'] = 'student';
+ }
+ }
+ $status['group'] = $group_status;
+ }
+
+ //Session
+ if ($session_id && $course_id) {
+ $session_status = array();
+ $session_status = array('id' => $session_id, 'course_id' => $course_id);
+ $session_user_status = SessionManager::get_user_status_in_session($user_id, $course_code, $session_id);
+ switch ($session_user_status) {
+ case 0:
+ $session_status['status'] = 'student';
+ break;
+ case 2:
+ $session_status['status'] = 'coach';
+ break;
+ }
+ $is_general_coach = SessionManager::user_is_general_coach($user_id, $session_id);
+ if ($is_general_coach) {
+ $session_status['status'] = 'general_coach';
+ }
+ $status['session'] = $session_status;
+
+ } elseif($course_id) {
+ //Course
+ $course_status = array();
+ if ($course_id) {
+ $user_course_status = CourseManager::get_user_in_course_status($user_id, $course_code);
+
+ if ($user_course_status) {
+ $course_status = array('id'=> $course_id);
+ switch($user_course_status) {
+ case 1;
+ $course_status['status'] = 'teacher';
+ break;
+ case 5;
+ $course_status['status'] = 'student';
+ //check if tutor
+ $tutor_course_status = CourseManager::get_tutor_in_course_status($user_id, $course_code);
+ if ($tutor_course_status) {
+ $course_status['status'] = 'tutor';
+ }
+ break;
+ }
+ }
+ }
+ $status['course'] = $course_status;
+ }
+
+ return $status;
+}
+
/**
* Checks whether the current user is a course or session coach
* @param int - optional, session id
@@ -1889,17 +1969,16 @@ function api_is_coach($session_id = 0, $course_code = '') {
} else {
$course_code = api_get_course_id();
}
- $session_table = Database::get_main_table(TABLE_MAIN_SESSION);
- $session_rel_course_rel_user_table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
+ $session_table = Database::get_main_table(TABLE_MAIN_SESSION);
+ $session_rel_course_rel_user_table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$sessionIsCoach = null;
if (!empty($course_code)) {
$sql = "SELECT DISTINCT id, name, date_start, date_end
FROM $session_table INNER JOIN $session_rel_course_rel_user_table session_rc_ru
ON session_rc_ru.id_user = '".api_get_user_id()."'
- WHERE session_rc_ru.course_code = '$course_code' AND session_rc_ru.status = 2 AND session_rc_ru.id_session = '$session_id'
- ORDER BY date_start, date_end, name";
-
+ WHERE session_rc_ru.course_code = '$course_code' AND session_rc_ru.status = 2 AND session_rc_ru.id_session = '$session_id'";
$result = Database::query($sql);
+
$sessionIsCoach = Database::store_result($result);
}
@@ -1907,8 +1986,7 @@ function api_is_coach($session_id = 0, $course_code = '') {
$sql = "SELECT DISTINCT id, name, date_start, date_end
FROM $session_table
WHERE session.id_coach = '".api_get_user_id()."' AND id = '$session_id'
- ORDER BY date_start, date_end, name";
-
+ ORDER BY date_start, date_end, name";
$result = Database::query($sql);
if (!empty($sessionIsCoach)) {
$sessionIsCoach = array_merge($sessionIsCoach , Database::store_result($result));
@@ -4690,7 +4768,7 @@ function api_getimagesize($path) {
* @return array Calculated new width and height
*/
function api_resize_image($image, $target_width, $target_height) {
- $image_properties = api_getimagesize($image);
+ $image_properties = api_getimagesize($image);
return api_calculate_image_size($image_properties['width'], $image_properties['height'], $target_width, $target_height);
}
@@ -5437,4 +5515,4 @@ function api_grading_model_functions($grading_model, $action = 'to_array') {
}
}
return $return;
-}
\ No newline at end of file
+}
diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php
index b4047d064d..f686da969f 100644
--- a/main/inc/lib/sessionmanager.lib.php
+++ b/main/inc/lib/sessionmanager.lib.php
@@ -1391,7 +1391,7 @@ class SessionManager {
public function get_user_status_in_session($user_id, $course_code, $session_id) {
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
- $sql = "SELECT session_rcru.status
+ echo $sql = "SELECT session_rcru.status
FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user
WHERE session_rcru.id_user = user.user_id AND
session_rcru.id_session = '".intval($session_id)."' AND
@@ -1560,4 +1560,18 @@ class SessionManager {
}
return $sid;
}
+
+ function user_is_general_coach($user_id, $session_id) {
+ $session_id = intval($session_id);
+ $user_id = intval($user_id);
+ $session_table = Database::get_main_table(TABLE_MAIN_SESSION);
+ $sql = "SELECT DISTINCT id
+ FROM $session_table
+ WHERE session.id_coach = '".$user_id."' AND id = '$session_id'";
+ $result = Database::query($sql);
+ if ($result && Database::num_rows($result)) {
+ return true;
+ }
+ return false;
+ }
}
diff --git a/main/inc/lib/svg-edit/extensions/imagelib/groups.php b/main/inc/lib/svg-edit/extensions/imagelib/groups.php
index 6312fb94b1..4ff272a287 100644
--- a/main/inc/lib/svg-edit/extensions/imagelib/groups.php
+++ b/main/inc/lib/svg-edit/extensions/imagelib/groups.php
@@ -1,6 +1,6 @@
0) {
}
}
+$style = '';
+
?>
-
+
.'svg_medium.png)
';
+ echo '.'svg_medium.png)
.'svg_medium.png)