From cc51cbf16f0247004ef247424fd5b11d54776b45 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Mon, 23 Nov 2009 13:25:23 -0500 Subject: [PATCH 1/8] Fixing more issues from the link delete function see #5229 --- main/exercice/exercice.php | 12 +++++++----- main/gradebook/gradebook.php | 30 +++++++++++++++++------------ main/gradebook/index.php | 32 ++++++++++++++++++------------- main/newscorm/learnpath.class.php | 11 ++++++++--- 4 files changed, 52 insertions(+), 33 deletions(-) diff --git a/main/exercice/exercice.php b/main/exercice/exercice.php index f623dae576..eaa9bae674 100644 --- a/main/exercice/exercice.php +++ b/main/exercice/exercice.php @@ -532,11 +532,13 @@ if ($is_allowedToEdit) { $sql = 'SELECT gl.id FROM ' . $tbl_grade_link . ' gl WHERE gl.type="1" AND gl.ref_id="' . $exerciseId . '";'; $result = Database::query($sql, __FILE__, __LINE__); $row = Database :: fetch_array($result, 'ASSOC'); - - $link = LinkFactory :: load($row['id']); - if ($link[0] != null) { - $link[0]->delete(); - } + //see + if (!empty($row['id'])) { + $link = LinkFactory :: load($row['id']); + if ($link[0] != null) { + $link[0]->delete(); + } + } Display :: display_confirmation_message(get_lang('ExerciseDeleted')); break; case 'enable' : // enables an exercise diff --git a/main/gradebook/gradebook.php b/main/gradebook/gradebook.php index 56e57179dc..a5f4cb1168 100644 --- a/main/gradebook/gradebook.php +++ b/main/gradebook/gradebook.php @@ -269,15 +269,18 @@ if (isset ($_GET['visiblelink'])) { } if (isset ($_GET['deletelink'])) { block_students(); - $link= LinkFactory :: load(Security::remove_XSS($_GET['deletelink'])); - if ($link[0] != null) { - $sql='UPDATE '.$tbl_forum_thread.' SET thread_qualify_max=0,thread_weight=0,thread_title_qualify="" WHERE thread_id=(SELECT ref_id FROM '.$tbl_grade_links.' where id='.Security::remove_XSS($_GET['deletelink']).');'; - Database::query($sql); - $link[0]->delete(); + //fixing #5229 + if (!empty($_GET['deletelink'])) { + $link= LinkFactory :: load(Security::remove_XSS($_GET['deletelink'])); + if ($link[0] != null) { + $sql='UPDATE '.$tbl_forum_thread.' SET thread_qualify_max=0,thread_weight=0,thread_title_qualify="" WHERE thread_id=(SELECT ref_id FROM '.$tbl_grade_links.' where id='.Security::remove_XSS($_GET['deletelink']).');'; + Database::query($sql); + $link[0]->delete(); + } + unset ($link); + $confirmation_message = get_lang('LinkDeleted'); + $filter_confirm_msg = false; } - unset ($link); - $confirmation_message = get_lang('LinkDeleted'); - $filter_confirm_msg = false; } $course_to_crsind = isset ($course_to_crsind) ? $course_to_crsind : ''; if ($course_to_crsind && !isset($_GET['confirm'])) { @@ -328,11 +331,14 @@ if (isset ($_POST['action'])) { $number_of_deleted_evaluations++; } if (api_substr($indexstr, 0, 4) == 'LINK') { - $link= LinkFactory :: load(api_substr($indexstr, 4)); - if ($link[0] != null) { - $link[0]->delete(); + $id = api_substr($indexstr, 4); + if (!empty($id)) { + $link= LinkFactory :: load(); + if ($link[0] != null) { + $link[0]->delete(); + } + $number_of_deleted_links++; } - $number_of_deleted_links++; } } $confirmation_message = get_lang('DeletedCategories') . ' : ' . $number_of_deleted_categories . '
' . get_lang('DeletedEvaluations') . ' : ' . $number_of_deleted_evaluations . '
' . get_lang('DeletedLinks') . ' : ' . $number_of_deleted_links . '

