Ejemplo n.º 1
0
 /**
  * return all content to replace and all content to be replace
  */
 static function get_all_info_to_certificate($user_id, $course_id, $is_preview = false)
 {
     $info_list = array();
     $user_id = intval($user_id);
     $course_info = api_get_course_info($course_id);
     //info portal
     $organization_name = api_get_setting('platform.institution');
     $portal_name = api_get_setting('platform.site_name');
     //Extra user data information
     $extra_user_info_data = UserManager::get_extra_user_data($user_id, false, false, false, true);
     //Student information
     $user_info = api_get_user_info($user_id);
     $first_name = $user_info['firstname'];
     $last_name = $user_info['lastname'];
     $official_code = $user_info['official_code'];
     //Teacher information
     $info_teacher_id = UserManager::get_user_id_of_course_admin_or_session_admin($course_info);
     $teacher_info = api_get_user_info($info_teacher_id);
     $teacher_first_name = $teacher_info['firstname'];
     $teacher_last_name = $teacher_info['lastname'];
     // info gradebook certificate
     $info_grade_certificate = UserManager::get_info_gradebook_certificate($course_id, $user_id);
     $date_certificate = $info_grade_certificate['created_at'];
     $date_no_time = null;
     $date_long_certificate = '';
     if (!empty($date_certificate)) {
         $date_long_certificate = api_convert_and_format_date($date_certificate);
         $date_no_time = api_convert_and_format_date($date_certificate, DATE_FORMAT_LONG_NO_DAY);
     }
     if ($is_preview) {
         $date_long_certificate = api_convert_and_format_date(api_get_utc_datetime());
         $date_no_time = api_convert_and_format_date(api_get_utc_datetime(), DATE_FORMAT_LONG_NO_DAY);
     }
     $url = Certificate::getCertificatePublicURL($info_grade_certificate['id']);
     //replace content
     $info_to_replace_in_content_html = array($first_name, $last_name, $organization_name, $portal_name, $teacher_first_name, $teacher_last_name, $official_code, $date_long_certificate, $date_no_time, $course_id, $course_info['name'], $info_grade_certificate['grade'], $url, '<a href="' . $url . '" target="_blank">' . get_lang('CertificateOnlineLink') . '</a>', '((certificate_barcode))');
     $info_to_be_replaced_in_content_html = array('((user_firstname))', '((user_lastname))', '((gradebook_institution))', '((gradebook_sitename))', '((teacher_firstname))', '((teacher_lastname))', '((official_code))', '((date_certificate))', '((date_certificate_no_time))', '((course_code))', '((course_title))', '((gradebook_grade))', '((certificate_link))', '((certificate_link_html))', '((certificate_barcode))');
     if (!empty($extra_user_info_data)) {
         foreach ($extra_user_info_data as $key_extra => $value_extra) {
             $info_to_be_replaced_in_content_html[] = '((' . strtolower($key_extra) . '))';
             $info_to_replace_in_content_html[] = $value_extra;
         }
     }
     $info_list[] = $info_to_be_replaced_in_content_html;
     $info_list[] = $info_to_replace_in_content_html;
     return $info_list;
 }
