You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							193 lines
						
					
					
						
							7.5 KiB
						
					
					
				
			
		
		
	
	
							193 lines
						
					
					
						
							7.5 KiB
						
					
					
				<?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 '../inc/global.inc.php';
 | 
						|
 | 
						|
$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;
 | 
						|
}
 | 
						|
 | 
						|
$userId = api_get_user_id();
 | 
						|
 | 
						|
$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 = array();
 | 
						|
 | 
						|
$tpl = new Template(get_lang('Skills'));
 | 
						|
$tplPath = null;
 | 
						|
 | 
						|
$tpl->assign('allowSkillsTool', api_get_setting('allow_skills_tool') == 'true');
 | 
						|
$tpl->assign('allowDrhSkillsManagement', api_get_setting('allow_hr_skills_management') == 'true');
 | 
						|
 | 
						|
if ($isStudent) {
 | 
						|
    $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
 | 
						|
            INNER JOIN $courseTable c ON sru.course_id = c.id
 | 
						|
            WHERE sru.user_id = $userId";
 | 
						|
 | 
						|
    $result = Database::query($sql);
 | 
						|
 | 
						|
    while ($resultData = Database::fetch_assoc($result)) {
 | 
						|
        $tableRow = array(
 | 
						|
            'skillName' => $resultData['name'],
 | 
						|
            'achievedAt' => api_format_date($resultData['acquired_skill_at'], DATE_FORMAT_NUMBER),
 | 
						|
            'courseImage' => Display::return_icon('course.png', null, null, ICON_SIZE_MEDIUM, null, true),
 | 
						|
            'courseName' => $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, 32, 0);
 | 
						|
                $courseImageThumb->send_image($thumbSysPath);
 | 
						|
            }
 | 
						|
            $tableRow['courseImage'] = $thumbWebPath;
 | 
						|
        }
 | 
						|
        $tableRows[] = $tableRow;
 | 
						|
    }
 | 
						|
 | 
						|
    $tplPath = 'skill/student_report.tpl';
 | 
						|
} else if ($isStudentBoss) {
 | 
						|
    $selectedStudent = isset($_REQUEST['student']) ? intval($_REQUEST['student']) : 0;
 | 
						|
    $tableRows = array();
 | 
						|
    $followedStudents = UserManager::getUsersFollowedByStudentBoss($userId);
 | 
						|
 | 
						|
    foreach ($followedStudents as &$student) {
 | 
						|
        $student['completeName'] = api_get_person_name($student['firstname'], $student['lastname']);
 | 
						|
    }
 | 
						|
 | 
						|
    if ($selectedStudent > 0) {
 | 
						|
        $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
 | 
						|
                INNER 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 = array(
 | 
						|
                'completeName' => $followedStudents[$selectedStudent]['completeName'],
 | 
						|
                'skillName' => $resultData['name'],
 | 
						|
                'achievedAt' => api_format_date($resultData['acquired_skill_at'], DATE_FORMAT_NUMBER),
 | 
						|
                'courseImage' => Display::return_icon('course.png', null, null, ICON_SIZE_MEDIUM, null, true),
 | 
						|
                'courseName' => $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, 32, 0);
 | 
						|
                    $courseImageThumb->send_image($thumbSysPath);
 | 
						|
                }
 | 
						|
                $tableRow['courseImage'] = $thumbWebPath;
 | 
						|
            }
 | 
						|
            $tableRows[] = $tableRow;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    $tplPath = 'skill/student_boss_report.tpl';
 | 
						|
    $tpl->assign('followedStudents', $followedStudents);
 | 
						|
    $tpl->assign('selectedStudent', $selectedStudent);
 | 
						|
} else if ($isDRH) {
 | 
						|
    $selectedCourse = isset($_REQUEST['course']) ? intval($_REQUEST['course']) : null;
 | 
						|
    $selectedSkill = isset($_REQUEST['skill']) ? intval($_REQUEST['skill']) : 0;
 | 
						|
 | 
						|
    $action = null;
 | 
						|
 | 
						|
    if (!empty($selectedCourse)) {
 | 
						|
        $action = 'filterByCourse';
 | 
						|
    } else if (!empty($selectedSkill)) {
 | 
						|
        $action = 'filterBySkill';
 | 
						|
    }
 | 
						|
 | 
						|
    $courses = CourseManager::get_courses_list();
 | 
						|
 | 
						|
    $tableRows = array();
 | 
						|
    $reportTitle = null;
 | 
						|
 | 
						|
    $objSkill = new Skill();
 | 
						|
    $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 = array();
 | 
						|
            foreach ($courses as $course) {
 | 
						|
                $coursesFilter[] = $course['id'];
 | 
						|
            }
 | 
						|
 | 
						|
            $tableRows = $objSkill->listUsersWhoAchieved($selectedSkill, $coursesFilter);
 | 
						|
            break;
 | 
						|
    }
 | 
						|
 | 
						|
    foreach ($tableRows as &$row) {
 | 
						|
        $row['completeName'] = api_get_person_name($row['firstname'], $row['lastname']);
 | 
						|
        $row['achievedAt'] = api_format_date($row['acquired_skill_at'], DATE_FORMAT_NUMBER);
 | 
						|
        $row['courseImage'] = 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, 32, 0);
 | 
						|
                $courseImageThumb->send_image($thumbSysPath);
 | 
						|
            }
 | 
						|
 | 
						|
            $row['courseImage'] = $thumbWebPath;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    $tplPath = 'skill/drh_report.tpl';
 | 
						|
 | 
						|
    $tpl->assign('action', $action);
 | 
						|
    $tpl->assign('courses', $courses);
 | 
						|
    $tpl->assign('skills', $skills);
 | 
						|
    $tpl->assign('selectedCourse', $selectedCourse);
 | 
						|
    $tpl->assign('selectedSkill', $selectedSkill);
 | 
						|
    $tpl->assign('reportTitle', $reportTitle);
 | 
						|
}
 | 
						|
 | 
						|
$tpl->assign('rows', $tableRows);
 | 
						|
 | 
						|
$contentTemplate = $tpl->fetch("default/" . $tplPath);
 | 
						|
 | 
						|
$tpl->assign('content', $contentTemplate);
 | 
						|
$tpl->display_one_col_template();
 | 
						|
 |