' . get_lang('TotalItems') . ' : ' . $number_of_selected_items . ''; diff --git a/main/gradebook/index.php b/main/gradebook/index.php index 003387d08f..321070a03a 100755 --- a/main/gradebook/index.php +++ b/main/gradebook/index.php @@ -327,15 +327,18 @@ if (isset ($_GET['visiblelink'])) { if (isset ($_GET['deletelink'])) { block_students(); $get_delete_link=Security::remove_XSS($_GET['deletelink']); - $link= LinkFactory :: load($get_delete_link); - if ($link[0] != null) { - $sql='UPDATE '.$tbl_forum_thread.' SET thread_qualify_max=0,thread_weight=0,thread_title_qualify="" WHERE thread_id=(SELECT ref_id FROM '.$tbl_grade_links.' where id='.$get_delete_link.');'; - Database::query($sql); - $link[0]->delete(); + //fixing #5229 + if (!empty($get_delete_link)) { + $link= LinkFactory :: load($get_delete_link); + if ($link[0] != null) { + $sql='UPDATE '.$tbl_forum_thread.' SET thread_qualify_max=0,thread_weight=0,thread_title_qualify="" WHERE thread_id=(SELECT ref_id FROM '.$tbl_grade_links.' where id='.$get_delete_link.');'; + Database::query($sql); + $link[0]->delete(); + } + unset ($link); + $confirmation_message = get_lang('LinkDeleted'); + $filter_confirm_msg = false; } - unset ($link); - $confirmation_message = get_lang('LinkDeleted'); - $filter_confirm_msg = false; } if (!empty($course_to_crsind) && !isset($_GET['confirm'])) { @@ -387,12 +390,15 @@ if (isset ($_POST['action'])) { $number_of_deleted_evaluations++; } if (substr($indexstr, 0, 4) == 'LINK') { - $link= LinkFactory :: load(substr($indexstr, 4)); - if ($link[0] != null) { - $link[0]->delete(); + //fixing #5229 + $id = substr($indexstr, 4); + if (!empty($id)) { + $link= LinkFactory :: load($id); + if ($link[0] != null) { + $link[0]->delete(); + } + $number_of_deleted_links++; } - - $number_of_deleted_links++; } } $confirmation_message = get_lang('DeletedCategories') . ' : ' . $number_of_deleted_categories . '
' . get_lang('DeletedEvaluations') . ' : ' . $number_of_deleted_evaluations . '
' . get_lang('DeletedLinks') . ' : ' . $number_of_deleted_links . '

' . get_lang('TotalItems') . ' : ' . $number_of_selected_items . ''; diff --git a/main/newscorm/learnpath.class.php b/main/newscorm/learnpath.class.php index 46b631ee9e..2c059279f5 100644 --- a/main/newscorm/learnpath.class.php +++ b/main/newscorm/learnpath.class.php @@ -883,10 +883,15 @@ class learnpath { $sql = 'SELECT gl.id FROM ' . $tbl_grade_link . ' gl WHERE gl.type="4" AND gl.ref_id="' . $id . '";'; $result = Database::query($sql, __FILE__, __LINE__); $row = Database :: fetch_array($result, 'ASSOC'); - $link = LinkFactory :: load($row['id']); - if ($link[0] != null) { - $link[0]->delete(); + + //fixing gradebook link deleted see #5229 + if (!empty($row['id'])) { + $link = LinkFactory :: load($row['id']); + if ($link[0] != null) { + $link[0]->delete(); + } } + //TODO: also delete items and item-views if (api_get_setting('search_enabled') == 'true') { require_once (api_get_path(LIBRARY_PATH) . 'specific_fields_manager.lib.php'); From d7600dc5cceb548a51058925b1e116b1d1a8b907 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Mon, 23 Nov 2009 13:27:59 -0500 Subject: [PATCH 2/8] UI improvements - user groups see #5508 --- main/admin/add_users_to_group.php | 62 +++++------ main/admin/add_users_to_session.php | 2 +- main/admin/group_list.php | 6 +- main/css/blue_lagoon/default.css | 12 ++ main/img/unknown_50_50.jpg | Bin 0 -> 1634 bytes main/img/unknown_group.png | Bin 0 -> 3999 bytes main/inc/lib/group_portal_manager.lib.php | 129 ++++++++++------------ main/inc/lib/usermanager.lib.php | 19 +++- main/social/groups.php | 20 ++-- 9 files changed, 130 insertions(+), 120 deletions(-) create mode 100644 main/img/unknown_50_50.jpg create mode 100644 main/img/unknown_group.png diff --git a/main/admin/add_users_to_group.php b/main/admin/add_users_to_group.php index f30b46287b..29ba17c402 100644 --- a/main/admin/add_users_to_group.php +++ b/main/admin/add_users_to_group.php @@ -39,7 +39,7 @@ $tbl_group_rel_user = Database::get_main_table(TABLE_MAIN_USER_REL_GROUP); $tool_name = get_lang('SubscribeUsersToGroup'); $group_id = intval($_GET['id']); -$add_type = 'single'; +$add_type = 'multiple'; if(isset($_REQUEST['add_type']) && $_REQUEST['add_type']!=''){ $add_type = Security::remove_XSS($_REQUEST['add_type']); } @@ -210,13 +210,17 @@ if($_POST['form_sent']) { $UserList = $_POST['sessionUsersList']; $ClassList = $_POST['sessionClassesList']; + $group_id = intval($_POST['id']); + if(!is_array($UserList)) { $UserList=array(); } if ($form_sent == 1) { - //added a parameter to send emails when registering a user - // SessionManager::suscribe_users_to_session($id_session,$UserList,true,true); + $result = GroupPortalManager::add_users_to_groups($UserList, array($group_id)); + + + //SessionManager::suscribe_users_to_session($id_session,$UserList,true,true); //adding the session to the access_url_rel_session table /*global $_configuration; @@ -269,7 +273,7 @@ if ($ajax_search) { WHERE access_url_id = $access_url_id $order_clause"; } - } + } $result=Database::query($sql,__FILE__,__LINE__); $Users=Database::store_result($result); foreach ($Users as $user) { @@ -332,14 +336,12 @@ if ($ajax_search) { LEFT JOIN $tbl_session_rel_user ON $tbl_session_rel_user.id_user = u.user_id AND id_session = '$id_session' $where_filter - $order_clause"; - - } else { - + $order_clause"; + } else { $sql="SELECT u.user_id, lastname, firstname, username, group_id FROM $tbl_user u LEFT JOIN $tbl_group_rel_user gu - ON (gu.user_id = u.user_id) WHERE gu.group_id = $group_id + ON (gu.user_id = u.user_id) AND gu.group_id = $group_id $order_clause"; } @@ -364,14 +366,14 @@ if ($ajax_search) { if($user['group_id'] != $group_id) $nosessionUsersList[$user['user_id']] = $user ; } - var_dump($nosessionUsersList); + $user_anonymous=api_get_anonymous_id(); - /* foreach($nosessionUsersList as $key_user_list =>$value_user_list) { + foreach($nosessionUsersList as $key_user_list =>$value_user_list) { if ($nosessionUsersList[$key_user_list]['user_id']==$user_anonymous) { unset($nosessionUsersList[$key_user_list]); } - }*/ - + } + //filling the correct users in list $sql="SELECT u.user_id, lastname, firstname, username, group_id FROM $tbl_user u @@ -392,6 +394,7 @@ if ($ajax_search) { $order_clause"; } } + $result=Database::query($sql,__FILE__,__LINE__); $Users=Database::store_result($result); @@ -402,7 +405,7 @@ if ($ajax_search) { } foreach ($Users as $user) { - if($user['group_id'] == $group_id){ + if($user['group_id'] == $group_id) { $sessionUsersList[$user['user_id']] = $user; if (array_key_exists($user['user_id'],$nosessionUsersList)) unset($nosessionUsersList[$user['user_id']]); @@ -411,25 +414,21 @@ if ($ajax_search) { } if ($add_type == 'multiple') { - //$link_add_type_unique = ''.Display::return_icon('single.gif').get_lang('SessionAddTypeUnique').''; - //$link_add_type_multiple = Display::return_icon('multiple.gif').get_lang('SessionAddTypeMultiple'); + $link_add_type_unique = ''.Display::return_icon('single.gif').get_lang('SessionAddTypeUnique').''; + $link_add_type_multiple = Display::return_icon('multiple.gif').get_lang('SessionAddTypeMultiple'); } else { - //$link_add_type_unique = Display::return_icon('single.gif').get_lang('SessionAddTypeUnique'); - //$link_add_type_multiple = ''.Display::return_icon('multiple.gif').get_lang('SessionAddTypeMultiple').''; - /* - *
-  |  -
- */ + $link_add_type_unique = Display::return_icon('single.gif').get_lang('SessionAddTypeUnique'); + $link_add_type_multiple = ''.Display::return_icon('multiple.gif').get_lang('SessionAddTypeMultiple').''; } - - ?> +
+  |  +
'.$tool_name.' ('.$session_info['name'].')

