if (!isset($sortKeyList['submissionCount'])) { $sortKeyList['submissionCount'] = SORT_DESC; } $sortKeyList['s.last_edit_date'] = SORT_ASC; $sortKeyList['fb.last_edit_date'] = SORT_ASC; $sortKeyList['g.name'] = SORT_ASC; // get last submission titles $sql2 = "SELECT `s`.`group_id` as `authId`, `s`.`title`, DATE(`s`.`last_edit_date`) as date\n FROM `" . $tbl_wrk_submission . "` AS `s`\n LEFT JOIN `" . $tbl_wrk_submission . "` AS `s2`\n ON `s`.`group_id` = `s2`.`group_id`\n AND `s2`.`assignment_id` = " . (int) $req['assignmentId'] . "\n AND `s`.`last_edit_date` < `s2`.`last_edit_date`\n WHERE `s2`.`group_id` IS NULL\n AND `s`.`original_id` IS NULL\n AND `s`.`assignment_id` = " . (int) $req['assignmentId'] . "\n " . $submissionFilterSql . ""; } /*-------------------------------------------------------------------- WORK LIST --------------------------------------------------------------------*/ $offset = isset($_REQUEST['offset']) && !empty($_REQUEST['offset']) ? $_REQUEST['offset'] : 0; $workPager = new claro_sql_pager($sql, $offset, $usersPerPage); foreach ($sortKeyList as $thisSortKey => $thisSortDir) { $workPager->add_sort_key($thisSortKey, $thisSortDir); } $workList = $workPager->get_result_list(); // add the title of the last submission in each displayed line $results = claro_sql_query_fetch_all($sql2); $lastWorkTitleList = array(); $last_edit_date_list = array(); foreach ($results as $result) { $lastWorkTitleList[$result['authId']] = $result['title']; $last_edit_date_list[$result['authId']] = $result['date']; } if (!empty($lastWorkTitleList)) { for ($i = 0; $i < count($workList); $i++) { if (isset($lastWorkTitleList[$workList[$i]['authId']])) { $workList[$i]['title'] = $lastWorkTitleList[$workList[$i]['authId']]; }
} else { $sql = "SELECT `id`,\n `title`,\n `def_submission_visibility`,\n `visibility`,\n `assignment_type`,\n unix_timestamp(`start_date`) as `start_date_unix`,\n unix_timestamp(`end_date`) as `end_date_unix`\n FROM `" . $tbl_wrk_assignment . "`"; if (!claro_is_allowed_to_edit()) { $sql .= " WHERE `visibility` = 'VISIBLE' "; } if (isset($_GET['sort'])) { $sortKeyList[$_GET['sort']] = isset($_GET['dir']) ? $_GET['dir'] : SORT_ASC; } else { $sortKeyList['end_date'] = SORT_ASC; $sortKeyList['title'] = SORT_ASC; } } $offset = isset($_REQUEST['offset']) && !empty($_REQUEST['offset']) ? $_REQUEST['offset'] : 0; $assignmentPager = new claro_sql_pager($sql, $offset, $assignmentsPerPage); foreach ($sortKeyList as $thisSortKey => $thisSortDir) { $assignmentPager->add_sort_key($thisSortKey, $thisSortDir); } $assignmentList = $assignmentPager->get_result_list(); // Help URL $helpUrl = $is_allowedToEdit ? get_help_page_url('blockAssignmentsHelp', 'CLWRK') : null; // Command list $cmdList = array(); if ($is_allowedToEdit) { $cmdList[] = array('img' => 'assignment', 'name' => get_lang('Create a new assignment'), 'url' => claro_htmlspecialchars(Url::Contextualize($_SERVER['PHP_SELF'] . '?cmd=rqMkAssig'))); if (claro_is_platform_admin() || get_conf('allow_download_all_submissions')) { $cmdList[] = array('img' => 'save', 'name' => get_lang('Download submissions'), 'url' => claro_htmlspecialchars(Url::Contextualize($_SERVER['PHP_SELF'] . '?cmd=rqDownload'))); } if (get_conf('mail_notification', false) && !get_conf('automatic_mail_notification', false)) { $cmdList[] = array('img' => 'settings', 'name' => get_lang('Assignments preferences'), 'url' => claro_htmlspecialchars(Url::Contextualize('work_settings.php'))); } }
$isSearched = $searchInfo['isSearched']; $addtoAdvanced = $searchInfo['addtoAdvanced']; if (count($searchInfo['isSearched'])) { $isSearched = array_map('strip_tags', $isSearched); $isSearchedHTML = implode('<br />', $isSearched); } else { $isSearchedHTML = ''; } //get the search keyword, if any $search = isset($_REQUEST['search']) ? $_REQUEST['search'] : ''; $sql = get_sql_filtered_user_list(); $myPager = new claro_sql_pager($sql, $offset, $userPerPage); if (array_key_exists('sort', $_GET)) { $dir = array_key_exists('dir', $_GET) && $_GET['dir'] == SORT_DESC ? SORT_DESC : SORT_ASC; $sortKey = strip_tags($_GET['sort']); $myPager->add_sort_key($sortKey, $dir); } $defaultSortKeyList = array('isPlatformAdmin' => SORT_DESC, 'name' => SORT_ASC, 'firstName' => SORT_ASC); foreach ($defaultSortKeyList as $thisSortKey => $thisSortDir) { $myPager->add_sort_key($thisSortKey, $thisSortDir); } $userList = $myPager->get_result_list(); if (is_array($userList)) { $tbl_mdb_names = claro_sql_get_main_tbl(); $tbl_course = $tbl_mdb_names['course']; $tbl_category = $tbl_mdb_names['category']; $tbl_rel_course_user = $tbl_mdb_names['rel_course_user']; $tbl_rel_course_category = $tbl_mdb_names['rel_course_category']; foreach ($userList as $userKey => $user) { // Count number of courses $sql = "SELECT count(DISTINCT code_cours) AS qty_course\n FROM `" . $tbl_rel_course_user . "`\n WHERE user_id = '" . (int) $user['user_id'] . "'\n GROUP BY user_id";
if ($courseUserList->has_registrationPending()) { $usersPanelUrl = claro_htmlspecialchars(Url::Contextualize(get_module_entry_url('CLUSR'))); $dialogBox->warning(get_lang('You have to validate users to give them access to this course through the <a href="%url">course user list</a>', array('%url' => $usersPanelUrl))); } /*---------------------------------------------------------------------- Get Course informations ----------------------------------------------------------------------*/ $sql = "SELECT `course`.`registration`\n FROM `" . $tbl_courses . "` AS course\n WHERE `course`.`code`='" . claro_sql_escape(claro_get_current_course_id()) . "'"; $course = claro_sql_query_get_single_row($sql); /*---------------------------------------------------------------------- Get User List ----------------------------------------------------------------------*/ $sqlGetUsers = "\n SELECT \n `user`.`user_id` AS `user_id`,\n `user`.`nom` AS `nom`,\n `user`.`prenom` AS `prenom`,\n `user`.`email` AS `email`,\n `course_user`.`profile_id`,\n `course_user`.`isCourseManager`,\n `course_user`.`isPending`,\n `course_user`.`tutor` AS `tutor`,\n `course_user`.`role` AS `role`,\n `course_user`.`enrollment_date`,\n `course_user`.`count_class_enrol`,\n `course_user`.`count_user_enrol`,\n\n\tGROUP_CONCAT(`grp`.name ORDER BY `grp`.name SEPARATOR ',' ) AS `groups`\n\n FROM \n \n `{$tbl_users}` AS user,\n `{$tbl_rel_course_user}` AS course_user\n\n LEFT JOIN `{$tbl_rel_users_groups}` AS user_group\n ON user_group.user = `course_user`.`user_id`\n\n LEFT JOIN `{$tbl_groups}` AS `grp`\n ON `grp`.id = user_group.team\n\n WHERE ( `user`.`user_id`=`course_user`.`user_id`\n AND `course_user`.`code_cours`='" . claro_sql_escape(claro_get_current_course_id()) . "' )\n\n GROUP BY user.user_id"; $myPager = new claro_sql_pager($sqlGetUsers, $offset, $userPerPage); if (isset($_GET['sort'])) { $myPager->add_sort_key($_GET['sort'], isset($_GET['dir']) ? $_GET['dir'] : SORT_ASC); } $defaultSortKeyList = array('course_user.isCourseManager' => SORT_DESC, 'course_user.tutor' => SORT_DESC, 'user.nom' => SORT_ASC, 'user.prenom' => SORT_ASC, 'groups' => SORT_ASC, 'enrollment_date' => SORT_ASC); foreach ($defaultSortKeyList as $thisSortKey => $thisSortDir) { $myPager->add_sort_key($thisSortKey, $thisSortDir); } $userList = $myPager->get_result_list(); $userTotalNb = $myPager->get_total_item_count(); /*---------------------------------------------------------------------- Prepare display ----------------------------------------------------------------------*/ $nameTools = get_lang('Users'); // Command list $cmdList = array(); $advancedCmdList = array(); if ($is_allowedToEdit) {