echo '</div>';
if (count($certificate_list) == 0) {
    echo Display::display_warning_message(get_lang('NoResultsAvailable'));
} else {
    echo '<br /><br /><table class="data_table">';
    foreach ($certificate_list as $index => $value) {
        echo '<tr>
                    <td width="100%" class="actions">' . get_lang('Student') . ' : ' . api_get_person_name($value['firstname'], $value['lastname']) . ' ( ' . $value['username'] . ')</td>';
        echo '</tr>';
        echo '<tr><td>
            <table class="data_table">';
        $list_certificate = get_list_gradebook_certificates_by_user_id($value['user_id'], $cat_id);
        foreach ($list_certificate as $value_certificate) {
            echo '<tr>';
            echo '<td width="50%">' . get_lang('Score') . ' : ' . $value_certificate['score_certificate'] . '</td>';
            echo '<td width="30%">' . get_lang('Date') . ' : ' . api_convert_and_format_date($value_certificate['created_at']) . '</td>';
            echo '<td width="20%">';
            $url = Certificate::getCertificatePublicURL($value_certificate['id']);
            $certificates = Display::url(get_lang('Certificate'), $url, array('target' => '_blank', 'class' => 'btn'));
            echo $certificates;
            echo '<a onclick="return confirmation();" href="gradebook_display_certificate.php?sec_token=' . $token . '&cidReq=' . $course_code . '&action=delete&cat_id=' . $cat_id . '&certificate_id=' . $value_certificate['id'] . '">
                    ' . Display::return_icon('delete.png', get_lang('Delete')) . '
                  </a>';
            echo '</td></tr>';
        }
        echo '</table>';
        echo '</td></tr>';
    }
    echo '</table>';
}
Display::display_footer();
Ejemplo n.º 3
0
 static function register_user_certificate($category_id, $user_id)
 {
     // generating the total score for a course
     $cats_course = Category::load($category_id, null, null, null, null, null, false);
     $alleval_course = $cats_course[0]->get_evaluations($user_id, true);
     $alllink_course = $cats_course[0]->get_links($user_id, true);
     $evals_links = array_merge($alleval_course, $alllink_course);
     $item_total = 0;
     //@todo move these in a function
     $sum_categories_weight_array = array();
     if (isset($cats_course) && !empty($cats_course)) {
         $categories = Category::load(null, null, null, $category_id);
         if (!empty($categories)) {
             foreach ($categories as $category) {
                 $sum_categories_weight_array[$category->get_id()] = $category->get_weight();
             }
         } else {
             $sum_categories_weight_array[$category_id] = $cats_course[0]->get_weight();
         }
     }
     $main_weight = $cats_course[0]->get_weight();
     $item_total_value = 0;
     $item_value = 0;
     for ($count = 0; $count < count($evals_links); $count++) {
         $item = $evals_links[$count];
         $score = $item->calc_score($user_id);
         $divide = $score[1] == 0 ? 1 : $score[1];
         $sub_cat_percentage = $sum_categories_weight_array[$item->get_category_id()];
         $item_value = $score[0] / $divide * $item->get_weight() * $sub_cat_percentage / $main_weight;
         $item_total_value += $item_value;
     }
     $item_total_value = (double) $item_total_value;
     $cattotal = Category::load($category_id);
     $scoretotal = $cattotal[0]->calc_score($user_id);
     //Do not remove this the gradebook/lib/fe/gradebooktable.class.php file load this variable as a global
     $scoredisplay = ScoreDisplay::instance();
     $my_score_in_gradebook = $scoredisplay->display_score($scoretotal, SCORE_SIMPLE);
     //Show certificate
     $certificate_min_score = $cats_course[0]->get_certificate_min_score();
     $scoretotal_display = $scoredisplay->display_score($scoretotal, SCORE_DIV_PERCENT);
     //a student always sees only the teacher's repartition
     if (isset($certificate_min_score) && $item_total_value >= $certificate_min_score) {
         $my_certificate = get_certificate_by_user_id($cats_course[0]->get_id(), $user_id);
         if (empty($my_certificate)) {
             register_user_info_about_certificate($category_id, $user_id, $my_score_in_gradebook, api_get_utc_datetime());
             $my_certificate = get_certificate_by_user_id($cats_course[0]->get_id(), $user_id);
         }
         if (!empty($my_certificate)) {
             $certificate_obj = new Certificate($my_certificate['id']);
             $url = Certificate::getCertificatePublicURL($my_certificate['id']);
             $certificates = Display::url(Display::return_icon('certificate.png', get_lang('Certificates'), array(), 32), $url, array('target' => '_blank'));
             $html = '<div class="actions" align="right">';
             $html .= Display::url($url, $url, array('target' => '_blank'));
             $html .= $certificates;
             $html .= '</div>';
             return $html;
         }
     } else {
         return false;
     }
 }