'; ?> -
> +> + -





+




'; $user_id = api_get_user_id(); $is_western_name_order = api_is_western_name_order(); + + if (api_get_setting('allow_social_tool')=='true' && api_get_setting('allow_message_tool')=='true') { + $sql = 'SELECT DISTINCT u.user_id as id, '.($is_western_name_order ? 'concat(u.firstname," ",u.lastname," ","( ",u.email," )")' : 'concat(u.lastname," ",u.firstname," ","( ",u.email," )")').' as name FROM '.$tbl_my_user_friend.' uf ' . 'INNER JOIN '.$tbl_my_user.' AS u ON uf.friend_user_id = u.user_id ' . 'WHERE relation_type<>6 AND friend_user_id<>'.(int)$user_id.' AND '.($is_western_name_order ? 'concat(u.firstname, " ", u.lastname)' : 'concat(u.lastname, " ", u.firstname)').' like CONCAT("%","'.$search.'","%") '; + + } elseif (api_get_setting('allow_social_tool')=='false' && api_get_setting('allow_message_tool')=='true') { $valid=api_get_setting('time_limit_whosonline'); + $sql='SELECT DISTINCT u.user_id as id, '.($is_western_name_order ? 'concat(u.firstname," ",u.lastname," ","( ",u.email," )")' : 'concat(u.lastname," ",u.firstname," ","( ",u.email," )")').' as name FROM '.$tbl_my_user.' u INNER JOIN '.$track_online_table.' t ON u.user_id=t.login_user_id WHERE DATE_ADD(login_date,INTERVAL "'.$valid.'" MINUTE) >= "'.$current_date.'" AND '.($is_western_name_order ? 'concat(u.firstname, " ", u.lastname)' : 'concat(u.lastname, " ", u.firstname)').' like CONCAT("%","'.$search.'","%") ';