/** * Constructor */ public function ResultTable($evaluation, $results = array(), $iscourse, $addparams = null, $forprint = false) { parent::__construct('resultlist', null, null, (api_is_western_name_order() xor api_sort_by_first_name()) ? 2 : 1); $this->datagen = new ResultsDataGenerator($evaluation, $results, true); $this->evaluation = $evaluation; $this->iscourse = $iscourse; $this->forprint = $forprint; if (isset($addparams)) { $this->set_additional_parameters($addparams); } $scoredisplay = ScoreDisplay::instance(); $column = 0; if ($this->iscourse == '1') { $this->set_header($column++, '', false); $this->set_form_actions(array('delete' => get_lang('Delete'))); } if (api_is_western_name_order()) { $this->set_header($column++, get_lang('FirstName')); $this->set_header($column++, get_lang('LastName')); } else { $this->set_header($column++, get_lang('LastName')); $this->set_header($column++, get_lang('FirstName')); } $this->set_header($column++, get_lang('Score')); if ($scoredisplay->is_custom()) { $this->set_header($column++, get_lang('Display')); } if (!$this->forprint) { $this->set_header($column++, get_lang('Modify'), false); } }
/** * Search users by username, firstname or lastname, based on the given * search string * @param string Search string * @param int Deprecated param * @return string Xajax response block * @assert () === false */ public static function search_users($needle, $id) { global $tbl_user, $tbl_access_url_rel_user; $xajax_response = new XajaxResponse(); $return = ''; if (!empty($needle)) { // xajax send utf8 datas... datas in db can be non-utf8 datas $charset = api_get_system_encoding(); $needle = api_convert_encoding($needle, $charset, 'utf-8'); $needle = Database::escape_string($needle); // search users where username or firstname or lastname begins likes $needle $order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname, username' : ' ORDER BY lastname, firstname, username'; $sql = 'SELECT u.user_id, username, lastname, firstname FROM ' . $tbl_user . ' u ' . ' WHERE (username LIKE "' . $needle . '%" ' . ' OR firstname LIKE "' . $needle . '%" ' . ' OR lastname LIKE "' . $needle . '%") ' . $order_clause . ' LIMIT 11'; $rs = Database::query($sql); $i = 0; while ($user = Database::fetch_array($rs)) { $i++; if ($i <= 10) { $return .= '<a href="javascript: void(0);" onclick="javascript: add_user_to_url(\'' . addslashes($user['user_id']) . '\',\'' . api_get_person_name(addslashes($user['firstname']), addslashes($user['lastname'])) . ' (' . addslashes($user['username']) . ')' . '\')">' . api_get_person_name($user['firstname'], $user['lastname']) . ' (' . $user['username'] . ')</a><br />'; } else { $return .= '...<br />'; } } } $xajax_response->addAssign('ajax_list_users', 'innerHTML', api_utf8_encode($return)); return $xajax_response; }
function search_users($needle, $type) { global $_configuration, $tbl_access_url_rel_user, $tbl_user, $user_anonymous, $current_user_id, $user_id; $xajax_response = new XajaxResponse(); $return = ''; if (!empty($needle) && !empty($type)) { // xajax send utf8 datas... datas in db can be non-utf8 datas $charset = api_get_system_encoding(); $needle = api_convert_encoding($needle, $charset, 'utf-8'); $assigned_users_to_hrm = UserManager::get_users_followed_by_drh($user_id); $assigned_users_id = array_keys($assigned_users_to_hrm); $without_assigned_users = ''; if (count($assigned_users_id) > 0) { $without_assigned_users = " AND user.user_id NOT IN(" . implode(',', $assigned_users_id) . ")"; } if ($_configuration['multiple_access_urls']) { $sql = "SELECT user.user_id, username, lastname, firstname FROM {$tbl_user} user LEFT JOIN {$tbl_access_url_rel_user} au ON (au.user_id = user.user_id)\n\t\t\tWHERE " . (api_sort_by_first_name() ? 'firstname' : 'lastname') . " LIKE '{$needle}%' AND status NOT IN(" . DRH . ", " . SESSIONADMIN . ") AND user.user_id NOT IN ({$user_anonymous}, {$current_user_id}, {$user_id}) {$without_assigned_users} AND access_url_id = " . api_get_current_access_url_id() . ""; } else { $sql = "SELECT user_id, username, lastname, firstname FROM {$tbl_user} user\n\t\t\tWHERE " . (api_sort_by_first_name() ? 'firstname' : 'lastname') . " LIKE '{$needle}%' AND status NOT IN(" . DRH . ", " . SESSIONADMIN . ") AND user_id NOT IN ({$user_anonymous}, {$current_user_id}, {$user_id}) {$without_assigned_users}"; } $rs = Database::query($sql); $return .= '<select id="origin" name="NoAssignedUsersList[]" multiple="multiple" size="20" style="width:340px;">'; while ($user = Database::fetch_array($rs)) { $person_name = api_get_person_name($user['firstname'], $user['lastname']); $return .= '<option value="' . $user['user_id'] . '" title="' . htmlspecialchars($person_name, ENT_QUOTES) . '">' . $person_name . ' (' . $user['username'] . ')</option>'; } $return .= '</select>'; $xajax_response->addAssign('ajax_list_users_multiple', 'innerHTML', api_utf8_encode($return)); } return $xajax_response; }
/** * Function to sort users after getting the list in the DB. * Necessary because there are 2 or 3 queries. Called by usort() */ function sort_users($user_a, $user_b) { if (api_sort_by_first_name()) { $cmp = api_strcmp($user_a['firstname'], $user_b['firstname']); if ($cmp !== 0) { return $cmp; } else { $cmp = api_strcmp($user_a['lastname'], $user_b['lastname']); if ($cmp !== 0) { return $cmp; } else { return api_strcmp($user_a['username'], $user_b['username']); } } } else { $cmp = api_strcmp($user_a['lastname'], $user_b['lastname']); if ($cmp !== 0) { return $cmp; } else { $cmp = api_strcmp($user_a['firstname'], $user_b['firstname']); if ($cmp !== 0) { return $cmp; } else { return api_strcmp($user_a['username'], $user_b['username']); } } } }
/** * this function gets all the users of the current course * @author Patrick Cool <*****@*****.**>, Ghent University * @return array: associative array where the key is the id of the user and the value is an array containing the first name, the last name, the user id */ function get_course_users() { $tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_courseUser = Database::get_main_table(TABLE_MAIN_COURSE_USER); $tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); // not 100% if this is necessary, this however prevents a notice if (!isset($courseadmin_filter)) { $courseadmin_filter = ''; } // $order_clause = api_sort_by_first_name() ? ' ORDER BY u.firstname, u.lastname' : ' ORDER BY u.lastname, u.firstname'; $sql = "SELECT u.user_id uid, u.lastname lastName, u.firstname firstName, u.username\n\t\t\tFROM {$tbl_user} as u, {$tbl_courseUser} as cu\n\t\t\tWHERE cu.c_id = '" . api_get_course_int_id() . "'\n\t\t\tAND cu.user_id = u.user_id {$courseadmin_filter}" . $order_clause; $result = Database::query($sql); while ($user = Database::fetch_array($result)) { $users[$user[0]] = $user; } $session_id = api_get_session_id(); if (!empty($session_id)) { $users = array(); $sql = "SELECT u.user_id uid, u.lastname lastName, u.firstName firstName, u.username\n\t\t\t\tFROM {$tbl_session_course_user} AS session_course_user\n\t\t\t\tINNER JOIN {$tbl_user} u ON u.user_id = session_course_user.id_user\n\t\t\t\tWHERE id_session = " . $session_id . "\n\t\t\t\tAND c_id = '" . api_get_course_int_id() . "'"; $result = Database::query($sql); while ($user = Database::fetch_array($result)) { $users[$user[0]] = $user; } } return $users; }
/** * Constructor */ function FlatViewTable($selectcat, $users = array(), $evals = array(), $links = array(), $limit_enabled = false, $offset = 0, $addparams = null) { parent::__construct('flatviewlist', null, null, (api_is_western_name_order() xor api_sort_by_first_name()) ? 1 : 0); $this->selectcat = $selectcat; $this->datagen = new FlatViewDataGenerator($users, $evals, $links, array('only_subcat' => $this->selectcat->get_id())); $this->limit_enabled = $limit_enabled; $this->offset = $offset; if (isset($addparams)) { $this->set_additional_parameters($addparams); } // step 2: generate rows: students $this->datagen->category = $this->selectcat; }
/** * Function to sort users after getting the list in the DB. * Necessary because there are 2 or 3 queries. Called by usort() */ function sort_users($user_a, $user_b) { global $_configuration; if (isset($_configuration['order_user_list_by_official_code']) && $_configuration['order_user_list_by_official_code']) { $cmp = api_strcmp($user_a['official_code'], $user_b['official_code']); if ($cmp !== 0) { return $cmp; } else { $cmp = api_strcmp($user_a['lastname'], $user_b['lastname']); if ($cmp !== 0) { return $cmp; } else { return api_strcmp($user_a['username'], $user_b['username']); } } } if (api_sort_by_first_name()) { $cmp = api_strcmp($user_a['firstname'], $user_b['firstname']); if ($cmp !== 0) { return $cmp; } else { $cmp = api_strcmp($user_a['lastname'], $user_b['lastname']); if ($cmp !== 0) { return $cmp; } else { return api_strcmp($user_a['username'], $user_b['username']); } } } else { $cmp = api_strcmp($user_a['lastname'], $user_b['lastname']); if ($cmp !== 0) { return $cmp; } else { $cmp = api_strcmp($user_a['firstname'], $user_b['firstname']); if ($cmp !== 0) { return $cmp; } else { return api_strcmp($user_a['username'], $user_b['username']); } } } }
/** * Function to sort users after getting the list in the DB. * Necessary because there are 2 or 3 queries. Called by usort() */ function sort_users($user_a, $user_b) { $orderListByOfficialCode = api_get_setting('platform.order_user_list_by_official_code'); if ($orderListByOfficialCode === 'true') { $cmp = api_strcmp($user_a['official_code'], $user_b['official_code']); if ($cmp !== 0) { return $cmp; } else { $cmp = api_strcmp($user_a['lastname'], $user_b['lastname']); if ($cmp !== 0) { return $cmp; } else { return api_strcmp($user_a['username'], $user_b['username']); } } } if (api_sort_by_first_name()) { $cmp = api_strcmp($user_a['firstname'], $user_b['firstname']); if ($cmp !== 0) { return $cmp; } else { $cmp = api_strcmp($user_a['lastname'], $user_b['lastname']); if ($cmp !== 0) { return $cmp; } else { return api_strcmp($user_a['username'], $user_b['username']); } } } else { $cmp = api_strcmp($user_a['lastname'], $user_b['lastname']); if ($cmp !== 0) { return $cmp; } else { $cmp = api_strcmp($user_a['firstname'], $user_b['firstname']); if ($cmp !== 0) { return $cmp; } else { return api_strcmp($user_a['username'], $user_b['username']); } } } }
function search_coachs($needle) { $tbl_user = Database::get_main_table(TABLE_MAIN_USER); $xajax_response = new xajaxResponse(); $return = ''; if (!empty($needle)) { $order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname, username' : ' ORDER BY lastname, firstname, username'; // search users where username or firstname or lastname begins likes $needle $sql = 'SELECT username, lastname, firstname FROM ' . $tbl_user . ' user WHERE (username LIKE "' . $needle . '%" OR firstname LIKE "' . $needle . '%" OR lastname LIKE "' . $needle . '%") AND status=1' . $order_clause . ' LIMIT 10'; if (api_is_multiple_url_enabled()) { $tbl_user_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); $access_url_id = api_get_current_access_url_id(); if ($access_url_id != -1) { $sql = 'SELECT username, lastname, firstname FROM ' . $tbl_user . ' user INNER JOIN ' . $tbl_user_rel_access_url . ' url_user ON (url_user.user_id=user.user_id) WHERE access_url_id = ' . $access_url_id . ' AND ( username LIKE "' . $needle . '%" OR firstname LIKE "' . $needle . '%" OR lastname LIKE "' . $needle . '%" ) AND status=1' . $order_clause . ' LIMIT 10'; } } $rs = Database::query($sql); while ($user = Database::fetch_array($rs)) { $return .= '<a href="javascript: void(0);" onclick="javascript: fill_coach_field(\'' . $user['username'] . '\')">' . api_get_person_name($user['firstname'], $user['lastname']) . ' (' . $user['username'] . ')</a><br />'; } } $xajax_response->addAssign('ajax_list_coachs', 'innerHTML', api_utf8_encode($return)); return $xajax_response; }
/** * returns users within a course given by param * @param $course_id */ function get_users_in_course($courseId) { $tbl_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); $tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_user = Database::get_main_table(TABLE_MAIN_USER); $order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname ASC' : ' ORDER BY lastname, firstname ASC'; $current_session = api_get_session_id(); $courseId = Database::escape_string($courseId); if (!empty($current_session)) { $sql = "SELECT user.user_id, user.username, lastname, firstname, official_code\n\t\t\t \tFROM {$tbl_session_course_user} as scru, {$tbl_user} as user\n\t\t\t \tWHERE scru.id_user=user.user_id\n AND scru.status=0\n AND scru.c_id ='{$courseId}' AND id_session = '{$current_session}'\n\t\t\t \t{$order_clause} "; } else { $sql = 'SELECT user.user_id, user.username, lastname, firstname, official_code FROM ' . $tbl_course_user . ' as course_rel_user, ' . $tbl_user . ' as user WHERE course_rel_user.user_id=user.user_id AND course_rel_user.status=' . STUDENT . ' AND course_rel_user.c_id = ' . $courseId . ' ' . $order_clause; } $result = Database::query($sql); return get_user_array_from_sql_result($result); }
$current_course_tool = TOOL_USER; $this_section = SECTION_COURSES; // notice for unauthorized people. api_protect_course_script(true); if (!api_is_platform_admin(true)) { if (!api_is_course_admin() && !api_is_coach()) { if (api_get_course_setting('allow_user_view_user_list') == 0) { api_not_allowed(true); } } } /* Constants and variables */ $course_code = Database::escape_string(api_get_course_id()); $sessionId = api_get_session_id(); $is_western_name_order = api_is_western_name_order(); $sort_by_first_name = api_sort_by_first_name(); $course_info = api_get_course_info(); $user_id = api_get_user_id(); $courseCode = $course_info['code']; $courseId = $course_info['real_id']; //Can't auto unregister from a session if (!empty($sessionId)) { $course_info['unsubscribe'] = 0; } /* Unregistering a user section */ if (api_is_allowed_to_edit(null, true)) { if (isset($_POST['action'])) { switch ($_POST['action']) { case 'unsubscribe': // Make sure we don't unsubscribe current user from the course if (is_array($_POST['user'])) {
function search_users($needle, $type) { global $tbl_access_url_rel_user, $tbl_user, $user_anonymous, $current_user_id, $user_id, $userStatus; $xajax_response = new xajaxResponse(); $return = ''; if (!empty($needle) && !empty($type)) { $assigned_users_to_hrm = array(); switch ($userStatus) { case DRH: //no break; //no break; case PLATFORM_ADMIN: $assigned_users_to_hrm = UserManager::get_users_followed_by_drh($user_id); break; case STUDENT_BOSS: $assigned_users_to_hrm = UserManager::getUsersFollowedByStudentBoss($user_id); break; } $assigned_users_id = array_keys($assigned_users_to_hrm); $without_assigned_users = ''; $westernOrder = api_is_western_name_order(); if ($westernOrder) { $order_clause = " ORDER BY firstname, lastname"; } else { $order_clause = " ORDER BY lastname, firstname"; } if (count($assigned_users_id) > 0) { $without_assigned_users = " AND user.user_id NOT IN(" . implode(',', $assigned_users_id) . ")"; } if (api_is_multiple_url_enabled()) { $sql = "SELECT user.user_id, username, lastname, firstname\n FROM {$tbl_user} user\n LEFT JOIN {$tbl_access_url_rel_user} au ON (au.user_id = user.user_id)\n WHERE\n " . (api_sort_by_first_name() ? 'firstname' : 'lastname') . " LIKE '{$needle}%' AND\n status NOT IN(" . DRH . ", " . SESSIONADMIN . ", " . STUDENT_BOSS . ") AND\n user.user_id NOT IN ({$user_anonymous}, {$current_user_id}, {$user_id})\n {$without_assigned_users} AND\n access_url_id = " . api_get_current_access_url_id() . "\n {$order_clause}\n "; } else { $sql = "SELECT user_id, username, lastname, firstname\n FROM {$tbl_user} user\n WHERE\n " . (api_sort_by_first_name() ? 'firstname' : 'lastname') . " LIKE '{$needle}%' AND\n status NOT IN(" . DRH . ", " . SESSIONADMIN . ", " . STUDENT_BOSS . ") AND\n user_id NOT IN ({$user_anonymous}, {$current_user_id}, {$user_id})\n {$without_assigned_users}\n {$order_clause}\n "; } $rs = Database::query($sql); $xajax_response->addAssign('ajax_list_users_multiple', 'innerHTML', api_utf8_encode($return)); if ($type == 'single') { $tbl_user_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); $access_url_id = api_get_current_access_url_id(); $sql = 'SELECT user.user_id, username, lastname, firstname FROM ' . $tbl_user . ' user INNER JOIN ' . $tbl_user_rel_access_url . ' url_user ON (url_user.user_id=user.user_id) WHERE access_url_id = ' . $access_url_id . ' AND ( username LIKE "' . $needle . '%" OR firstname LIKE "' . $needle . '%" OR lastname LIKE "' . $needle . '%" ) AND '; switch ($userStatus) { case DRH: $sql .= " user.status <> 6 AND user.status <> " . DRH; break; case STUDENT_BOSS: $sql .= " user.status <> 6 AND user.status <> " . STUDENT_BOSS; break; } $sql .= " {$order_clause} LIMIT 11"; $rs = Database::query($sql); $i = 0; while ($user = Database::fetch_array($rs)) { $i++; if ($i <= 10) { $person_name = api_get_person_name($user['firstname'], $user['lastname']); $return .= '<a href="javascript: void(0);" onclick="javascript: add_user_to_user(\'' . $user['user_id'] . '\',\'' . $person_name . ' (' . $user['username'] . ')' . '\')">' . $person_name . ' (' . $user['username'] . ')</a><br />'; } else { $return .= '...<br />'; } } $xajax_response->addAssign('ajax_list_users_single', 'innerHTML', api_utf8_encode($return)); } else { $return .= '<select id="origin" class="form-control" name="NoAssignedUsersList[]" multiple="multiple" size="15" ">'; while ($user = Database::fetch_array($rs)) { $person_name = api_get_person_name($user['firstname'], $user['lastname']); $return .= '<option value="' . $user['user_id'] . '" title="' . htmlspecialchars($person_name, ENT_QUOTES) . '">' . $person_name . ' (' . $user['username'] . ')</option>'; } $return .= '</select>'; $xajax_response->addAssign('ajax_list_users_multiple', 'innerHTML', api_utf8_encode($return)); } } return $xajax_response; }
static function get_coaches_by_keyword($tag) { $tbl_user = Database::get_main_table(TABLE_MAIN_USER); $order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname, username' : ' ORDER BY lastname, firstname, username'; $select = "SELECT user.user_id, lastname, firstname, username "; $sql = " {$select} FROM {$tbl_user} user WHERE status='1'"; $tag = Database::escape_string($tag); $where_condition = array(); if (!empty($tag)) { $condition = ' LIKE "%' . $tag . '%"'; $where_condition = array("firstname {$condition}", "lastname {$condition}", "username {$condition}"); $where_condition = ' AND (' . implode(' OR ', $where_condition) . ') '; } if (api_is_multiple_url_enabled()) { $tbl_user_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); $access_url_id = api_get_current_access_url_id(); if ($access_url_id != -1) { $sql = $select . ' FROM ' . $tbl_user . ' user INNER JOIN ' . $tbl_user_rel_access_url . ' url_user ON (url_user.user_id=user.user_id) WHERE access_url_id = ' . $access_url_id . ' AND status = 1'; } } $sql .= $where_condition . $order_clause; $result = Database::query($sql); return Database::store_result($result, 'ASSOC'); }
function sort_by_user($item1, $item2) { $user1 = $item1['user']; $user2 = $item2['user']; if (api_sort_by_first_name()) { $result = api_strcmp($user1['firstname'], $user2['firstname']); if ($result == 0) { return api_strcmp($user1['lastname'], $user2['lastname']); } } else { $result = api_strcmp($user1['lastname'], $user2['lastname']); if ($result == 0) { return api_strcmp($user1['firstname'], $user2['firstname']); } } return $result; }
/** * This function gets all the invited users for a given survey code. * * @param string Survey code * @param string optional - course database * @return array Array containing the course users and additional users (non course users) * * @todo consider making $defaults['additional_users'] also an array * * @author Patrick Cool <*****@*****.**>, Ghent University * @author Julio Montoya, adding c_id fixes - Dec 2012 * @version January 2007 */ public static function get_invited_users($survey_code, $course_code = '', $session_id = 0) { if (!empty($course_code)) { $course_info = api_get_course_info($course_code); $course_id = $course_info['real_id']; } else { $course_id = api_get_course_int_id(); } if (empty($session_id)) { $session_id = api_get_session_id(); } $table_survey_invitation = Database::get_course_table(TABLE_SURVEY_INVITATION); $table_user = Database::get_main_table(TABLE_MAIN_USER); // Selecting all the invitations of this survey AND the additional emailaddresses (the left join) $order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname' : ' ORDER BY lastname, firstname'; $sql = "SELECT user, group_id\n\t\t\t\tFROM {$table_survey_invitation} as table_invitation\n\t\t\t\tWHERE\n\t\t\t\t table_invitation.c_id = {$course_id} AND\n survey_code='" . Database::escape_string($survey_code) . "' AND\n session_id = {$session_id}\n "; $defaults = array(); $defaults['course_users'] = array(); $defaults['additional_users'] = array(); // Textarea $defaults['users'] = array(); // user and groups $result = Database::query($sql); while ($row = Database::fetch_array($result)) { if (is_numeric($row['user'])) { $defaults['course_users'][] = $row['user']; $defaults['users'][] = 'USER:'******'user']; } else { if (!empty($row['user'])) { $defaults['additional_users'][] = $row['user']; } } if (isset($row['group_id']) && !empty($row['group_id'])) { $defaults['users'][] = 'GROUP:' . $row['group_id']; } } if (!empty($defaults['course_users'])) { $user_ids = implode("','", $defaults['course_users']); $sql = "SELECT user_id FROM {$table_user} WHERE user_id IN ('{$user_ids}') {$order_clause}"; $result = Database::query($sql); $fixed_users = array(); while ($row = Database::fetch_array($result)) { $fixed_users[] = $row['user_id']; } $defaults['course_users'] = $fixed_users; } if (!empty($defaults['additional_users'])) { $defaults['additional_users'] = implode(';', $defaults['additional_users']); } return $defaults; }
/** * @param FormValidator $form * * @return array */ public static function setForm(FormValidator &$form, $sessionId = 0) { $categoriesList = SessionManager::get_all_session_category(); $userInfo = api_get_user_info(); $categoriesOptions = array('0' => get_lang('None')); if ($categoriesList != false) { foreach ($categoriesList as $categoryItem) { $categoriesOptions[$categoryItem['id']] = $categoryItem['name']; } } // Database Table Definitions $tbl_user = Database::get_main_table(TABLE_MAIN_USER); $form->addElement('text', 'name', get_lang('SessionName'), array('maxlength' => 50)); $form->addRule('name', get_lang('ThisFieldIsRequired'), 'required'); $form->addRule('name', get_lang('SessionNameAlreadyExists'), 'callback', 'check_session_name'); if (!api_is_platform_admin() && api_is_teacher()) { $form->addElement('select', 'coach_username', get_lang('CoachName'), [api_get_user_id() => $userInfo['complete_name']], array('id' => 'coach_username', 'class' => 'chzn-select', 'style' => 'width:370px;')); } else { $sql = "SELECT COUNT(1) FROM {$tbl_user} WHERE status = 1"; $rs = Database::query($sql); $countUsers = Database::result($rs, 0, 0); if (intval($countUsers) < 50) { $orderClause = "ORDER BY "; $orderClause .= api_sort_by_first_name() ? "firstname, lastname, username" : "lastname, firstname, username"; $sql = "SELECT user_id, lastname, firstname, username\n FROM {$tbl_user}\n WHERE status = '1' " . $orderClause; if (api_is_multiple_url_enabled()) { $userRelAccessUrlTable = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); $accessUrlId = api_get_current_access_url_id(); if ($accessUrlId != -1) { $sql = "SELECT user.user_id, username, lastname, firstname\n FROM {$tbl_user} user\n INNER JOIN {$userRelAccessUrlTable} url_user\n ON (url_user.user_id = user.user_id)\n WHERE\n access_url_id = {$accessUrlId} AND\n status = 1 " . $orderClause; } } $result = Database::query($sql); $coachesList = Database::store_result($result); $coachesOptions = array(); foreach ($coachesList as $coachItem) { $coachesOptions[$coachItem['user_id']] = api_get_person_name($coachItem['firstname'], $coachItem['lastname']) . ' (' . $coachItem['username'] . ')'; } $form->addElement('select', 'coach_username', get_lang('CoachName'), $coachesOptions); } else { $form->addElement('select_ajax', 'coach_username', get_lang('CoachName'), null, ['url' => api_get_path(WEB_AJAX_PATH) . 'session.ajax.php?a=search_general_coach', 'width' => '100%']); } } $form->addRule('coach_username', get_lang('ThisFieldIsRequired'), 'required'); $form->addHtml('<div id="ajax_list_coachs"></div>'); $form->addButtonAdvancedSettings('advanced_params'); $form->addElement('html', '<div id="advanced_params_options" style="display:none">'); $form->addSelect('session_category', get_lang('SessionCategory'), $categoriesOptions, array('id' => 'session_category', 'class' => 'chzn-select', 'style' => 'width:370px;')); $form->addHtmlEditor('description', get_lang('Description'), false, false, array('ToolbarSet' => 'Minimal')); $form->addElement('checkbox', 'show_description', null, get_lang('ShowDescription')); $visibilityGroup = array(); $visibilityGroup[] = $form->createElement('select', 'session_visibility', null, array(SESSION_VISIBLE_READ_ONLY => get_lang('SessionReadOnly'), SESSION_VISIBLE => get_lang('SessionAccessible'), SESSION_INVISIBLE => api_ucfirst(get_lang('SessionNotAccessible')))); $form->addGroup($visibilityGroup, 'visibility_group', get_lang('SessionVisibility'), null, false); $options = [0 => get_lang('ByDuration'), 1 => get_lang('ByDates')]; $form->addSelect('access', get_lang('Access'), $options, array('onchange' => 'accessSwitcher()', 'id' => 'access')); $form->addElement('html', '<div id="duration" style="display:none">'); $form->addElement('number', 'duration', array(get_lang('SessionDurationTitle'), get_lang('SessionDurationDescription')), array('maxlength' => 50)); $form->addElement('html', '</div>'); $form->addElement('html', '<div id="date_fields" style="display:none">'); // Dates $form->addDateTimePicker('access_start_date', array(get_lang('SessionStartDate'), get_lang('SessionStartDateComment')), array('id' => 'access_start_date')); $form->addDateTimePicker('access_end_date', array(get_lang('SessionEndDate'), get_lang('SessionEndDateComment')), array('id' => 'access_end_date')); $form->addRule(array('access_start_date', 'access_end_date'), get_lang('StartDateMustBeBeforeTheEndDate'), 'compare_datetime_text', '< allow_empty'); $form->addDateTimePicker('display_start_date', array(get_lang('SessionDisplayStartDate'), get_lang('SessionDisplayStartDateComment')), array('id' => 'display_start_date')); $form->addDateTimePicker('display_end_date', array(get_lang('SessionDisplayEndDate'), get_lang('SessionDisplayEndDateComment')), array('id' => 'display_end_date')); $form->addRule(array('display_start_date', 'display_end_date'), get_lang('StartDateMustBeBeforeTheEndDate'), 'compare_datetime_text', '< allow_empty'); $form->addDateTimePicker('coach_access_start_date', array(get_lang('SessionCoachStartDate'), get_lang('SessionCoachStartDateComment')), array('id' => 'coach_access_start_date')); $form->addDateTimePicker('coach_access_end_date', array(get_lang('SessionCoachEndDate'), get_lang('SessionCoachEndDateComment')), array('id' => 'coach_access_end_date')); $form->addRule(array('coach_access_start_date', 'coach_access_end_date'), get_lang('StartDateMustBeBeforeTheEndDate'), 'compare_datetime_text', '< allow_empty'); $form->addElement('html', '</div>'); $form->addCheckBox('send_subscription_notification', [get_lang('SendSubscriptionNotification'), get_lang('SendAnEmailWhenAUserBeingSubscribed')]); // Extra fields $extra_field = new ExtraField('session'); $extra = $extra_field->addElements($form, $sessionId); $form->addElement('html', '</div>'); $js = $extra['jquery_ready_content']; return ['js' => $js]; }
function search_users($needle, $type) { global $tbl_user, $tbl_session_rel_user, $id_session; $xajax_response = new XajaxResponse(); $return = ''; if (!empty($needle) && !empty($type)) { //normal behaviour if ($type == 'any_session' && $needle == 'false') { $type = 'multiple'; $needle = ''; } // xajax send utf8 datas... datas in db can be non-utf8 datas $charset = api_get_system_encoding(); $needle = Database::escape_string($needle); $needle = api_convert_encoding($needle, $charset, 'utf-8'); $order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname, username' : ' ORDER BY lastname, firstname, username'; $cond_user_id = ''; //Only for single & multiple if (in_array($type, array('single', 'multiple'))) { if (!empty($id_session)) { $id_session = intval($id_session); // check id_user from session_rel_user table $sql = 'SELECT id_user FROM ' . $tbl_session_rel_user . ' WHERE id_session ="' . $id_session . '" AND relation_type<>' . SESSION_RELATION_TYPE_RRHH . ' '; $res = Database::query($sql); $user_ids = array(); if (Database::num_rows($res) > 0) { while ($row = Database::fetch_row($res)) { $user_ids[] = (int) $row[0]; } } if (count($user_ids) > 0) { $cond_user_id = ' AND user.user_id NOT IN(' . implode(",", $user_ids) . ')'; } } } switch ($type) { case 'single': // search users where username or firstname or lastname begins likes $needle $sql = 'SELECT user.user_id, username, lastname, firstname, official_code FROM ' . $tbl_user . ' user WHERE (username LIKE "' . $needle . '%" OR firstname LIKE "' . $needle . '%" OR lastname LIKE "' . $needle . '%") AND user.status<>6 AND user.status<>' . DRH . '' . $order_clause . ' LIMIT 11'; break; case 'multiple': $sql = 'SELECT user.user_id, username, lastname, firstname, official_code FROM ' . $tbl_user . ' user WHERE ' . (api_sort_by_first_name() ? 'firstname' : 'lastname') . ' LIKE "' . $needle . '%" AND user.status<>' . DRH . ' AND user.status<>6 ' . $cond_user_id . $order_clause; break; case 'any_session': $sql = 'SELECT DISTINCT user.user_id, username, lastname, firstname, official_code FROM ' . $tbl_user . ' user LEFT OUTER JOIN ' . $tbl_session_rel_user . ' s ON (s.id_user = user.user_id) WHERE s.id_user IS null AND user.status<>' . DRH . ' AND user.status<>6 ' . $cond_user_id . $order_clause; break; } if (api_is_multiple_url_enabled()) { $tbl_user_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); $access_url_id = api_get_current_access_url_id(); if ($access_url_id != -1) { switch ($type) { case 'single': $sql = 'SELECT user.user_id, username, lastname, firstname, official_code FROM ' . $tbl_user . ' user INNER JOIN ' . $tbl_user_rel_access_url . ' url_user ON (url_user.user_id=user.user_id) WHERE access_url_id = ' . $access_url_id . ' AND (username LIKE "' . $needle . '%" OR firstname LIKE "' . $needle . '%" OR lastname LIKE "' . $needle . '%") AND user.status<>6 AND user.status<>' . DRH . ' ' . $order_clause . ' LIMIT 11'; break; case 'multiple': $sql = 'SELECT user.user_id, username, lastname, firstname , official_code FROM ' . $tbl_user . ' user INNER JOIN ' . $tbl_user_rel_access_url . ' url_user ON (url_user.user_id=user.user_id) WHERE access_url_id = ' . $access_url_id . ' AND ' . (api_sort_by_first_name() ? 'firstname' : 'lastname') . ' LIKE "' . $needle . '%" AND user.status<>' . DRH . ' AND user.status<>6 ' . $cond_user_id . $order_clause; break; case 'any_session': $sql = 'SELECT DISTINCT user.user_id, username, lastname, firstname, official_code FROM ' . $tbl_user . ' user LEFT OUTER JOIN ' . $tbl_session_rel_user . ' s ON (s.id_user = user.user_id) INNER JOIN ' . $tbl_user_rel_access_url . ' url_user ON (url_user.user_id=user.user_id) WHERE access_url_id = ' . $access_url_id . ' AND s.id_user IS null AND user.status<>' . DRH . ' AND user.status<>6 ' . $cond_user_id . $order_clause; break; } } } $rs = Database::query($sql); $i = 0; if ($type == 'single') { while ($user = Database::fetch_array($rs)) { $i++; if ($i <= 10) { $person_name = api_get_person_name($user['firstname'], $user['lastname']) . ' (' . $user['username'] . ') ' . $user['official_code']; $return .= '<a href="javascript: void(0);" onclick="javascript: add_user_to_session(\'' . $user['user_id'] . '\',\'' . $person_name . ' ' . '\')">' . $person_name . ' </a><br />'; } else { $return .= '...<br />'; } } $xajax_response->addAssign('ajax_list_users_single', 'innerHTML', api_utf8_encode($return)); } else { global $nosessionUsersList; $return .= '<select id="origin_users" name="nosessionUsersList[]" multiple="multiple" size="15" style="width:360px;">'; while ($user = Database::fetch_array($rs)) { $person_name = api_get_person_name($user['firstname'], $user['lastname']) . ' (' . $user['username'] . ') ' . $user['official_code']; $return .= '<option value="' . $user['user_id'] . '">' . $person_name . ' </option>'; } $return .= '</select>'; $xajax_response->addAssign('ajax_list_users_multiple', 'innerHTML', api_utf8_encode($return)); } } return $xajax_response; }
$form->addElement('hidden', 'id_session', api_get_session_id()); $form->addButtonSend(get_lang('SendNotification')); $extra_field_select = TrackingCourseLog::display_additional_profile_fields(); if (!empty($extra_field_select)) { $html .= $extra_field_select; } $html .= $form->return_form(); if ($export_csv) { $csv_content = array(); //override the SortableTable "per page" limit if CSV $_GET['users_tracking_per_page'] = 1000000; } $all_datas = array(); $course_code = $_course['id']; $user_ids = array_keys($a_students); $table = new SortableTable('users_tracking', array('TrackingCourseLog', 'get_number_of_users'), array('TrackingCourseLog', 'get_user_data'), (api_is_western_name_order() xor api_sort_by_first_name()) ? 3 : 2); $parameters['cidReq'] = Security::remove_XSS($_GET['cidReq']); $parameters['id_session'] = $session_id; $parameters['from'] = isset($_GET['myspace']) ? Security::remove_XSS($_GET['myspace']) : null; $table->set_additional_parameters($parameters); $headers = array(); // tab of header texts $table->set_header(0, get_lang('OfficialCode'), true); $headers['official_code'] = get_lang('OfficialCode'); if ($is_western_name_order) { $table->set_header(1, get_lang('FirstName'), true); $headers['firstname'] = get_lang('FirstName'); $table->set_header(2, get_lang('LastName'), true); $headers['lastname'] = get_lang('LastName'); } else { $table->set_header(1, get_lang('LastName'), true);
/** * Get users by session * @param int $id session id * @param int $status filter by status coach = 2 * @return array a list with an user list */ public static function get_users_by_session($id, $status = null) { if (empty($id)) { return array(); } $id = intval($id); $tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER); $table_access_url_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); $sql = "SELECT u.user_id, lastname, firstname, username, relation_type, access_url_id FROM $tbl_user u INNER JOIN $tbl_session_rel_user ON u.user_id = $tbl_session_rel_user.id_user AND $tbl_session_rel_user.id_session = $id LEFT OUTER JOIN $table_access_url_user uu ON (uu.user_id = u.user_id) "; $urlId = api_get_current_access_url_id(); if (isset($status) && $status != '') { $status = intval($status); $sql .= " WHERE relation_type = $status (access_url_id = $urlId OR access_url_id is null )"; } else { $sql .= " WHERE (access_url_id = $urlId OR access_url_id is null )"; } $sql .= " ORDER BY relation_type, "; $sql .= api_sort_by_first_name() ? ' firstname, lastname' : ' lastname, firstname'; $result = Database::query($sql); $return_array = array(); while ($row = Database::fetch_array($result, 'ASSOC')) { $return_array[] = $row; } return $return_array; }
$cidReset = true; require_once '../inc/global.inc.php'; $id_session = intval($_GET['id_session']); SessionManager::protect_session_edit($id_session); if (empty($id_session)) { api_not_allowed(true); } $course_info = api_get_course_info($_GET['course_code']); if (empty($course_info)) { api_not_allowed(true); } $course_code = $course_info['code']; $courseId = $course_info['real_id']; $page = isset($_GET['page']) ? intval($_GET['page']) : null; $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null; $default_sort = api_sort_by_first_name() ? 'firstname' : 'lastname'; $sort = isset($_GET['sort']) && in_array($_GET['sort'], array('lastname', 'firstname', 'username')) ? $_GET['sort'] : $default_sort; $idChecked = isset($_GET['idChecked']) && (is_array($_GET['idChecked']) ? $_GET['idChecked'] : (is_array($_POST['idChecked']) ? $_POST['idChecked'] : null)); $direction = isset($_GET['direction']) && in_array($_GET['direction'], array('desc', 'asc')) ? $_GET['direction'] : 'desc'; if (is_array($idChecked)) { $my_temp = array(); foreach ($idChecked as $id) { $my_temp[] = intval($id); // forcing the intval } $idChecked = $my_temp; } $session_info = SessionManager::fetch($id_session); $courses = SessionManager::get_course_list_by_session_id($id_session); if (!isset($courses[$course_info['real_id']])) { header('Location: session_course_list.php?id_session=' . $id_session);
/** * returns users within a course given by param * @param string $courseCode */ public static function get_users_in_course($courseCode) { $tbl_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); $tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_user = Database::get_main_table(TABLE_MAIN_USER); $order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname ASC' : ' ORDER BY lastname, firstname ASC'; $current_session = api_get_session_id(); $courseCode = Database::escape_string($courseCode); $courseInfo = api_get_course_info($courseCode); $courseId = $courseInfo['real_id']; if (!empty($current_session)) { $sql = "SELECT user.user_id, user.username, lastname, firstname, official_code\n FROM {$tbl_session_course_user} as scru, {$tbl_user} as user\n WHERE\n scru.user_id = user.user_id AND\n scru.status=0 AND\n scru.c_id='{$courseId}' AND\n session_id ='{$current_session}'\n {$order_clause}\n "; } else { $sql = 'SELECT user.user_id, user.username, lastname, firstname, official_code FROM ' . $tbl_course_user . ' as course_rel_user, ' . $tbl_user . ' as user WHERE course_rel_user.user_id=user.user_id AND course_rel_user.status=' . STUDENT . ' AND course_rel_user.c_id = "' . $courseId . '" ' . $order_clause; } $result = Database::query($sql); return self::get_user_array_from_sql_result($result); }
$tutor_info .= '<li>'; $tutor_info .= Display::url($userInfo['complete_name'], $userInfo['profile_url']); $tutor_info .= '</li>'; } $tutor_info .= '</ul>'; } echo Display::page_subheader(get_lang('GroupTutors')); if (!empty($tutor_info)) { echo $tutor_info; } echo '<br />'; /* * List all the members of the current group */ echo Display::page_subheader(get_lang('GroupMembers')); $table = new SortableTable('group_users', 'get_number_of_group_users', 'get_group_user_data', (api_is_western_name_order() xor api_sort_by_first_name()) ? 2 : 1); $my_cidreq = isset($_GET['cidReq']) ? Security::remove_XSS($_GET['cidReq']) : ''; $my_origin = isset($_GET['origin']) ? Security::remove_XSS($_GET['origin']) : ''; $my_gidreq = isset($_GET['gidReq']) ? Security::remove_XSS($_GET['gidReq']) : ''; $parameters = array('cidReq' => $my_cidreq, 'origin' => $my_origin, 'gidReq' => $my_gidreq); $table->set_additional_parameters($parameters); $table->set_header(0, ''); if (api_is_western_name_order()) { $table->set_header(1, get_lang('FirstName')); $table->set_header(2, get_lang('LastName')); } else { $table->set_header(1, get_lang('LastName')); $table->set_header(2, get_lang('FirstName')); } if (api_get_setting('display.show_email_addresses') == 'true') { $table->set_header(3, get_lang('Email'));
/** * @author Patrick Cool <*****@*****.**>, Ghent University * Get all subscribed tutors of a group * @param int $group_id * @return array An array with information of all users from the given group. * (user_id, firstname, lastname, email) */ public static function get_subscribed_tutors($group_id, $id_only = false) { $table_user = Database::get_main_table(TABLE_MAIN_USER); $table_group_tutor = Database::get_course_table(TABLE_GROUP_TUTOR); $order_clause = api_sort_by_first_name() ? ' ORDER BY u.firstname, u.lastname' : ' ORDER BY u.lastname, u.firstname'; $group_id = Database::escape_string($group_id); $course_id = api_get_course_int_id(); $sql = "SELECT tg.id, u.user_id, u.lastname, u.firstname, u.email\n FROM " . $table_user . " u, " . $table_group_tutor . " tg\n WHERE tg.c_id = {$course_id} AND\n tg.group_id='" . $group_id . "' AND\n tg.user_id=u.user_id" . $order_clause; $db_result = Database::query($sql); $users = array(); while ($user = Database::fetch_object($db_result)) { if (!$id_only) { $member['user_id'] = $user->user_id; $member['firstname'] = $user->firstname; $member['lastname'] = $user->lastname; $member['email'] = $user->email; $users[] = $member; } else { $users[] = $user->user_id; } } return $users; }
Display::display_header(get_lang('ComposeMessage')); $message = $plugin->get_lang('PleaseBeforeRegisterATicketSelectOneUser'); Display::display_warning_message($message); echo ' <div class="actions"> <span style="float: right;"> </span> <form id="search_simple" name="search_simple" method="get" action="' . api_get_self() . '" class="form-search"> <fieldset> <span><label for="keyword">' . get_lang('SearchAUser') . ': </label><input type="text" name="keyword" size="25"></span> <span><button type="submit" name="submit" class="btn btn">' . get_lang('Search') . '</button></span> <div class="clear"></div> </fieldset> </form> </div>'; echo '<div class="users-list">'; $order = api_is_western_name_order() || api_sort_by_first_name() ? 3 : 2; $table = new SortableTable('users', 'get_number_of_users', 'get_user_data', $order, 10); $table->set_header(0, '', false, 'width="18px"'); $table->set_header(0, get_lang('Photo'), false); $table->set_header(1, get_lang('OfficialCode')); if (api_is_western_name_order()) { $table->set_header(2, get_lang('FirstName')); $table->set_header(3, get_lang('LastName')); } else { $table->set_header(2, get_lang('LastName')); $table->set_header(3, get_lang('FirstName')); } $table->set_header(4, get_lang('LoginName')); $table->set_header(5, get_lang('Email')); $table->set_header(6, get_lang('Action')); $table->display();
if ($export_csv) { $csv_content = array(); //override the SortableTable "per page" limit if CSV $_GET['users_tracking_per_page'] = 1000000; } $all_datas = array(); $course_code = $_course['id']; $user_ids = array_keys($a_students); $table = new SortableTable( 'users_tracking', array('TrackingCourseLog', 'get_number_of_users'), array('TrackingCourseLog', 'get_user_data'), (api_is_western_name_order() xor api_sort_by_first_name()) ? 3 : 2); $parameters['cidReq'] = Security::remove_XSS($_GET['cidReq']); $parameters['id_session'] = $session_id; $parameters['from'] = isset($_GET['myspace']) ? Security::remove_XSS($_GET['myspace']) : null; $table->set_additional_parameters($parameters); $tab_table_header = array(); // tab of header texts $table->set_header(0, get_lang('OfficialCode'), true); $tab_table_header[] = get_lang('OfficialCode'); if ($is_western_name_order) { $table->set_header(1, get_lang('FirstName'), true); $tab_table_header[] = get_lang('FirstName'); $table->set_header(2, get_lang('LastName'), true); $tab_table_header[] = get_lang('LastName');
/** * This function exports the table that we see in display_tracking_user_overview() * * @author Patrick Cool <*****@*****.**>, Ghent University, Belgium * @version Dokeos 1.8.6 * @since October 2008 */ public static function export_tracking_user_overview() { // database table definitions $tbl_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); $is_western_name_order = api_is_western_name_order(PERSON_NAME_DATA_EXPORT); $sort_by_first_name = api_sort_by_first_name(); // the values of the sortable table if ($_GET['tracking_user_overview_page_nr']) { $from = $_GET['tracking_user_overview_page_nr']; } else { $from = 0; } if ($_GET['tracking_user_overview_column']) { $orderby = $_GET['tracking_user_overview_column']; } else { $orderby = 0; } if ($is_western_name_order != api_is_western_name_order() && ($orderby == 1 || $orderby == 2)) { // Swapping the sorting column if name order for export is different than the common name order. $orderby = 3 - $orderby; } if ($_GET['tracking_user_overview_direction']) { $direction = $_GET['tracking_user_overview_direction']; } else { $direction = 'ASC'; } $user_data = MySpace::get_user_data_tracking_overview($from, 1000, $orderby, $direction); // the first line of the csv file with the column headers $csv_row = array(); $csv_row[] = get_lang('OfficialCode'); if ($is_western_name_order) { $csv_row[] = get_lang('FirstName', ''); $csv_row[] = get_lang('LastName', ''); } else { $csv_row[] = get_lang('LastName', ''); $csv_row[] = get_lang('FirstName', ''); } $csv_row[] = get_lang('LoginName'); $csv_row[] = get_lang('CourseCode'); // the additional user defined fields (only those that were selected to be exported) $fields = UserManager::get_extra_fields(0, 50, 5, 'ASC'); if (is_array($_SESSION['additional_export_fields'])) { foreach ($_SESSION['additional_export_fields'] as $key => $extra_field_export) { $csv_row[] = $fields[$extra_field_export][3]; $field_names_to_be_exported[] = 'extra_' . $fields[$extra_field_export][1]; } } $csv_row[] = get_lang('AvgTimeSpentInTheCourse', ''); $csv_row[] = get_lang('AvgStudentsProgress', ''); $csv_row[] = get_lang('AvgCourseScore', ''); $csv_row[] = get_lang('AvgExercisesScore', ''); $csv_row[] = get_lang('AvgMessages', ''); $csv_row[] = get_lang('AvgAssignments', ''); $csv_row[] = get_lang('TotalExercisesScoreObtained', ''); $csv_row[] = get_lang('TotalExercisesScorePossible', ''); $csv_row[] = get_lang('TotalExercisesAnswered', ''); $csv_row[] = get_lang('TotalExercisesScorePercentage', ''); $csv_row[] = get_lang('FirstLogin', ''); $csv_row[] = get_lang('LatestLogin', ''); $csv_content[] = $csv_row; // the other lines (the data) foreach ($user_data as $key => $user) { // getting all the courses of the user $sql = "SELECT * FROM {$tbl_course_user}\n WHERE user_id = '" . intval($user[4]) . "' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . " "; $result = Database::query($sql); while ($row = Database::fetch_row($result)) { $courseInfo = api_get_course_info($row['course_code']); $courseId = $courseInfo['real_id']; $csv_row = array(); // user official code $csv_row[] = $user[0]; // user first|last name $csv_row[] = $user[1]; // user last|first name $csv_row[] = $user[2]; // user login name $csv_row[] = $user[3]; // course code $csv_row[] = $row[0]; // the additional defined user fields $extra_fields = MySpace::get_user_overview_export_extra_fields($user[4]); if (is_array($field_names_to_be_exported)) { foreach ($field_names_to_be_exported as $key => $extra_field_export) { $csv_row[] = $extra_fields[$extra_field_export]; } } // time spent in the course $csv_row[] = api_time_to_hms(Tracking::get_time_spent_on_the_course($user[4], $courseId)); // student progress in course $csv_row[] = round(Tracking::get_avg_student_progress($user[4], $row[0]), 2); // student score $csv_row[] = round(Tracking::get_avg_student_score($user[4], $row[0]), 2); // student tes score $csv_row[] = round(Tracking::get_avg_student_exercise_score($user[4], $row[0]), 2); // student messages $csv_row[] = Tracking::count_student_messages($user[4], $row[0]); // student assignments $csv_row[] = Tracking::count_student_assignments($user[4], $row[0]); // student exercises results $exercises_results = MySpace::exercises_results($user[4], $row[0]); $csv_row[] = $exercises_results['score_obtained']; $csv_row[] = $exercises_results['score_possible']; $csv_row[] = $exercises_results['questions_answered']; $csv_row[] = $exercises_results['percentage']; // first connection $csv_row[] = Tracking::get_first_connection_date_on_the_course($user[4], $courseId); // last connection $csv_row[] = strip_tags(Tracking::get_last_connection_date_on_the_course($user[4], $courseInfo)); $csv_content[] = $csv_row; } } Export::arrayToCsv($csv_content, 'reporting_user_overview'); exit; }
foreach ($array_intersect as $no_coach_user_id) { $rs2 = SessionManager::set_coach_to_course_session($no_coach_user_id, $id_session, $courseId, true); } header('Location: ' . Security::remove_XSS($_GET['page']) . '?id_session=' . $id_session); exit; } } else { $sql = "SELECT user_id\n\t FROM {$tbl_session_rel_course_rel_user}\n\t WHERE\n session_id = '{$id_session}' AND\n c_id = '" . $courseId . "' AND\n status = 2 "; $rs = Database::query($sql); if (Database::num_rows($rs) > 0) { while ($infos = Database::fetch_array($rs)) { $arr_infos[] = $infos['user_id']; } } } $order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname, username' : ' ORDER BY lastname, firstname, username'; if (api_is_multiple_url_enabled()) { $tbl_access_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); $access_url_id = api_get_current_access_url_id(); $sql = "SELECT u.user_id,lastname,firstname,username\n FROM {$tbl_user} u\n LEFT JOIN {$tbl_access_rel_user} a\n ON(u.user_id= a.user_id)\n WHERE\n status='1' AND\n active = 1 AND\n access_url_id = {$access_url_id} " . $order_clause; } else { $sql = "SELECT user_id,lastname,firstname,username\n FROM {$tbl_user}\n WHERE\n status = '1' AND\n active = 1 " . $order_clause; } $result = Database::query($sql); $coaches = Database::store_result($result); if (!api_is_platform_admin() && api_is_teacher()) { $userInfo = api_get_user_info(); $coaches = [$userInfo]; } Display::display_header($tool_name); $tool_name = get_lang('ModifySessionCourse');
foreach ($_POST['id'] as $indexstr) { $result = Result::load($indexstr); $result[0]->delete(); $number_of_deleted_results++; } header('Location: gradebook_view_result.php?massdelete=&selecteval=' . Security::remove_XSS($_GET['selecteval'])); exit; break; } } } // TODO - what if selecteval not set ? $addparams = array('selecteval' => $eval[0]->get_id()); if (isset($_GET['print'])) { $datagen = new ResultsDataGenerator($eval[0], $allresults); if (api_sort_by_first_name()) { $data_array = $datagen->get_data(ResultsDataGenerator::RDG_SORT_FIRSTNAME, 0, null, true); } else { $data_array = $datagen->get_data(ResultsDataGenerator::RDG_SORT_LASTNAME, 0, null, true); } if ($displayscore->is_custom()) { if (api_is_western_name_order()) { $header_names = array(get_lang('FirstName'), get_lang('LastName'), get_lang('Score'), get_lang('Display')); } else { $header_names = array(get_lang('LastName'), get_lang('FirstName'), get_lang('Score'), get_lang('Display')); } } else { if (api_is_western_name_order()) { $header_names = array(get_lang('FirstName'), get_lang('LastName'), get_lang('Score')); } else { $header_names = array(get_lang('LastName'), get_lang('FirstName'), get_lang('Score'));
if (is_array($final_result) && count($final_result) > 0) { $where_filter = " AND u.user_id IN ('" . implode("','", $final_result) . "') "; } else { //no results $where_filter = " AND u.user_id = -1"; } } else { if (is_array($final_result) && count($final_result) > 0) { $where_filter = " AND user_id IN ('" . implode("','", $final_result) . "') "; } else { //no results $where_filter = " AND user_id = -1"; } } } $target_name = api_sort_by_first_name() ? 'firstname' : 'lastname'; $orderBy = $target_name; $showOfficialCode = false; global $_configuration; if (isset($_configuration['order_user_list_by_official_code']) && $_configuration['order_user_list_by_official_code']) { $showOfficialCode = true; $orderBy = " official_code, firstname, lastname"; } $sql = "SELECT user_id, lastname, firstname, username, official_code\n FROM {$tbl_user}\n WHERE user_id<>2 AND " . $target_name . " LIKE '" . $first_letter_user . "%' {$where_filter}\n ORDER BY " . (count($users) > 0 ? "(user_id IN(" . implode(',', $users) . ")) DESC," : "") . " " . $orderBy; if (api_is_multiple_url_enabled()) { $tbl_user_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); $access_url_id = api_get_current_access_url_id(); if ($access_url_id != -1) { $sql = "SELECT u.user_id,lastname,firstname,username, official_code\n FROM " . $tbl_user . " u\n INNER JOIN {$tbl_user_rel_access_url} user_rel_url\n ON (user_rel_url.user_id = u.user_id)\n WHERE\n u.user_id<>2 AND\n access_url_id = {$access_url_id} AND\n (" . $target_name . " LIKE '" . $first_letter_user . "%' )\n {$where_filter}\n ORDER BY " . (count($users) > 0 ? "(u.user_id IN(" . implode(',', $users) . ")) DESC," : "") . " " . $orderBy; } }
</a> '; $users[] = array($photo, $user[1], $user[2], $user[3], $user[4], $user[5], $button); } return $users; } Display::display_header('Reports'); echo '<div class="actions"> <form action="' . api_get_self() . '" method="get" name="search_simple" id="search_simple"> <input name="user_id_request" id="user_id_request" type="hidden" value=""> <span><label for="keyword">Búsqueda del usuario: </label><input size="25" name="keyword" type="text" id="keyword"></span> <span><button class="search" name="submit" type="submit">Buscar</button></span> <div class="clear"> </div> </form></div>'; if (isset($_GET['keyword'])) { $table = new SortableTable('users', 'get_number_of_users', 'get_user_data', (api_is_western_name_order() || api_sort_by_first_name()) ? 3 : 2); $table->set_header(0, '', false, 'width="18px"'); $table->set_header(0, get_lang('Photo'), false); $table->set_header(1, get_lang('OfficialCode')); if (api_is_western_name_order()) { $table->set_header(2, get_lang('FirstName')); $table->set_header(3, get_lang('LastName')); } else { $table->set_header(2, get_lang('LastName')); $table->set_header(3, get_lang('FirstName')); } $table->set_header(4, get_lang('LoginName')); $table->set_header(5, get_lang('Email')); $table->set_header(6, get_lang('Action')); $table->display(); }