';
$sql = "SELECT access_tool, COUNT(DISTINCT access_user_id),count( access_tool ) as count_access_tool
FROM $TABLETRACK_ACCESS
WHERE access_tool IS NOT NULL
AND access_cours_code = '$_cid'
GROUP BY access_tool
ORDER BY count_access_tool DESC
LIMIT 0, 3";
$rs = Database::query($sql, __FILE__, __LINE__);
if ($export_csv) {
$temp = array(get_lang('ToolsMostUsed'), '');
$csv_content[] = $temp;
}
while ($row = Database::fetch_array($rs)) {
echo '
';
$table = new SortableTable('resources', 'count_item_resources', 'get_item_resources_data', 5, 20, 'DESC');
$parameters = array();
if (isset($_GET['keyword'])) {
$parameters['keyword'] = Security::remove_XSS($_GET['keyword']);
}
$parameters['studentlist'] = 'resources';
$table->set_additional_parameters($parameters);
$table->set_header(0, get_lang('Tool'));
$table->set_header(1, get_lang('EventType'));
$table->set_header(2, get_lang('Session'), false);
$table->set_header(3, get_lang('UserName'));
$table->set_header(4, get_lang('Document'), false);
$table->set_header(5, get_lang('Date'));
$table->display();
}
?>
, Ghent University, Belgium
* @since October 2009
* @version 1.8.7
*/
function display_additional_profile_fields() {
// getting all the extra profile fields that are defined by the platform administrator
$extra_fields = UserManager :: get_extra_fields(0,50,5,'ASC');
// creating the form
$return = '';
return $return;
}
/**
* This function gets all the information of a certrain ($field_id) additional profile field.
* It gets the information of all the users so that it can be displayed in the sortable table or in the csv or xls export
*
* @author Patrick Cool , Ghent University, Belgium
* @since October 2009
* @version 1.8.7
*/
function get_addtional_profile_information_of_field($field_id){
// Database table definition
$table_user = Database::get_main_table(TABLE_MAIN_USER);
$table_user_field_values = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES);
$sql = "SELECT user.user_id, field.field_value FROM $table_user user, $table_user_field_values field
WHERE user.user_id = field.user_id
AND field.field_id='".intval($field_id)."'";
$result = api_sql_query($sql,__FILE__,__LINE__);
while($row = Database::fetch_array($result))
{
$return[$row['user_id']][] = $row['field_value'];
}
return $return;
}
/**
* This function gets all the information of a certrain ($field_id) additional profile field for a specific list of users is more efficent than get_addtional_profile_information_of_field() function
* It gets the information of all the users so that it can be displayed in the sortable table or in the csv or xls export
*
* @author Julio Montoya
* @param int field id
* @param array list of user ids
* @return array
* @since Nov 2009
* @version 1.8.6.2
*/
function get_addtional_profile_information_of_field_by_user($field_id, $users) {
// Database table definition
$table_user = Database::get_main_table(TABLE_MAIN_USER);
$table_user_field_values = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES);
$result_extra_field = UserManager::get_extra_field_information($field_id);
if (!empty($users)) {
if ($result_extra_field['field_type'] == USER_FIELD_TYPE_TAG ) {
foreach($users as $user_id) {
$user_result = UserManager::get_user_tags($user_id, $field_id);
$tag_list = array();
foreach($user_result as $item) {
$tag_list[] = $item['tag'];
}
$return[$user_id][] = implode(', ',$tag_list);
}
} else {
$new_user_array = array();
foreach($users as $user_id) {
$new_user_array[]= "'".$user_id."'";
}
$users = implode(',',$new_user_array);
//selecting only the necessary information NOT ALL the user list
$sql = "SELECT user.user_id, field.field_value FROM $table_user user INNER JOIN $table_user_field_values field
ON (user.user_id = field.user_id)
WHERE field.field_id=".intval($field_id)." AND user.user_id IN ($users)";
$result = api_sql_query($sql,__FILE__,__LINE__);
while($row = Database::fetch_array($result)) {
// get option value for field type double select by id
if (!empty($row['field_value'])) {
if ($result_extra_field['field_type'] == USER_FIELD_TYPE_DOUBLE_SELECT) {
$id_double_select = explode(';',$row['field_value']);
if (is_array($id_double_select)) {
$value1 = $result_extra_field['options'][$id_double_select[0]]['option_value'];
$value2 = $result_extra_field['options'][$id_double_select[1]]['option_value'];
$row['field_value'] = ($value1.';'.$value2);
}
}
}
// get other value from extra field
$return[$row['user_id']][] = $row['field_value'];
}
}
}
return $return;
}
/**
* count the number of students in this course (used for SortableTable)
*/
function count_student_in_course() {
global $nbStudents;
return $nbStudents;
}
function sort_users($a, $b) {
return strcmp(trim(api_strtolower($a[$_SESSION['tracking_column']])), trim(api_strtolower($b[$_SESSION['tracking_column']])));
}
function sort_users_desc($a, $b) {
return strcmp( trim(api_strtolower($b[$_SESSION['tracking_column']])), trim(api_strtolower($a[$_SESSION['tracking_column']])));
}
/**
* Get number of users for sortable with pagination
* @return int
*/
function get_number_of_users() {
global $user_ids;
return count($user_ids);
}
/**
* Get data for users list in sortable with pagination
* @return array
*/
function get_user_data($from, $number_of_items, $column, $direction) {
global $user_ids, $course_code, $additional_user_profile_info, $export_csv, $is_western_name_order, $csv_content;
$course_code = Database::escape_string($course_code);
$course_info = CourseManager :: get_course_information($course_code);
$tbl_track_cours_access = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
$tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
$tbl_item_property = Database :: get_course_table(TABLE_ITEM_PROPERTY, $course_info['db_name']);
$tbl_forum_post = Database :: get_course_table(TABLE_FORUM_POST, $course_info['db_name']);
$tbl_course_lp_view = Database :: get_course_table(TABLE_LP_VIEW, $course_info['db_name']);
$tbl_course_lp = Database :: get_course_table(TABLE_LP_MAIN, $course_info['db_name']);
// get all users data from a course for sortable with limit
$condition_user = "";
if (is_array($user_ids)) {
$condition_user = " WHERE user.user_id IN (".implode(',',$user_ids).") ";
} else {
$condition_user = " WHERE user.user_id = '$user_ids' ";
}
$sql = "SELECT user.user_id as col0,
user.official_code as col1,
user.lastname as col2,
user.firstname as col3
FROM $tbl_user as user
$condition_user ";
if (!in_array($direction, array('ASC','DESC'))) {
$direction = 'ASC';
}
$column = intval($column);
$from = intval($from);
$number_of_items = intval($number_of_items);
$sql .= " ORDER BY col$column $direction ";
$sql .= " LIMIT $from,$number_of_items";
$res = Database::query($sql, __FILE__, __LINE__);
$users = array ();
$t = time();
$row = array();
while ($user = Database::fetch_row($res)) {
$row[0] = $user[1];
if ($is_western_name_order) {
$row[1] = $user[3];
$row[2] = $user[2];
} else {
$row[1] = $user[2];
$row[2] = $user[3];
}
$row[3] = api_time_to_hms(Tracking::get_time_spent_on_the_course($user[0], $course_code));
$avg_student_score = Tracking::get_average_test_scorm_and_lp($user[0], $course_code);
$avg_student_progress = Tracking::get_avg_student_progress($user[0], $course_code);
if (empty($avg_student_score)) {$avg_student_score=0;}
if (empty($avg_student_progress)) {$avg_student_progress=0;}
$row[4] = $avg_student_progress.'%';
$row[5] = $avg_student_score.'%';
$row[6] = Tracking::count_student_assignments($user[0], $course_code);$user[4];
$row[7] = Tracking::count_student_messages($user[0], $course_code);//$user[5];
$row[8] = Tracking::get_first_connection_date_on_the_course($user[0], $course_code);
$row[9] = Tracking::get_last_connection_date_on_the_course($user[0], $course_code);
// we need to display an additional profile field
if (isset($_GET['additional_profile_field']) AND is_numeric($_GET['additional_profile_field'])) {
if (is_array($additional_user_profile_info[$user[0]])) {
$row[10]=implode(', ', $additional_user_profile_info[$user[0]]);
} else {
$row[10]=' ';
}
}
$row[11] = '
';
if ($export_csv) {
$row[8] = strip_tags($row[8]);
$row[9] = strip_tags($row[9]);
unset($row[10]);
unset($row[11]);
$csv_content[] = $row;
}
// store columns in array $users
$users[] = array($row[0],$row[1],$row[2],$row[3],$row[4],$row[5],$row[6],$row[7],$row[8],$row[9],$row[10],$row[11]);
}
return $users;
}