/**
  * @param int    $courseId
  * @param int    $sessionId
  * @param string $filePath
  */
 public function warnUsersByEmail($courseId, $sessionId, $filePath = null)
 {
     $courseInfo = api_get_course_info_by_id($courseId);
     $courseCode = $courseInfo['code'];
     if (empty($sessionId)) {
         $students = CourseManager::get_student_list_from_course_code($courseCode, false);
     } else {
         $students = CourseManager::get_student_list_from_course_code($courseCode, true, $sessionId);
     }
     $url = api_get_course_url($courseCode, $sessionId);
     $url = Display::url($url, $url);
     $subject = $this->get_lang("AgreementUpdated");
     $message = sprintf($this->get_lang("AgreementWasUpdatedClickHere"), $url);
     $dataFile = array();
     if (!empty($filePath)) {
         $dataFile = array('path' => $filePath, 'filename' => basename($filePath));
         $message = sprintf($this->get_lang("AgreementWasUpdatedClickHere"), $url) . " \n";
         $message .= $this->get_lang("TheAgreementIsAttachedInThisEmail");
     }
     if (!empty($students)) {
         foreach ($students as $student) {
             $userInfo = api_get_user_info($student['user_id']);
             api_mail_html($userInfo['complete_name'], $userInfo['email'], $subject, $message, null, null, null, $dataFile);
             //MessageManager::send_message_simple($student['user_id'], $subject, $message);
         }
     }
 }
