diff --git a/main/dropbox/dropbox_functions.inc.php b/main/dropbox/dropbox_functions.inc.php index 795306d981..cf2e28b9d7 100755 --- a/main/dropbox/dropbox_functions.inc.php +++ b/main/dropbox/dropbox_functions.inc.php @@ -152,9 +152,9 @@ function delete_category($action, $id) { * @author Patrick Cool , Ghent University * @version march 2006 */ -function display_move_form($part, $id, $target = array()) { +function display_move_form($part, $id, $target = array(), $extra_params) { echo '
'.get_lang('MoveFileTo').'
'; - echo '
'; + echo ''; echo ''; echo ''; echo ' @@ -458,7 +458,7 @@ function display_add_form() { global $_user, $is_courseAdmin, $is_courseTutor, $course_info, $origin, $dropbox_unid; $token = Security::get_token(); - $dropbox_person = new Dropbox_Person($_user['user_id'], $is_courseAdmin, $is_courseTutor); + $dropbox_person = new Dropbox_Person(api_get_user_id(), $is_courseAdmin, $is_courseTutor); ?> " enctype="multipart/form-data" onsubmit="javascript: return checkForm(this);"> @@ -504,27 +504,29 @@ function display_add_form() { $e) { - $complete_user_list_for_dropbox[$k] = $e + array('lastcommafirst' => api_get_person_name($e['firstname'], $e['lastname'])); - } - - $complete_user_list_for_dropbox = TableSort::sort_table($complete_user_list_for_dropbox, 'lastcommafirst'); - + + if (!empty($complete_user_list_for_dropbox)) { + foreach ($complete_user_list_for_dropbox as $k => $e) { + $complete_user_list_for_dropbox[$k] = $e + array('lastcommafirst' => api_get_person_name($e['firstname'], $e['lastname'])); + } + $complete_user_list_for_dropbox = TableSort::sort_table($complete_user_list_for_dropbox, 'lastcommafirst'); + } + ?> '; $return .= '
'; + onclick="javascript: document.form_dropbox.attributes.action.value = document.location;">'.get_lang('AddComment').''; } else { $return .= get_lang('AllUsersHaveDeletedTheFileAndWillNotSeeFeedback'); } diff --git a/main/dropbox/index.php b/main/dropbox/index.php index 272076ca5b..09b3ce231d 100755 --- a/main/dropbox/index.php +++ b/main/dropbox/index.php @@ -114,6 +114,24 @@ $dropbox_unid = md5(uniqid(rand(), true)); Display::display_introduction_section(TOOL_DROPBOX); +// Build URL-parameters for table-sorting +$sort_params = array(); +if (isset($_GET['dropbox_column'])) { + $sort_params[] = 'dropbox_column='.$_GET['dropbox_column']; +} +if (isset($_GET['dropbox_page_nr'])) { + $sort_params[] = 'page_nr='.intval($_GET['page_nr']); +} +if (isset($_GET['dropbox_per_page'])) { + $sort_params[] = 'dropbox_per_page='.intval($_GET['dropbox_per_page']); +} +if (isset($_GET['dropbox_direction'])) { + $sort_params[] = 'dropbox_direction='.$_GET['dropbox_direction']; +} + +$sort_params = Security::remove_XSS(implode('&', $sort_params)); + + /* ACTIONS: add a dropbox file, add a dropbox category. */ // Display the form for adding a new dropbox item. @@ -166,15 +184,15 @@ if (isset($_POST['StoreCategory'])) { Display :: display_error_message(get_lang('FormHasErrorsPleaseComplete').'
'.$return_information['message']); display_addcategory_form($_POST['category_name'], $_POST['edit_id'], $_POST['action']); } - } + // Move a File if (($_GET['action'] == 'movesent' OR $_GET['action'] == 'movereceived') AND isset($_GET['move_id'])) { if (api_get_session_id() != 0 && !api_is_allowed_to_session_edit(false, true)) { api_not_allowed(); } - display_move_form(str_replace('move', '', $_GET['action']), $_GET['move_id'], get_dropbox_categories(str_replace('move', '', $_GET['action']))); + display_move_form(str_replace('move', '', $_GET['action']), $_GET['move_id'], get_dropbox_categories(str_replace('move', '', $_GET['action'])), $sort_params); } if ($_POST['do_move']) { Display :: display_confirmation_message(store_move($_POST['id'], $_POST['move_target'], $_POST['part'])); @@ -238,7 +256,7 @@ if (isset($_GET['error']) AND !empty($_GET['error'])) { } -if ($_GET['action'] != 'add') { +if ($_GET['action'] != 'add') { // Getting all the categories in the dropbox for the given user $dropbox_categories = get_dropbox_categories(); @@ -433,18 +451,18 @@ if ($_GET['action'] != 'add') { $last_upload_date = api_get_local_time($dropbox_file->last_upload_date); $dropbox_file_data[] = date_to_str_ago($last_upload_date).'
'.api_format_date($last_upload_date).''; - + $action_icons = check_number_feedback($dropbox_file->id, $number_feedback).' '.get_lang('Feedback').' - '.Display::return_icon('discuss.png', get_lang('Comment'),'',22).' - '.Display::return_icon('move.png', get_lang('Move'),'',22).' - '.Display::return_icon('delete.png', get_lang('Delete'),'',22).''; + '.Display::return_icon('discuss.png', get_lang('Comment'),'',22).' + '.Display::return_icon('move.png', get_lang('Move'),'',22).' + '.Display::return_icon('delete.png', get_lang('Delete'),'',22).''; //$action_icons=' '.Display::return_icon('deplacer.gif',get_lang('Move')).' // '.Display::return_icon('delete.gif', get_lang('Delete')).''; // This is a hack to have an additional row in a sortable table if ($_GET['action'] == 'viewfeedback' AND isset($_GET['id']) and is_numeric($_GET['id']) AND $dropbox_file->id == $_GET['id']) { - $action_icons .= "\n"; // Ending the normal row of the sortable table - $action_icons .= '".get_lang('CloseFeedback')."".feedback($dropbox_file->feedback2)."\n\n"; + $action_icons .= ""; // Ending the normal row of the sortable table + $action_icons .= '".get_lang('CloseFeedback')."".feedback($dropbox_file->feedback2).""; } if (api_get_session_id() == 0) { $dropbox_file_data[] = $action_icons; @@ -493,7 +511,7 @@ if ($_GET['action'] != 'add') { $selectlist = array(); } - Display::display_sortable_config_table($column_header, $dropbox_data_recieved, $sorting_options, $paging_options, $additional_get_parameters, $column_show, $column_order, $selectlist); + Display::display_sortable_config_table('dropbox', $column_header, $dropbox_data_recieved, $sorting_options, $paging_options, $additional_get_parameters, $column_show, $column_order, $selectlist); } /* SENT FILES */ @@ -582,14 +600,18 @@ if ($_GET['action'] != 'add') { //$dropbox_file_data[] = $dropbox_file->author; $receivers_celldata = ''; + + $action_icons = check_number_feedback($dropbox_file->id, $number_feedback).' '.get_lang('Feedback').' - '.Display::return_icon('discuss.png', get_lang('Comment'),'',22).' - '.Display::return_icon('move.png', get_lang('Move'),'',22).' - '.Display::return_icon('delete.png', get_lang('Delete'),'',22).''; + '.Display::return_icon('discuss.png', get_lang('Comment'),'',22).' + '.Display::return_icon('move.png', get_lang('Move'),'',22).' + '.Display::return_icon('delete.png', get_lang('Delete'),'',22).''; // This is a hack to have an additional row in a sortable table if ($_GET['action'] == 'viewfeedback' && isset($_GET['id']) && is_numeric($_GET['id']) && $dropbox_file->id == $_GET['id']) { $action_icons .= "\n"; // ending the normal row of the sortable table - $action_icons .= "\n\t".get_lang('CloseFeedback')."".feedback($dropbox_file->feedback2)."\n\n"; + $action_icons .= ""; + $action_icons .= "".get_lang('CloseFeedback').""; + $action_icons .= "".feedback($dropbox_file->feedback2).""; } $dropbox_file_data[] = $action_icons; $dropbox_file_data[] = $last_upload_date; @@ -627,7 +649,7 @@ if ($_GET['action'] != 'add') { if (api_get_session_id() != 0 && !api_is_allowed_to_session_edit(false, true)) { $selectlist = array('download_received' => get_lang('Download')); } - Display::display_sortable_config_table($column_header, $dropbox_data_sent, $sorting_options, $paging_options, $additional_get_parameters, $column_show, $column_order, $selectlist); + Display::display_sortable_config_table('dropbox', $column_header, $dropbox_data_sent, $sorting_options, $paging_options, $additional_get_parameters, $column_show, $column_order, $selectlist); } } diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index 8a4b699e52..75690e5ac3 100755 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -990,8 +990,7 @@ class CourseManager { public static function get_user_list_from_course_code($course_code, $with_session = true, $session_id = 0, $limit = '', $order_by = '') { global $_configuration; // variable initialisation - $session_id = intval($session_id); - $users = array(); + $session_id = intval($session_id); $course_code = Database::escape_string($course_code); $where = array(); @@ -1036,30 +1035,33 @@ class CourseManager { if ($_configuration['multiple_access_urls']) { $current_access_url_id = api_get_current_access_url_id(); $sql .= " AND (access_url_id = $current_access_url_id ) "; - } - + } $sql .= ' '.$order_by.' '.$limit; $rs = Database::query($sql); - - while ($user = Database::fetch_array($rs)) { - //$user_info = Database::get_user_info_from_id($user['user_id']); - $user_info = $user; - $user_info['status'] = $user['status']; - - if (isset($user['role'])) { - $user_info['role'] = $user['role']; - } - if (isset($user['tutor_id'])) { - $user_info['tutor_id'] = $user['tutor_id']; - } - - if (!empty($session_id)) { - $user_info['status_session'] = $user['status_session']; + $users = array(); + + if (Database::num_rows($rs)) { + while ($user = Database::fetch_array($rs)) { + //$user_info = Database::get_user_info_from_id($user['user_id']); + $user_info = $user; + $user_info['status'] = $user['status']; + + if (isset($user['role'])) { + $user_info['role'] = $user['role']; + } + if (isset($user['tutor_id'])) { + $user_info['tutor_id'] = $user['tutor_id']; + } + + if (!empty($session_id)) { + $user_info['status_session'] = $user['status_session']; + } + + $users[$user['user_id']] = $user_info; } - - $users[$user['user_id']] = $user_info; } + return $users; } diff --git a/main/inc/lib/display.lib.php b/main/inc/lib/display.lib.php index 8016a33f96..68b32e184f 100755 --- a/main/inc/lib/display.lib.php +++ b/main/inc/lib/display.lib.php @@ -270,7 +270,7 @@ class Display { * * @author Julio Montoya */ - public static function display_sortable_config_table($header, $content, $sorting_options = array(), $paging_options = array(), $query_vars = null, $column_show = array(), $column_order = array(), $form_actions = array()) { + public static function display_sortable_config_table($table_name, $header, $content, $sorting_options = array(), $paging_options = array(), $query_vars = null, $column_show = array(), $column_order = array(), $form_actions = array()) { if (!class_exists('SortableTable')) { require_once 'sortabletable.class.php'; } @@ -278,7 +278,7 @@ class Display { $column = isset($sorting_options['column']) ? $sorting_options['column'] : 0; $default_items_per_page = isset($paging_options['per_page']) ? $paging_options['per_page'] : 20; - $table = new SortableTableFromArrayConfig($content, $column, $default_items_per_page, 'tablename', $column_show, $column_order); + $table = new SortableTableFromArrayConfig($content, $column, $default_items_per_page, $table_name, $column_show, $column_order); if (is_array($query_vars)) { $table->set_additional_parameters($query_vars); diff --git a/main/work/work.lib.php b/main/work/work.lib.php index 726662ba56..594d41cf73 100755 --- a/main/work/work.lib.php +++ b/main/work/work.lib.php @@ -873,7 +873,7 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC } $my_params['origin'] = $origin; - Display::display_sortable_config_table($table_header, $table_data, $sorting_options, $paging_options, $my_params, $column_show, $column_order); + Display::display_sortable_config_table('work', $table_header, $table_data, $sorting_options, $paging_options, $my_params, $column_show, $column_order); } /** @@ -1569,7 +1569,7 @@ function display_list_users_without_publication($task_id) { $column_show[] = 1; $column_show[] = 1; $column_show[] = 1; - Display::display_sortable_config_table($table_header, $table_data, $sorting_options, $paging_options, $my_params, $column_show); + Display::display_sortable_config_table('work', $table_header, $table_data, $sorting_options, $paging_options, $my_params, $column_show); } /**