Ejemplo n.º 1
0
 /**
  * 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;
}
Ejemplo n.º 4
0
/**
 * 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']);
            }
        }
    }
}
Ejemplo n.º 5
0
/**
* 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;
 }
Ejemplo n.º 7
0
/**
 * 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']);
            }
        }
    }
}
Ejemplo n.º 8
0
/**
 * 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']);
            }
        }
    }
}
Ejemplo n.º 9
0
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);
}
Ejemplo n.º 11
0
$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');
 }
Ejemplo n.º 14
0
 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;
 }
Ejemplo n.º 15
0
 /**
  * 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;
 }
Ejemplo n.º 16
0
 /**
  * @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];
 }
Ejemplo n.º 17
0
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;
}
Ejemplo n.º 18
0
 $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);
Ejemplo n.º 19
0
    /**
     * 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);
Ejemplo n.º 21
0
 /**
  * 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);
 }
Ejemplo n.º 22
0
        $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'));
Ejemplo n.º 23
0
 /**
  * @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;
 }
Ejemplo n.º 24
0
 Display::display_header(get_lang('ComposeMessage'));
 $message = $plugin->get_lang('PleaseBeforeRegisterATicketSelectOneUser');
 Display::display_warning_message($message);
 echo '
     <div class="actions">
       <span style="float: right;">&nbsp;</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') . ': &nbsp;</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();
Ejemplo n.º 25
0
    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');
Ejemplo n.º 26
0
 /**
  * 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;
 }
Ejemplo n.º 27
0
        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');
Ejemplo n.º 28
0
                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;
    }
}
Ejemplo n.º 30
0
					</a>&nbsp;&nbsp;';
        $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&uacute;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">&nbsp;</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();
}