Ejemplo n.º 1
0
/* For licensing terms, see /license.txt */
/**
 *  @package chamilo.admin
 */
use ChamiloSession as Session;
$cidReset = true;
//require_once '../inc/global.inc.php';
$this_section = SECTION_PLATFORM_ADMIN;
api_protect_admin_script();
if (api_get_setting('skill.allow_skills_tool') != 'true') {
    api_not_allowed();
}
$interbreadcrumb[] = array('url' => 'index.php', "name" => get_lang('PlatformAdmin'));
$skill = new Skill();
$skill_profile = new SkillProfile();
$skill_rel_user = new SkillRelUser();
$url = api_get_path(WEB_AJAX_PATH) . 'skill.ajax.php';
$tpl = new Template(get_lang('Skills'));
$form = new FormValidator('profile_search');
$form->addElement('header', get_lang('SearchSkills'));
$form->addElement('select', 'skills', null, null, array('id' => 'skills'));
$form->addButtonSearch(get_lang('Search'));
$profiles = $skill_profile->get_all();
$tpl->assign('profiles', $profiles);
$total_skills_to_search = array();
if ($form->validate()) {
    $values = $form->getSubmitValues();
    $skills = $values['skills'];
    if (!empty($skills)) {
        $hidden_skills = isset($values['hidden_skills']) ? $values['hidden_skills'] : array();
        $skills = array_merge($skills, $hidden_skills);
Ejemplo n.º 2
0
/**
 * Show the achieved badges by an user
 * @author Angel Fernando Quiroz Campos <*****@*****.**>
 * @package chamilo.badge
 */
require_once '../inc/global.inc.php';
if (api_get_setting('allow_skills_tool') !== 'true') {
    api_not_allowed(true);
}
$userId = isset($_GET['user']) ? intval($_GET['user']) : 0;
$courseId = api_get_course_int_id();
$sessionId = api_get_session_id();
if ($userId === 0) {
    exit;
}
$objSkillRelUser = new SkillRelUser();
$userSkills = $objSkillRelUser->get_user_skills($userId, $courseId, $sessionId);
if (empty($userSkills)) {
    exit;
}
$assertions = array();
foreach ($userSkills as $skill) {
    $skillId = current($skill);
    $assertionUrl = api_get_path(WEB_CODE_PATH) . "badge/assertion.php?";
    $assertionUrl .= http_build_query(array('user' => $userId, 'skill' => $skillId, 'course' => $courseId, 'session' => $sessionId));
    $assertions[] = $assertionUrl;
}
$backpack = 'https://backpack.openbadges.org/';
$configBackpack = api_get_setting('openbadges_backpack');
if (strcmp($backpack, $configBackpack) !== 0) {
    $backpack = $configBackpack;
Ejemplo n.º 3
0
<?php

/* For licensing terms, see /license.txt */
/**
 * Show information about a new assertion
 * @author Angel Fernando Quiroz Campos <*****@*****.**>
 * @package chamilo.badge
 */
header('Content-Type: application/json');
require_once '../inc/global.inc.php';
$userId = isset($_GET['user']) ? intval($_GET['user']) : 0;
$skillId = isset($_GET['skill']) ? intval($_GET['skill']) : 0;
$courseId = isset($_GET['course']) ? intval($_GET['course']) : 0;
$sessionId = isset($_GET['session']) ? intval($_GET['session']) : 0;
if ($userId === 0 || $skillId === 0) {
    exit;
}
$objSkill = new Skill();
if (!$objSkill->user_has_skill($userId, $skillId, $courseId, $sessionId)) {
    exit;
}
$objSkillRelUser = new SkillRelUser();
$userSkill = $objSkillRelUser->getByUserAndSkill($userId, $skillId, $courseId, $sessionId);
if ($userSkill == false) {
    exit;
}
$user = api_get_user_info($userSkill['user_id']);
$json = array('uid' => $userSkill['id'], 'recipient' => array('type' => 'email', 'hashed' => false, 'identity' => $user['email']), 'issuedOn' => strtotime($userSkill['acquired_skill_at']), 'badge' => api_get_path(WEB_CODE_PATH) . "badge/class.php?id={$skillId}", 'verify' => array('type' => 'hosted', 'url' => api_get_path(WEB_CODE_PATH) . "badge/assertion.php?" . http_build_query(array('user' => $userId, 'skill' => $skillId, 'course' => $courseId, 'session' => $sessionId))));
echo json_encode($json);
Ejemplo n.º 4
0
 /**
  * @param int $user_id
  * @param int $gradebook_id
  * @param int $courseId
  * @param int $sessionId
  */
 public function add_skill_to_user($user_id, $gradebook_id, $courseId = 0, $sessionId = 0)
 {
     $skill_gradebook = new SkillRelGradebook();
     $skill_rel_user = new SkillRelUser();
     $skill_gradebooks = $skill_gradebook->get_all(array('where' => array('gradebook_id = ?' => $gradebook_id)));
     if (!empty($skill_gradebooks)) {
         foreach ($skill_gradebooks as $skill_gradebook) {
             $user_has_skill = $this->user_has_skill($user_id, $skill_gradebook['skill_id'], $courseId, $sessionId);
             if (!$user_has_skill) {
                 $params = array('user_id' => $user_id, 'skill_id' => $skill_gradebook['skill_id'], 'acquired_skill_at' => api_get_utc_datetime(), 'course_id' => intval($courseId));
                 if (!empty($sessionId)) {
                     $params['session_id'] = $sessionId;
                 }
                 $skill_rel_user->save($params);
             }
         }
     }
 }
Ejemplo n.º 5
0
 /**
  * @param int $category_id
  * @param int $user_id
  * @return bool|string
  */
 public static function register_user_certificate($category_id, $user_id)
 {
     $courseId = api_get_course_int_id();
     $courseCode = api_get_course_id();
     $sessionId = api_get_session_id();
     // Generating the total score for a course
     $cats_course = Category::load($category_id, null, null, null, null, $sessionId, false);
     /** @var Category $category */
     $category = $cats_course[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 $subCategory) {
                 $sum_categories_weight_array[$subCategory->get_id()] = $subCategory->get_weight();
             }
         } else {
             $sum_categories_weight_array[$category_id] = $cats_course[0]->get_weight();
         }
     }
     $main_weight = $cats_course[0]->get_weight();
     $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);
     // A student always sees only the teacher's repartition
     $scoretotal_display = $scoredisplay->display_score($scoretotal, SCORE_DIV_PERCENT);
     if (!self::userFinishedCourse($user_id, $cats_course[0], 0, $courseCode, $sessionId, true)) {
         return false;
     }
     $skillToolEnabled = api_get_setting('skill.allow_skills_tool') == 'true';
     $userHasSkills = false;
     if ($skillToolEnabled) {
         if (!$category->getGenerateCertificates()) {
             $skill = new Skill();
             $skill->add_skill_to_user($user_id, $category_id, $courseId, $sessionId);
         }
         $objSkillRelUser = new SkillRelUser();
         $userSkills = $objSkillRelUser->get_user_skills($user_id, $courseId, $sessionId);
         $userHasSkills = !empty($userSkills);
         if (!$category->getGenerateCertificates() && $userHasSkills) {
             return ['badge_link' => Display::url(get_lang('DownloadBadges'), api_get_path(WEB_CODE_PATH) . "gradebook/get_badges.php?user={$user_id}", array('target' => '_blank', 'class' => 'btn btn-default'))];
         }
     }
     $my_certificate = GradebookUtils::get_certificate_by_user_id($cats_course[0]->get_id(), $user_id);
     if (empty($my_certificate)) {
         GradebookUtils::register_user_info_about_certificate($category_id, $user_id, $my_score_in_gradebook, api_get_utc_datetime());
         $my_certificate = GradebookUtils::get_certificate_by_user_id($cats_course[0]->get_id(), $user_id);
     }
     $html = array();
     if (!empty($my_certificate)) {
         $certificate_obj = new Certificate($my_certificate['id']);
         $fileWasGenerated = $certificate_obj->html_file_is_generated();
         if (!empty($fileWasGenerated)) {
             $url = api_get_path(WEB_PATH) . 'certificates/index.php?id=' . $my_certificate['id'];
             $certificates = Display::url(Display::returnFontAwesomeIcon('download') . ' ' . get_lang('DownloadCertificate'), $url, array('target' => '_blank', 'class' => 'btn btn-sm btn-primary'));
             $exportToPDF = Display::url(Display::return_icon('pdf.png', get_lang('ExportToPDF'), array(), ICON_SIZE_MEDIUM), "{$url}&action=export");
             $hideExportLink = api_get_setting('hide_certificate_export_link');
             $hideExportLinkStudent = api_get_setting('hide_certificate_export_link_students');
             if ($hideExportLink === 'true' || api_is_student() && $hideExportLinkStudent === 'true') {
                 $exportToPDF = null;
             }
             $html = array('certificate_link' => $certificates, 'pdf_link' => $exportToPDF, 'pdf_url' => "{$url}&action=export");
             if ($skillToolEnabled && $userHasSkills) {
                 $html['badge_link'] = Display::url(get_lang('DownloadBadges'), api_get_path(WEB_CODE_PATH) . "gradebook/get_badges.php?user={$user_id}", array('target' => '_blank', 'class' => 'btn btn-default'));
             }
         }
         return $html;
     }
 }