Beispiel #2
0
                 $title = ucwords(strtolower(trim($exercises[$cnt - 4]['title'])));
             }
             $columns[] = 'exer' . $i;
             $column_names[] = $title;
             $i++;
             break;
     }
 }
 $quizIds = array();
 if (!empty($exercises)) {
     foreach ($exercises as $exercise) {
         $quizIds[] = $exercise['id'];
     }
 }
 $course = api_get_course_info_by_id($_GET['course_id']);
 $listUserSess = CourseManager::get_student_list_from_course_code($course['code'], true, $_GET['session_id']);
 $usersId = array_keys($listUserSess);
 $users = UserManager::get_user_list_by_ids($usersId, null, "lastname, firstname", "{$start} , {$limit}");
 $exeResults = $objExercise->getExerciseAndResult($_GET['course_id'], $_GET['session_id'], $quizIds);
 $arrGrade = array();
 foreach ($exeResults as $exeResult) {
     $arrGrade[$exeResult['exe_user_id']][$exeResult['exe_exo_id']] = $exeResult['exe_result'];
 }
 $result = array();
 $i = 0;
 foreach ($users as $user) {
     $sessionInfo = SessionManager::fetch($listUserSess[$user['user_id']]['id_session']);
     $result[$i]['session'] = $sessionInfo['name'];
     $result[$i]['username'] = $user['username'];
     $result[$i]['name'] = $user['lastname'] . " " . $user['firstname'];
     $j = 1;
Beispiel #3
0
$nameTools = get_lang('Tracking');

// Display the header.
Display::display_header($nameTools, 'Tracking');

// getting all the students of the course
if (empty($session_id)) {
    // Registered students in a course outside session.
    $a_students = CourseManager::get_student_list_from_course_code(
        api_get_course_id()
    );
} else {
    // Registered students in session.
    $a_students = CourseManager::get_student_list_from_course_code(
        api_get_course_id(),
        true,
        $sessionId
    );
}

$nbStudents = count($a_students);
$extra_info = array();

// Getting all the additional information of an additional profile field.
if (isset($_GET['additional_profile_field']) &&
    is_numeric($_GET['additional_profile_field'])
) {
    $user_array = array();
    foreach ($a_students as $key => $item) {
        $user_array[] = $key;
    }
Beispiel #4
0
    $html_result .= '<tr><th>' . get_lang('Quiz') . '</th>';
    $html_result .= '<th>' . get_lang('User') . '</th>';
    //$html_result .= '<th>'.sprintf(get_lang('ExamPassX'), $filter_score).'</th>';
    $html_result .= '<th>' . get_lang('Percentage') . ' %</th>';
    $html_result .= '<th>' . get_lang('Status') . '</th>';
    $html_result .= '<th>' . get_lang('Attempts') . '</th>';
    $html_result .= '</tr>';
}
$table = Database::get_course_table(TABLE_TOOL_LIST);
$t_quiz = Database::get_course_table(TABLE_QUIZ_TEST);
$export_array_global = $export_array = array();
if (!empty($course_list) && is_array($course_list)) {
    foreach ($course_list as $current_course) {
        $global_row = $row_not_global = array();
        $course_id = $current_course['real_id'];
        $a_students = CourseManager::get_student_list_from_course_code($course_id, false);
        $total_students = count($a_students);
        $sqlExercices = "SELECT count(id) as count FROM " . $t_quiz . " AS quiz WHERE active='1' AND c_id = {$course_id} ";
        $resultExercices = Database::query($sqlExercices);
        $data_exercises = Database::store_result($resultExercices);
        $exercise_count = $data_exercises[0]['count'];
        if ($global) {
            if ($exercise_count == 0) {
                $exercise_count = 2;
            }
            $html_result .= "<tr class='{$s_css_class}'>\n                                <td rowspan={$exercise_count}>";
            $html_result .= $current_course['title'];
            $html_result .= "</td>";
        }
        $sql = "SELECT visibility FROM {$table} WHERE c_id = {$course_id} AND name='quiz'";
        $resultVisibilityQuizz = Database::query($sql);
Beispiel #5
0
 /**
  * Displays the form to register users in a blog (in a course)
  * The listed users are users subcribed in the course.
  * @author Toon Keppens
  *
  * @param Integer $blog_id
  *
  * @return Html Form with sortable table with users to subcribe in a blog, in a course.
  */
 public static function display_form_user_subscribe($blog_id)
 {
     $_course = api_get_course_info();
     $is_western_name_order = api_is_western_name_order();
     $session_id = api_get_session_id();
     $course_id = $_course['real_id'];
     $currentCourse = $_course['code'];
     $tbl_users = Database::get_main_table(TABLE_MAIN_USER);
     $tbl_blogs_rel_user = Database::get_course_table(TABLE_BLOGS_REL_USER);
     echo '<legend>' . get_lang('SubscribeMembers') . '</legend>';
     $properties["width"] = "100%";
     // Get blog members' id.
     $sql = "SELECT user.user_id FROM {$tbl_users} user\n\t\t\t\tINNER JOIN {$tbl_blogs_rel_user} blogs_rel_user\n\t\t\t\tON user.user_id = blogs_rel_user.user_id\n\t\t\t\tWHERE blogs_rel_user.c_id = {$course_id} AND blogs_rel_user.blog_id = '" . intval($blog_id) . "'";
     $result = Database::query($sql);
     $blog_member_ids = array();
     while ($user = Database::fetch_array($result)) {
         $blog_member_ids[] = $user['user_id'];
     }
     // Set table headers
     $column_header[] = array('', false, '');
     if ($is_western_name_order) {
         $column_header[] = array(get_lang('FirstName'), true, '');
         $column_header[] = array(get_lang('LastName'), true, '');
     } else {
         $column_header[] = array(get_lang('LastName'), true, '');
         $column_header[] = array(get_lang('FirstName'), true, '');
     }
     $column_header[] = array(get_lang('Email'), false, '');
     $column_header[] = array(get_lang('Register'), false, '');
     $student_list = CourseManager::get_student_list_from_course_code($currentCourse, false, $session_id);
     $user_data = array();
     // Add users that are not in this blog to the list.
     foreach ($student_list as $key => $user) {
         if (isset($user['id_user'])) {
             $user['user_id'] = $user['id_user'];
         }
         if (!in_array($user['user_id'], $blog_member_ids)) {
             $a_infosUser = api_get_user_info($user['user_id']);
             $row = array();
             $row[] = '<input type="checkbox" name="user[]" value="' . $a_infosUser['user_id'] . '" ' . (isset($_GET['selectall']) && $_GET['selectall'] == "subscribe" ? ' checked="checked" ' : '') . '/>';
             $username = api_htmlentities(sprintf(get_lang('LoginX'), $a_infosUser["username"]), ENT_QUOTES);
             if ($is_western_name_order) {
                 $row[] = $a_infosUser["firstname"];
                 $row[] = Display::tag('span', $a_infosUser["lastname"], array('title' => $username));
             } else {
                 $row[] = Display::tag('span', $a_infosUser["lastname"], array('title' => $username));
                 $row[] = $a_infosUser["firstname"];
             }
             $row[] = Display::icon_mailto_link($a_infosUser["email"]);
             //Link to register users
             if ($a_infosUser["user_id"] != $_SESSION['_user']['user_id']) {
                 $row[] = "<a class=\"btn btn-primary \" href=\"" . api_get_self() . "?action=manage_members&blog_id={$blog_id}&register=yes&user_id=" . $a_infosUser["user_id"] . "\">" . get_lang('Register') . "</a>";
             } else {
                 $row[] = '';
             }
             $user_data[] = $row;
         }
     }
     // Display
     $query_vars['action'] = 'manage_members';
     $query_vars['blog_id'] = $blog_id;
     echo '<form method="post" action="blog.php?action=manage_members&blog_id=' . $blog_id . '">';
     Display::display_sortable_table($column_header, $user_data, null, null, $query_vars);
     $link = '';
     $link .= isset($_GET['action']) ? 'action=' . Security::remove_XSS($_GET['action']) . '&' : '';
     $link .= "blog_id={$blog_id}&";
     echo '<a href="blog.php?' . $link . 'selectall=subscribe">' . get_lang('SelectAll') . '</a> - ';
     echo '<a href="blog.php?' . $link . '">' . get_lang('UnSelectAll') . '</a> ';
     echo get_lang('WithSelected') . ' : ';
     echo '<select name="action">';
     echo '<option value="select_subscribe">' . get_lang('Register') . '</option>';
     echo '</select>';
     echo '<input type="hidden" name="register" value="true" />';
     echo '<button class="save" type="submit">' . get_lang('Ok') . '</button>';
     echo '</form>';
 }
Beispiel #6
0
require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
$this_section = SECTION_COURSES;
$exercise_id = isset($_GET['exerciseId']) && !empty($_GET['exerciseId']) ? intval($_GET['exerciseId']) : 0;
$gradebook = isset($gradebook) ? $gradebook : null;
$objExercise = new Exercise();
$result = $objExercise->read($exercise_id);
if (!$result) {
    api_not_allowed(true);
}
$sessionId = api_get_session_id();
$courseCode = api_get_course_id();
if (empty($sessionId)) {
    $students = CourseManager::get_student_list_from_course_code($courseCode, false);
} else {
    $students = CourseManager::get_student_list_from_course_code($courseCode, true, $sessionId);
}
$count_students = count($students);
$question_list = $objExercise->get_validated_question_list();
$data = array();
// Question title 	# of students who tool it 	Lowest score 	Average 	Highest score 	Maximum score
$headers = array(get_lang('Question'), get_lang('QuestionType'), get_lang('NumberStudentWhoSelectedIt'), get_lang('LowestScore'), get_lang('AverageScore'), get_lang('HighestScore'), get_lang('Weighting'));
if (!empty($question_list)) {
    foreach ($question_list as $question_id) {
        $question_obj = Question::read($question_id);
        $exercise_stats = get_student_stats_by_question($question_id, $exercise_id, $courseCode, $sessionId);
        $count_users = get_number_students_question_with_answer_count($question_id, $exercise_id, $courseCode, $sessionId);
        $data[$question_id]['name'] = cut($question_obj->question, 100);
        $data[$question_id]['type'] = $question_obj->get_question_type_name();
        $percentange = 0;
        if ($count_students) {
 /**
  * @param int $question_id
  * @param int $exercise_id
  * @param string $course_code
  * @param int $session_id
  * @param string $questionType
  * @return int
  */
 public static function get_number_students_question_with_answer_count($question_id, $exercise_id, $course_code, $session_id, $questionType = '')
 {
     $track_exercises = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES);
     $track_attempt = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
     $courseUser = Database::get_main_table(TABLE_MAIN_COURSE_USER);
     $courseTable = Database::get_main_table(TABLE_MAIN_COURSE);
     $courseUserSession = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
     $question_id = intval($question_id);
     $exercise_id = intval($exercise_id);
     $courseId = api_get_course_int_id($course_code);
     $session_id = intval($session_id);
     if ($questionType == FILL_IN_BLANKS) {
         $listStudentsId = array();
         $listAllStudentInfo = CourseManager::get_student_list_from_course_code(api_get_course_id(), true);
         foreach ($listAllStudentInfo as $i => $listStudentInfo) {
             $listStudentsId[] = $listStudentInfo['user_id'];
         }
         $listFillTheBlankResult = getFillTheBlankTabResult($exercise_id, $question_id, $listStudentsId, '1970-01-01', '3000-01-01');
         return getNbResultFillBlankAll($listFillTheBlankResult);
     }
     if (empty($session_id)) {
         $courseCondition = "\n            INNER JOIN {$courseUser} cu\n            ON cu.c_id = c.id AND cu.user_id  = exe_user_id";
         $courseConditionWhere = " AND relation_type <> 2 AND cu.status = " . STUDENT;
     } else {
         $courseCondition = "\n            INNER JOIN {$courseUserSession} cu\n            ON cu.c_id = c.id AND cu.user_id = exe_user_id";
         $courseConditionWhere = " AND cu.status = 0 ";
     }
     $sql = "SELECT DISTINCT exe_user_id\n    \t\tFROM {$track_exercises} e\n    \t\tINNER JOIN {$track_attempt} a\n    \t\tON (\n    \t\t    a.exe_id = e.exe_id AND\n    \t\t    e.c_id = a.c_id AND\n    \t\t    e.session_id  = a.session_id\n            )\n            INNER JOIN {$courseTable} c\n            ON (c.id = a.c_id)\n    \t\t{$courseCondition}\n    \t\tWHERE\n    \t\t    exe_exo_id = {$exercise_id} AND\n                a.c_id = {$courseId} AND\n                e.session_id = {$session_id} AND\n                question_id = {$question_id} AND\n                answer <> '0' AND\n                e.status = ''\n                {$courseConditionWhere}\n            ";
     $result = Database::query($sql);
     $return = 0;
     if ($result) {
         $return = Database::num_rows($result);
     }
     return $return;
 }
Beispiel #8
0
if (isset($_GET['origin']) && $_GET['origin'] == 'resume_session') {
    $interbreadcrumb[] = array('url' => '../session/index.php', 'name' => get_lang('PlatformAdmin'));
    $interbreadcrumb[] = array('url' => '../session/session_list.php', 'name' => get_lang('SessionList'));
    $interbreadcrumb[] = array('url' => '../session/resume_session.php?id_session=' . api_get_session_id(), 'name' => get_lang('SessionOverview'));
}
$view = isset($_REQUEST['view']) ? $_REQUEST['view'] : '';
$nameTools = get_lang('Tracking');
// Display the header.
Display::display_header($nameTools, 'Tracking');
// getting all the students of the course
if (empty($session_id)) {
    // Registered students in a course outside session.
    $a_students = CourseManager::get_student_list_from_course_code($course_info['real_id']);
} else {
    // Registered students in session.
    $a_students = CourseManager::get_student_list_from_course_code($course_info['real_id'], true, $session_id);
}
$nbStudents = count($a_students);
// Gettting all the additional information of an additional profile field.
if (isset($_GET['additional_profile_field']) && is_numeric($_GET['additional_profile_field'])) {
    $user_array = array();
    foreach ($a_students as $key => $item) {
        $user_array[] = $key;
    }
    // Fetching only the user that are loaded NOT ALL user in the portal.
    $additional_user_profile_info = TrackingCourseLog::get_addtional_profile_information_of_field_by_user($_GET['additional_profile_field'], $user_array);
    $extra_info = UserManager::get_extra_field_information($_GET['additional_profile_field']);
}
/* MAIN CODE */
echo '<div class="actions">';
echo Display::url(Display::return_icon('user_na.png', get_lang('StudentsTracking'), array(), 32), '#');
//$tbl_learnpath_chapter = Database::get_course_table(TABLE_LEARNPATH_CHAPTER);
$tbl_learnpath_main = Database::get_course_table(TABLE_LP_MAIN);
$tbl_learnpath_item = Database::get_course_table(TABLE_LP_ITEM);
$tbl_learnpath_view = Database::get_course_table(TABLE_LP_VIEW);
$tbl_learnpath_item_view = Database::get_course_table(TABLE_LP_ITEM_VIEW);
if (isset($_GET['origin']) && $_GET['origin'] == 'resume_session') {
    $interbreadcrumb[] = array('url' => '../admin/index.php', 'name' => get_lang('PlatformAdmin'));
    $interbreadcrumb[] = array('url' => '../admin/session_list.php', 'name' => get_lang('SessionList'));
    $interbreadcrumb[] = array('url' => '../admin/resume_session.php?id_session=' . $_SESSION['id_session'], 'name' => get_lang('SessionOverview'));
}
$view = isset($_REQUEST['view']) ? $_REQUEST['view'] : '';
$nameTools = get_lang('Tracking');
Display::display_header($nameTools, 'Tracking');
require api_get_path(LIBRARY_PATH) . 'statsUtils.lib.inc.php';
require '../resourcelinker/resourcelinker.inc.php';
$a_students = CourseManager::get_student_list_from_course_code($_course['id'], true, empty($_SESSION['id_session']) ? null : $_SESSION['id_session']);
$nbStudents = count($a_students);
/**
 * 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)
{
    $a = trim(api_strtolower($a[$_SESSION['tracking_column']]));
    $b = trim(api_strtolower($b[$_SESSION['tracking_column']]));
    if ($_SESSION['tracking_direction'] == 'DESC') {
        return strcmp($b, $a);
Beispiel #10
0
/**
 * Sends an email to the students of a course when a homework is created
 *
 * @param string course_id
 *
 * @author Guillaume Viguier <*****@*****.**>
 * @author Julio Montoya <*****@*****.**> Adding session support - 2011
 */
function send_email_on_homework_creation($course_id)
{
    // Get the students of the course
    $session_id = api_get_session_id();
    if (empty($session_id)) {
        $students = CourseManager::get_student_list_from_course_code($course_id);
    } else {
        $students = CourseManager::get_student_list_from_course_code($course_id, true, $session_id);
    }
    $emailsubject = '[' . api_get_setting('siteName') . '] '.get_lang('HomeworkCreated');
    $currentUser = api_get_user_info(api_get_user_id());
    if (!empty($students)) {
        foreach($students as $student) {
            $user_info = api_get_user_info($student["user_id"]);
            if(!empty($user_info["mail"])) {
                $name_user = api_get_person_name(
                    $user_info["firstname"],
                    $user_info["lastname"],
                    null,
                    PERSON_NAME_EMAIL_ADDRESS
                );
                $emailbody = get_lang('Dear')." ".$name_user.",\n\n";
                $emailbody .= get_lang('HomeworkHasBeenCreatedForTheCourse')." ".$course_id.". "."\n\n".get_lang('PleaseCheckHomeworkPage');
                $emailbody .= "\n\n".api_get_person_name($currentUser["firstname"], $currentUser["lastname"]);

                $additionalParameters = array(
                    'smsType' => ClockworksmsPlugin::ASSIGNMENT_BEEN_CREATED_COURSE,
                    'userId' => $student["user_id"],
                    'courseTitle' => $course_id
                );

                api_mail_html(
                    $name_user,
                    $user_info["mail"],
                    $emailsubject,
                    $emailbody,
                    api_get_person_name(
                        $currentUser["firstname"],
                        $currentUser["lastname"],
                        null,
                        PERSON_NAME_EMAIL_ADDRESS
                    ),
                    $currentUser["mail"],
                    null,
                    null,
                    null,
                    $additionalParameters
                );
            }
        }
    }
}
Beispiel #11
0
/**
 * Sends an email to the students of a course when a homework is created
 *
 * @param string course_id
 *
 * @author Guillaume Viguier <*****@*****.**>
 * @author Julio Montoya <*****@*****.**> Adding session support - 2011
 */
function send_email_on_homework_creation($course_id)
{
    // Get the students of the course
    $session_id = api_get_session_id();
    if (empty($session_id)) {
        $students = CourseManager::get_student_list_from_course_code($course_id);
    } else {
        $students = CourseManager::get_student_list_from_course_code($course_id, true, $session_id);
    }
    $emailsubject = '[' . api_get_setting('platform.site_name') . '] ' . get_lang('HomeworkCreated');
    $currentUser = api_get_user_info(api_get_user_id());
    if (!empty($students)) {
        foreach ($students as $student) {
            $user_info = api_get_user_info($student["user_id"]);
            if (!empty($user_info["mail"])) {
                $name_user = api_get_person_name($user_info["firstname"], $user_info["lastname"], null, PERSON_NAME_EMAIL_ADDRESS);
                $emailbody = get_lang('Dear') . " " . $name_user . ",\n\n";
                $emailbody .= get_lang('HomeworkHasBeenCreatedForTheCourse') . " " . $course_id . ". " . "\n\n" . get_lang('PleaseCheckHomeworkPage');
                $emailbody .= "\n\n" . api_get_person_name($currentUser["firstname"], $currentUser["lastname"]);
                @api_mail($name_user, $user_info["mail"], $emailsubject, $emailbody, api_get_person_name($currentUser["firstname"], $currentUser["lastname"], null, PERSON_NAME_EMAIL_ADDRESS), $currentUser["mail"]);
            }
        }
    }
}
Beispiel #12
0
/**
 * @param $filter_score
 * @param $global
 * @param $exercise
 * @param $courseInfo
 * @param $sessionId
 * @param $newSessionList
 * @return array
 */
function processStudentList($filter_score, $global, $exercise, $courseInfo, $sessionId, $newSessionList)
{
    if (isset($exercise['id']) && empty($exercise['id']) || !isset($exercise['id'])) {
        return array('html' => '', 'export_array_global' => [], 'total_students' => 0);
    }
    $exerciseStatsTable = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES);
    $courseId = api_get_course_int_id($courseInfo['code']);
    if (empty($sessionId)) {
        $students = CourseManager::get_student_list_from_course_code($courseInfo['code'], false, 0, null, null, false);
    } else {
        $students = CourseManager::get_student_list_from_course_code($courseInfo['code'], true, $sessionId, null, null, false);
    }
    $html = null;
    $totalStudents = count($students);
    if (!$global) {
        $html .= "<tr>";
    }
    if (!$global) {
        $html .= '<td rowspan="' . $totalStudents . '">';
    } else {
        $html .= '<td>';
    }
    $html .= $exercise['title'];
    if ($global && !empty($sessionId)) {
        $sessionName = isset($newSessionList[$sessionId]) ? $newSessionList[$sessionId] : null;
        $html .= Display::return_icon('star.png', get_lang('Session')) . ' (' . $sessionName . ')';
    }
    $html .= '</td>';
    $globalRow = array($courseInfo['title'], $exercise['title']);
    $total_with_parameter_score = 0;
    $taken = 0;
    $export_array_global = array();
    $studentResult = array();
    foreach ($students as $student) {
        $studentId = isset($student['user_id']) ? $student['user_id'] : $student['id_user'];
        $sql = "SELECT COUNT(ex.exe_id) as count\n                FROM {$exerciseStatsTable} AS ex\n                WHERE\n                    ex.c_id = {$courseId} AND\n                    ex.exe_exo_id = " . $exercise['id'] . " AND\n                    exe_user_id= {$studentId} AND\n                    session_id = {$sessionId}\n                ";
        $result = Database::query($sql);
        $attempts = Database::fetch_array($result);
        $sql = "SELECT exe_id, exe_result, exe_weighting\n                FROM {$exerciseStatsTable}\n                WHERE\n                    exe_user_id = {$studentId} AND\n                    c_id = {$courseId} AND\n                    exe_exo_id = " . $exercise['id'] . " AND\n                    session_id = {$sessionId}\n                ORDER BY exe_result DESC\n                LIMIT 1";
        $result = Database::query($sql);
        $score = 0;
        $weighting = 0;
        while ($scoreInfo = Database::fetch_array($result)) {
            $score = $score + $scoreInfo['exe_result'];
            $weighting = $weighting + $scoreInfo['exe_weighting'];
        }
        $percentageScore = 0;
        if ($weighting != 0) {
            $percentageScore = round($score * 100 / $weighting);
        }
        if ($attempts['count'] > 0) {
            $taken++;
        }
        if ($percentageScore >= $filter_score) {
            $total_with_parameter_score++;
        }
        $tempArray = array();
        if (!$global) {
            $userInfo = api_get_user_info($studentId);
            // User
            $userRow = '<td>';
            $userRow .= $userInfo['complete_name'];
            $userRow .= '</td>';
            // Best result
            if (!empty($attempts['count'])) {
                $userRow .= '<td>';
                $userRow .= $percentageScore;
                $tempArray[] = $percentageScore;
                $userRow .= '</td>';
                if ($percentageScore >= $filter_score) {
                    $userRow .= '<td style="background-color:#DFFFA8">';
                    $userRow .= get_lang('PassExam') . '</td>';
                    $tempArray[] = get_lang('PassExam');
                } else {
                    $userRow .= '<td style="background-color:#FC9A9E"  >';
                    $userRow .= get_lang('ExamFail') . '</td>';
                    $tempArray[] = get_lang('ExamFail');
                }
                $userRow .= '<td>';
                $userRow .= $attempts['count'];
                $tempArray[] = $attempts['count'];
                $userRow .= '</td>';
            } else {
                $score = '-';
                $userRow .= '<td>';
                $userRow .= '-';
                $tempArray[] = '-';
                $userRow .= '</td>';
                $userRow .= '<td style="background-color:#FCE89A">';
                $userRow .= get_lang('NoAttempt');
                $tempArray[] = get_lang('NoAttempt');
                $userRow .= '</td>';
                $userRow .= '<td>';
                $userRow .= 0;
                $tempArray[] = 0;
                $userRow .= '</td>';
            }
            $userRow .= '</tr>';
            $studentResult[$studentId] = array('html' => $userRow, 'score' => $score, 'array' => $tempArray, 'user' => $userInfo['complete_name']);
        }
    }
    $row_not_global['exercise'] = $exercise['title'];
    if (!$global) {
        if (!empty($studentResult)) {
            $studentResultEmpty = $studentResultContent = array();
            foreach ($studentResult as $row) {
                if ($row['score'] == '-') {
                    $studentResultEmpty[] = $row;
                } else {
                    $studentResultContent[] = $row;
                }
            }
            // Sort only users with content
            usort($studentResultContent, 'sort_user');
            $studentResult = array_merge($studentResultContent, $studentResultEmpty);
            foreach ($studentResult as $row) {
                $html .= $row['html'];
                $row_not_global['results'][] = $row['array'];
                $row_not_global['users'][] = $row['user'];
            }
            $export_array[] = $row_not_global;
        }
    }
    if ($global) {
        // Exam taken
        $html .= '<td>';
        $html .= $taken;
        $globalRow[] = $taken;
        $html .= '</td>';
        // Exam NOT taken
        $html .= '<td>';
        $html .= $not_taken = $totalStudents - $taken;
        $globalRow[] = $not_taken;
        $html .= '</td>';
        // Exam pass
        if (!empty($total_with_parameter_score)) {
            $html .= '<td style="background-color:#DFFFA8" >';
        } else {
            $html .= '<td style="background-color:#FCE89A"  >';
        }
        $html .= $total_with_parameter_score;
        $globalRow[] = $total_with_parameter_score;
        $html .= '</td>';
        // Exam fail
        $html .= '<td>';
        $html .= $fail = $taken - $total_with_parameter_score;
        $globalRow[] = $fail;
        $html .= '</td>';
        $html .= '<td>';
        $html .= $totalStudents;
        $globalRow[] = $totalStudents;
        $html .= '</td>';
        $html .= '</tr>';
        $export_array_global[] = $globalRow;
    }
    return array('html' => $html, 'export_array_global' => $export_array_global, 'total_students' => $totalStudents);
}
Beispiel #13
0
/**
 * Sends an email to the students of a course when a homework is created
 *
 * @param int $courseId course_id
 * @param int $sessionId session_id
 * @param int $workId work_id
 *
 *
 * @author Guillaume Viguier <*****@*****.**>
 * @author Julio Montoya <*****@*****.**> Adding session support - 2011
 */
function send_email_on_homework_creation($courseId, $sessionId = 0, $workId)
{
    $courseInfo = api_get_course_info_by_id($courseId);
    $courseCode = $courseInfo['code'];
    // Get the students of the course
    if (empty($session_id)) {
        $students = CourseManager::get_student_list_from_course_code($courseCode);
    } else {
        $students = CourseManager::get_student_list_from_course_code($courseCode, true, $sessionId);
    }
    $emailsubject = '[' . api_get_setting('platform.site_name') . '] ' . get_lang('HomeworkCreated');
    $currentUser = api_get_user_info(api_get_user_id());
    if (!empty($students)) {
        foreach ($students as $student) {
            $user_info = api_get_user_info($student["user_id"]);
            if (!empty($user_info["mail"])) {
                $name_user = api_get_person_name($user_info["firstname"], $user_info["lastname"], null, PERSON_NAME_EMAIL_ADDRESS);
                $link = api_get_path(WEB_CODE_PATH) . 'work/work_list_all.php?' . api_get_cidreq() . '&id=' . $workId;
                $emailbody = get_lang('Dear') . " " . $name_user . ",\n\n";
                $emailbody .= get_lang('HomeworkHasBeenCreatedForTheCourse') . " " . $courseCode . ". " . "\n\n" . '<a href="' . $link . '">' . get_lang('PleaseCheckHomeworkPage') . '</a>';
                $emailbody .= "\n\n" . api_get_person_name($currentUser["firstname"], $currentUser["lastname"]);
                $additionalParameters = array('smsType' => SmsPlugin::ASSIGNMENT_BEEN_CREATED_COURSE, 'userId' => $student["user_id"], 'courseTitle' => $courseCode, 'link' => $link);
                api_mail_html($name_user, $user_info["mail"], $emailsubject, $emailbody, api_get_person_name($currentUser["firstname"], $currentUser["lastname"], null, PERSON_NAME_EMAIL_ADDRESS), $currentUser["mail"], null, null, null, $additionalParameters);
            }
        }
    }
}
Beispiel #14
0
     $coach_id = intval($_GET['id_coach']);
 } else {
     $coach_id = api_get_user_id();
 }
 if (api_is_drh()) {
     $page_title = get_lang('YourStudents');
     if (empty($session_id)) {
         if (isset($_GET['user_id'])) {
             $user_id = intval($_GET['user_id']);
             $user_info = api_get_user_info($user_id);
             $page_title = api_get_person_name($user_info['firstname'], $user_info['lastname']) . ' : ' . get_lang('Students');
             $courses_by_teacher = CourseManager::get_course_list_of_user_as_course_admin($user_id);
             $students_by_course = array();
             if (!empty($courses_by_teacher)) {
                 foreach ($courses_by_teacher as $course) {
                     $students_by_course = array_keys(CourseManager::get_student_list_from_course_code($course['real_id']));
                     if (count($students_by_course) > 0) {
                         foreach ($students_by_course as $student_by_course) {
                             $students[] = $student_by_course;
                         }
                     }
                 }
             }
             if (!empty($students)) {
                 $students = array_unique($students);
             }
         } else {
             $students = array_keys(UserManager::get_users_followed_by_drh(api_get_user_id(), STUDENT));
         }
         $courses_of_the_platform = CourseManager::get_real_course_list();
         foreach ($courses_of_the_platform as $course) {