From d8544436cc27193486cb6f76856984d03bf96fbf Mon Sep 17 00:00:00 2001 From: Patrick Cool Date: Mon, 18 Jan 2010 15:43:15 +0100 Subject: [PATCH 1/7] bugfix: the table of content could not be scrolled when the content exceeded the screen layout. example screenshot: https://support.dokeos.com/issues/5730 --- main/newscorm/lp_view.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/main/newscorm/lp_view.php b/main/newscorm/lp_view.php index 9fd484ba5c..eb242940cf 100644 --- a/main/newscorm/lp_view.php +++ b/main/newscorm/lp_view.php @@ -318,7 +318,7 @@ if($_SESSION['oLP']->mode == 'fullscreen') { -
+
get_html_toc(); ?> @@ -393,6 +393,8 @@ window.onload = function() { rightZoneHeightOccupied = docHeight - initialRightZoneHeight; document.body.style.overflow = 'hidden'; updateContentHeight(); + viewportheight = window.innerHeight + document.getElementById('toc_id').style.height = viewportheight - 200 + "px"; } window.onresize = updateContentHeight; @@ -508,7 +510,7 @@ window.onresize = updateContentHeight; -
+
get_html_toc(); ?> scorm_debug)) { //only show log ?> @@ -580,8 +582,10 @@ window.onload = function() { initialRightZoneHeight = document.getElementById('learning_path_right_zone').offsetHeight; docHeight = document.body.clientHeight; leftZoneHeightOccupied = docHeight - initialLeftZoneHeight; - rightZoneHeightOccupied = docHeight - initialRightZoneHeight; +rightZoneHeightOccupied = docHeight - initialRightZoneHeight; document.body.style.overflow = 'hidden'; + viewportheight = window.innerHeight + document.getElementById('toc_id').style.height = viewportheight - 200 + "px"; updateContentHeight(); } From 40c1ba8c8a2d4052887524f107855c3cfb209ce9 Mon Sep 17 00:00:00 2001 From: Patrick Cool Date: Thu, 28 Jan 2010 14:43:07 +0100 Subject: [PATCH 2/7] sorting of users when editing the group https://support.dokeos.com/issues/5751 --- main/group/group_edit.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/main/group/group_edit.php b/main/group/group_edit.php index 03ba484dfd..4326ea2c15 100644 --- a/main/group/group_edit.php +++ b/main/group/group_edit.php @@ -211,11 +211,15 @@ if (isset($_SESSION['id_session'])) { $complete_user_list = CourseManager :: get_user_list_from_course_code($_course['id'],true,$_SESSION['id_session']); $complete_user_list2 = CourseManager :: get_coach_list_from_course_code($_course['id'],$_SESSION['id_session']); $complete_user_list = array_merge($complete_user_list,$complete_user_list2); + usort($complete_user_list, 'sort_users'); } else { $complete_user_list = CourseManager :: get_user_list_from_course_code($_course['id']); } -usort($complete_user_list, 'sort_users'); + +} else { + $complete_user_list = CourseManager :: get_user_list_from_course_code($_course['id'],false, '','',api_get_setting('user_order_by')); +} $possible_users = array (); From 53583b2821cbf35d114a321627f5d8f99573ab3c Mon Sep 17 00:00:00 2001 From: Patrick Cool Date: Thu, 28 Jan 2010 15:01:36 +0100 Subject: [PATCH 3/7] fix previous commit. Diff script apparently did not do it correctly --- main/group/group_edit.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/main/group/group_edit.php b/main/group/group_edit.php index 4326ea2c15..67997d5050 100644 --- a/main/group/group_edit.php +++ b/main/group/group_edit.php @@ -212,11 +212,6 @@ if (isset($_SESSION['id_session'])) { $complete_user_list2 = CourseManager :: get_coach_list_from_course_code($_course['id'],$_SESSION['id_session']); $complete_user_list = array_merge($complete_user_list,$complete_user_list2); usort($complete_user_list, 'sort_users'); -} else { - $complete_user_list = CourseManager :: get_user_list_from_course_code($_course['id']); -} - - } else { $complete_user_list = CourseManager :: get_user_list_from_course_code($_course['id'],false, '','',api_get_setting('user_order_by')); } From 61d2b739137ba541157775a579c2d7703f550a68 Mon Sep 17 00:00:00 2001 From: Patrick Cool Date: Thu, 28 Jan 2010 15:04:39 +0100 Subject: [PATCH 4/7] Wrong feedback message https://support.dokeos.com/issues/5752 --- main/group/group_edit.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/main/group/group_edit.php b/main/group/group_edit.php index 67997d5050..00e42734a6 100644 --- a/main/group/group_edit.php +++ b/main/group/group_edit.php @@ -323,7 +323,10 @@ if ($referer != 'group_space.php' && $referer != 'group.php') { $referer = 'group.php'; } if (isset($_POST['group_members'])) { - if (count($_POST['group_members'])<=$defaults['max_member']) { + // if it has been specified that there is a limit (contradictionary this is max_member_no_limit = 1) then we have to check if the limit + // has been exceeded or not + if($_POST['max_member_no_limit'] == 1){ + if (count($_POST['group_members'])<=$defaults['max_member'] AND $defaults['max_member_no_limit']) { // } else { header('Location:group_edit.php?show_message='.get_lang('GroupTooMuchMembers')); From f70da888106b05c5117219c5683631b809a5f8f6 Mon Sep 17 00:00:00 2001 From: Patrick Cool Date: Thu, 28 Jan 2010 15:23:25 +0100 Subject: [PATCH 5/7] remove php short tags (because this relies on a php.ini setting) --- main/inc/lib/asciimath/filter.php | 2 +- .../fckeditor/editor/plugins/ImageManager/editor.php | 10 +++++----- .../fckeditor/editor/plugins/ImageManager/manager.php | 2 +- .../editor/plugins/ajaxfilemanager/ajax_file_paste.php | 2 +- main/messaging/email_editor.php | 5 ++--- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/main/inc/lib/asciimath/filter.php b/main/inc/lib/asciimath/filter.php index 6efb1b798d..f7e3cbaabd 100644 --- a/main/inc/lib/asciimath/filter.php +++ b/main/inc/lib/asciimath/filter.php @@ -1,4 +1,4 @@ -   - 1){ ?> + 1){ ?> - + diff --git a/main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/ajax_file_paste.php b/main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/ajax_file_paste.php index 457f68186b..0633aba169 100644 --- a/main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/ajax_file_paste.php +++ b/main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/ajax_file_paste.php @@ -1,4 +1,4 @@ - - +?> \ No newline at end of file From 60eadf9196fe44040ee117e07efd3eceeaf783b5 Mon Sep 17 00:00:00 2001 From: Patrick Cool Date: Thu, 28 Jan 2010 16:02:45 +0100 Subject: [PATCH 6/7] group overview: sorting of users --- main/group/group_overview.php | 4 ++-- main/inc/lib/groupmanager.lib.php | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/main/group/group_overview.php b/main/group/group_overview.php index 9d27438eaa..15fc41a31f 100644 --- a/main/group/group_overview.php +++ b/main/group/group_overview.php @@ -68,7 +68,7 @@ if( isset($_GET['action'])) $data = array(); foreach($groups as $index => $group) { - $users = GroupManager::get_users($group['id']); + $users = GroupManager::get_users($group['id'],api_get_setting('user_order_by')); foreach($users as $index => $user) { $row = array(); @@ -136,7 +136,7 @@ foreach($categories as $index => $category) echo '
  • '; echo stripslashes($group['name']); echo '
      '; - $users = GroupManager::get_users($group['id']); + $users = GroupManager::get_users($group['id'],api_get_setting('user_order_by')); foreach($users as $index => $user) { $user_info = api_get_user_info($user); diff --git a/main/inc/lib/groupmanager.lib.php b/main/inc/lib/groupmanager.lib.php index 5816d933c1..4019b0e894 100644 --- a/main/inc/lib/groupmanager.lib.php +++ b/main/inc/lib/groupmanager.lib.php @@ -768,11 +768,22 @@ class GroupManager { * Get all users from a given group * @param int $group_id The group */ - public static function get_users ($group_id) { + public static function get_users ($group_id, $order_by='', $direction='ASC') { + // Database table definition $group_user_table = Database :: get_course_table(TABLE_GROUP_USER); - $group_id = Database::escape_string($group_id); - $sql = "SELECT user_id FROM $group_user_table WHERE group_id = $group_id"; - $res = Database::query($sql,__FILE__,__LINE__); + $table_user = Database::get_main_table(TABLE_MAIN_USER); + + if (!empty($order_by) AND in_array($order_by, array('lastname', 'firstname', 'username', 'email', 'official_code'))){ + $order_by_sql = 'ORDER BY user.'.$order_by.' '.$direction; + } else { + $order_by_sql = ''; + } + + $sql = "SELECT user.user_id FROM $group_user_table group_rel_user, $table_user user + WHERE group_rel_user.group_id = '".Database::escape_string($group_id)."' + AND group_rel_user.user_id = user.user_id + $order_by_sql"; + $res = api_sql_query($sql,__FILE__,__LINE__); $users = array (); while ($obj = Database::fetch_object($res)) { $users[] = $obj->user_id; From 0c09148098c4703b77a07c0907af71c39f6228f2 Mon Sep 17 00:00:00 2001 From: Patrick Cool Date: Thu, 18 Feb 2010 09:30:48 +0100 Subject: [PATCH 7/7] bugfix with pagination in sortable table --- main/user/subscribe_user.php | 108 +++++++++++++++++------------------ 1 file changed, 52 insertions(+), 56 deletions(-) diff --git a/main/user/subscribe_user.php b/main/user/subscribe_user.php index 242cf96e8a..49a683a487 100644 --- a/main/user/subscribe_user.php +++ b/main/user/subscribe_user.php @@ -35,21 +35,23 @@ */ // name of the language file that needs to be included $language_file = array('registration','admin'); - -// including the global Dokeos file -include ('../inc/global.inc.php'); - + +// including the global Dokeos file +include ('../inc/global.inc.php'); + // the section (for the tabs) $this_section = SECTION_COURSES; + // access restriction if (!api_is_allowed_to_edit()) { api_not_allowed(true); } + // including additional libraries -require_once (api_get_path(LIBRARY_PATH).'course.lib.php'); -require_once (api_get_path(LIBRARY_PATH).'sortabletable.class.php'); -require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php'); -require_once (api_get_path(LIBRARY_PATH).'usermanager.lib.php'); +require_once (api_get_path(LIBRARY_PATH).'course.lib.php'); +require_once (api_get_path(LIBRARY_PATH).'sortabletable.class.php'); +require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php'); +require_once (api_get_path(LIBRARY_PATH).'usermanager.lib.php'); /* ============================================================================== @@ -199,7 +201,7 @@ function get_number_of_users() { $user_table = Database :: get_main_table(TABLE_MAIN_USER); $course_user_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $table_user_field_values = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES); - + if (isset($_REQUEST['type']) && $_REQUEST['type']=='teacher') { $sql = "SELECT u.user_id FROM $user_table u @@ -228,7 +230,7 @@ function get_number_of_users() { LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'"; // we change the SQL when we have a filter - if (isset($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ + if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ $field_identification = explode('*',$_GET['subscribe_user_filter_value']); $sql .= " LEFT JOIN $table_user_field_values field_values @@ -262,7 +264,7 @@ function get_number_of_users() { } // when there is a keyword then we are searching and we have to change the SQL statement - if (isset ($_REQUEST['keyword'])) { + if (isset ($_GET['keyword']) AND !empty($_GET['keyword'])) { $keyword = Database::escape_string($_REQUEST['keyword']); $sql .= " AND (firstname LIKE '%".$keyword."%' OR lastname LIKE '%".$keyword."%' OR email LIKE '%".$keyword."%' OR username LIKE '%".$keyword."%' OR official_code LIKE '%".$keyword."%')"; @@ -333,7 +335,7 @@ function get_user_data($from, $number_of_items, $column, $direction) { LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".$_SESSION['_course']['id']."'"; // applying the filter of the additional user profile fields - if (isset($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ + if (isset($_GET['subscribe_user_filter_value']) !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ $field_identification = explode('*',$_GET['subscribe_user_filter_value']); $sql .= " LEFT JOIN $table_user_field_values field_values @@ -341,8 +343,8 @@ function get_user_data($from, $number_of_items, $column, $direction) { WHERE cu.user_id IS NULL AND field_values.field_id = '".Database::escape_string($field_identification[0])."' AND field_values.field_value = '".Database::escape_string($field_identification[1])."'"; - } else { - $sql .= "WHERE cu.user_id IS NULL"; + } else { + $sql .= "WHERE cu.user_id IS NULL"; } } else { // adding a teacher NOT through a session @@ -361,7 +363,7 @@ function get_user_data($from, $number_of_items, $column, $direction) { LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'"; // applying the filter of the additional user profile fields - if (isset($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ + if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ $field_identification = explode('*',$_GET['subscribe_user_filter_value']); $sql .= " LEFT JOIN $table_user_field_values field_values @@ -374,8 +376,8 @@ function get_user_data($from, $number_of_items, $column, $direction) { } //showing only the courses of the current Dokeos access_url_id global $_configuration; - - // adding a teacher NOT trough a session on a portal with multiple URLs + + // adding a teacher NOT trough a session on a portal with multiple URLs if ($_configuration['multiple_access_urls']==true) { $url_access_id = api_get_current_access_url_id(); if ($url_access_id !=-1) { @@ -399,7 +401,7 @@ function get_user_data($from, $number_of_items, $column, $direction) { // applying the filter of the additional user profile fields - if (isset($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ + if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ $field_identification = explode('*',$_GET['subscribe_user_filter_value']); $sql .= " LEFT JOIN $table_user_field_values field_values @@ -414,7 +416,7 @@ function get_user_data($from, $number_of_items, $column, $direction) { } } } else { - // adding a student + // adding a student if (!empty($_SESSION["id_session"])) { $sql = "SELECT u.user_id AS col0, @@ -428,20 +430,20 @@ function get_user_data($from, $number_of_items, $column, $direction) { u.active AS col5, u.user_id AS col6 FROM $user_table u - LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".$_SESSION['_course']['id']."'"; - - // applying the filter of the additional user profile fields - if (isset($_GET['subscribe_user_filter_value'])){ - $field_identification = explode('*',$_GET['subscribe_user_filter_value']); - $sql .= " - LEFT JOIN $table_user_field_values field_values - ON field_values.user_id = u.user_id - WHERE cu.user_id IS NULL - AND field_values.field_id = '".Database::escape_string($field_identification[0])."' - AND field_values.field_value = '".Database::escape_string($field_identification[1])."'"; - } else { - $sql .= "WHERE cu.user_id IS NULL"; - } + LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".$_SESSION['_course']['id']."'"; + + // applying the filter of the additional user profile fields + if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value'])){ + $field_identification = explode('*',$_GET['subscribe_user_filter_value']); + $sql .= " + LEFT JOIN $table_user_field_values field_values + ON field_values.user_id = u.user_id + WHERE cu.user_id IS NULL + AND field_values.field_id = '".Database::escape_string($field_identification[0])."' + AND field_values.field_value = '".Database::escape_string($field_identification[1])."'"; + } else { + $sql .= "WHERE cu.user_id IS NULL"; + } } else { $sql = "SELECT u.user_id AS col0, @@ -455,20 +457,20 @@ function get_user_data($from, $number_of_items, $column, $direction) { u.active AS col5, u.user_id AS col6 FROM $user_table u - LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'"; - - // applying the filter of the additional user profile fields - if (isset($_GET['subscribe_user_filter_value'])){ - $field_identification = explode('*',$_GET['subscribe_user_filter_value']); - $sql .= " - LEFT JOIN $table_user_field_values field_values - ON field_values.user_id = u.user_id - WHERE cu.user_id IS NULL - AND field_values.field_id = '".Database::escape_string($field_identification[0])."' - AND field_values.field_value = '".Database::escape_string($field_identification[1])."'"; - } else { - $sql .= "WHERE cu.user_id IS NULL"; - } + LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'"; + + // applying the filter of the additional user profile fields + if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value'])){ + $field_identification = explode('*',$_GET['subscribe_user_filter_value']); + $sql .= " + LEFT JOIN $table_user_field_values field_values + ON field_values.user_id = u.user_id + WHERE cu.user_id IS NULL + AND field_values.field_id = '".Database::escape_string($field_identification[0])."' + AND field_values.field_value = '".Database::escape_string($field_identification[1])."'"; + } else { + $sql .= "WHERE cu.user_id IS NULL"; + } //showing only the courses of the current Dokeos access_url_id global $_configuration; @@ -495,7 +497,7 @@ function get_user_data($from, $number_of_items, $column, $direction) { // applying the filter of the additional user profile fields - if (isset($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ + if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ $field_identification = explode('*',$_GET['subscribe_user_filter_value']); $sql .= " LEFT JOIN $table_user_field_values field_values @@ -615,7 +617,7 @@ $sort_by_first_name = api_sort_by_first_name(); echo '
      '; $actions .= ''.Display::return_icon('members.gif',get_lang('BackToUserList')).' '.get_lang('BackToUserList').''; -if ($_POST['keyword']) +if ($_GET['keyword'] AND !empty($_GET['keyword'])) { $actions .= ''.Display::return_icon('clean_group.gif').' '.get_lang('ClearSearchResults').''; } @@ -627,7 +629,7 @@ if (api_get_setting('ProfilingFilterAddingUsers') == 'true') { display_extra_profile_fields_filter(); } -$form = new FormValidator('search_user', 'POST',api_get_self().'?type='.$_REQUEST['type'],'',null,false); +$form = new FormValidator('search_user', 'GET',api_get_self().'?type='.$_REQUEST['type'],'',null,false); $renderer = & $form->defaultRenderer(); $renderer->setElementTemplate('{element} '); $form->add_textfield('keyword', '', false); @@ -762,10 +764,4 @@ function display_extra_profile_fields_filter() echo ''; echo ''; -} - -function debug($var) { - echo '
      ';
      -	print_r($var);
      -	echo '
      '; } \ No newline at end of file