123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- <?php
- /* For licensing terms, see /license.txt */
- /**
- * Show the skills report.
- *
- * @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
- *
- * @package chamilo.social.skill
- */
- require_once __DIR__.'/../inc/global.inc.php';
- $userId = api_get_user_id();
- Skill::isAllowed($userId);
- $isStudent = api_is_student();
- $isStudentBoss = api_is_student_boss();
- $isDRH = api_is_drh();
- if (!$isStudent && !$isStudentBoss && !$isDRH) {
- header('Location: '.api_get_path(WEB_CODE_PATH).'social/skills_wheel.php');
- exit;
- }
- $action = isset($_GET['a']) ? $_GET['a'] : '';
- switch ($action) {
- case 'generate_custom_skill':
- $certificate = new Certificate(0, api_get_user_id(), false, false);
- $certificate->generatePdfFromCustomCertificate();
- break;
- case 'generate':
- $certificate = Certificate::generateUserSkills(api_get_user_id());
- Display::addFlash(Display::return_message(get_lang('Updated')));
- header('Location: '.api_get_self());
- exit;
- break;
- }
- $skillTable = Database::get_main_table(TABLE_MAIN_SKILL);
- $skillRelUserTable = Database::get_main_table(TABLE_MAIN_SKILL_REL_USER);
- $courseTable = Database::get_main_table(TABLE_MAIN_COURSE);
- $tableRows = [];
- $objSkill = new Skill();
- $tpl = new Template(get_lang('Skills'));
- $tplPath = null;
- $tpl->assign('allow_skill_tool', api_get_setting('allow_skills_tool') === 'true');
- $tpl->assign('allow_drh_skills_management', api_get_setting('allow_hr_skills_management') === 'true');
- if ($isStudent) {
- $result = $objSkill->getUserSkillsTable($userId);
- $tableRows = $result['skills'];
- $tpl->assign('skill_table', $result['table']);
- $tplPath = 'skill/student_report.tpl';
- } elseif ($isStudentBoss) {
- $tableRows = [];
- $followedStudents = UserManager::getUsersFollowedByStudentBoss($userId);
- $frmStudents = new FormValidator('students', 'get');
- $slcStudent = $frmStudents->addSelect(
- 'student',
- get_lang('Student'),
- ['0' => get_lang('Select')]
- );
- $frmStudents->addButtonSearch(get_lang('Search'));
- foreach ($followedStudents as &$student) {
- $student['completeName'] = api_get_person_name($student['firstname'], $student['lastname']);
- $slcStudent->addOption($student['completeName'], $student['user_id']);
- }
- if ($frmStudents->validate()) {
- $selectedStudent = (int) $frmStudents->exportValue('student');
- $sql = "SELECT s.name, sru.acquired_skill_at, c.title, c.directory
- FROM $skillTable s
- INNER JOIN $skillRelUserTable sru
- ON s.id = sru.skill_id
- LEFT JOIN $courseTable c
- ON sru.course_id = c.id
- WHERE sru.user_id = $selectedStudent
- ";
- $result = Database::query($sql);
- while ($resultData = Database::fetch_assoc($result)) {
- $tableRow = [
- 'complete_name' => $followedStudents[$selectedStudent]['completeName'],
- 'skill_name' => Skill::translateName($resultData['name']),
- 'achieved_at' => api_format_date($resultData['acquired_skill_at'], DATE_FORMAT_NUMBER),
- 'course_image' => Display::return_icon(
- 'course.png',
- null,
- null,
- ICON_SIZE_MEDIUM,
- null,
- true
- ),
- 'course_name' => $resultData['title'],
- ];
- $imageSysPath = sprintf('%s%s/course-pic.png', api_get_path(SYS_COURSE_PATH), $resultData['directory']);
- if (file_exists($imageSysPath)) {
- $thumbSysPath = sprintf(
- "%s%s/course-pic32.png",
- api_get_path(SYS_COURSE_PATH),
- $resultData['directory']
- );
- $thumbWebPath = sprintf(
- "%s%s/course-pic32.png",
- api_get_path(WEB_COURSE_PATH),
- $resultData['directory']
- );
- if (!file_exists($thumbSysPath)) {
- $courseImageThumb = new Image($imageSysPath);
- $courseImageThumb->resize(32);
- $courseImageThumb->send_image($thumbSysPath);
- }
- $tableRow['courseImage'] = $thumbWebPath;
- }
- $tableRows[] = $tableRow;
- }
- }
- $tplPath = 'skill/student_boss_report.tpl';
- $tpl->assign('form', $frmStudents->returnForm());
- } elseif ($isDRH) {
- $selectedCourse = isset($_REQUEST['course']) ? intval($_REQUEST['course']) : null;
- $selectedSkill = isset($_REQUEST['skill']) ? intval($_REQUEST['skill']) : 0;
- $action = null;
- if (!empty($selectedCourse)) {
- $action = 'filterByCourse';
- } elseif (!empty($selectedSkill)) {
- $action = 'filterBySkill';
- }
- $courses = CourseManager::getCoursesFollowedByUser($userId, DRH);
- $tableRows = [];
- $reportTitle = null;
- $skills = $objSkill->get_all();
- switch ($action) {
- case 'filterByCourse':
- $course = api_get_course_info_by_id($selectedCourse);
- $reportTitle = sprintf(get_lang('AchievedSkillInCourseX'), $course['name']);
- $tableRows = $objSkill->listAchievedByCourse($selectedCourse);
- break;
- case 'filterBySkill':
- $skill = $objSkill->get($selectedSkill);
- $reportTitle = sprintf(get_lang('StudentsWhoAchievedTheSkillX'), $skill['name']);
- $students = UserManager::getUsersFollowedByUser(
- $userId,
- STUDENT,
- false,
- false,
- false,
- null,
- null,
- null,
- null,
- null,
- null,
- DRH
- );
- $coursesFilter = [];
- foreach ($courses as $course) {
- $coursesFilter[] = $course['id'];
- }
- $tableRows = $objSkill->listUsersWhoAchieved($selectedSkill, $coursesFilter);
- break;
- }
- foreach ($tableRows as &$row) {
- $row['complete_name'] = api_get_person_name($row['firstname'], $row['lastname']);
- $row['achieved_at'] = api_format_date($row['acquired_skill_at'], DATE_FORMAT_NUMBER);
- $row['course_image'] = Display::return_icon(
- 'course.png',
- null,
- null,
- ICON_SIZE_MEDIUM,
- null,
- true
- );
- $imageSysPath = sprintf("%s%s/course-pic.png", api_get_path(SYS_COURSE_PATH), $row['c_directory']);
- if (file_exists($imageSysPath)) {
- $thumbSysPath = sprintf("%s%s/course-pic32.png", api_get_path(SYS_COURSE_PATH), $row['c_directory']);
- $thumbWebPath = sprintf("%s%s/course-pic32.png", api_get_path(WEB_COURSE_PATH), $row['c_directory']);
- if (!file_exists($thumbSysPath)) {
- $courseImageThumb = new Image($imageSysPath);
- $courseImageThumb->resize(32);
- $courseImageThumb->send_image($thumbSysPath);
- }
- $row['course_image'] = $thumbWebPath;
- }
- }
- $tplPath = 'skill/drh_report.tpl';
- $tpl->assign('action', $action);
- $tpl->assign('courses', $courses);
- $tpl->assign('skills', $skills);
- $tpl->assign('selected_course', $selectedCourse);
- $tpl->assign('selected_skill', $selectedSkill);
- $tpl->assign('report_title', $reportTitle);
- }
- if (empty($tableRows)) {
- Display::addFlash(Display::return_message(get_lang('NoResults')));
- }
- $tpl->assign('rows', $tableRows);
- $templateName = $tpl->get_template($tplPath);
- $contentTemplate = $tpl->fetch($templateName);
- $tpl->assign('content', $contentTemplate);
- $tpl->display_one_col_template();
|