コード例 #1
0
ini_set('max_execution_time', 0);
//extra javascript functions for in html head:
$htmlHeadXtra[] = "<script>\nfunction confirmation() {\n\tif (confirm(\" " . trim(get_lang('AreYouSureToDelete')) . " ?\")) {\n\t    return true;\n\t} else {\n\t    return false;\n\t}\n}\n</script>";
api_block_anonymous_users();
if (!api_is_allowed_to_edit() && !api_is_student_boss()) {
    api_not_allowed(true);
}
$cat_id = isset($_GET['cat_id']) ? (int) $_GET['cat_id'] : null;
$action = isset($_GET['action']) && $_GET['action'] ? $_GET['action'] : null;
$filterOfficialCode = isset($_POST['filter']) ? Security::remove_XSS($_POST['filter']) : null;
$filterOfficialCodeGet = isset($_GET['filter']) ? Security::remove_XSS($_GET['filter']) : null;
switch ($action) {
    case 'export_all_certificates':
        if (api_is_student_boss()) {
            $userGroup = new UserGroup();
            $userList = $userGroup->getGroupUsersByUser(api_get_user_id());
        } else {
            $userList = array();
            if (!empty($filterOfficialCodeGet)) {
                $userList = UserManager::getUsersByOfficialCode($filterOfficialCodeGet);
            }
        }
        Category::exportAllCertificates($cat_id, $userList);
        break;
    case 'generate_all_certificates':
        $user_list = CourseManager::get_user_list_from_course_code(api_get_course_id(), api_get_session_id());
        if (!empty($user_list)) {
            foreach ($user_list as $user_info) {
                if ($user_info['status'] == INVITEE) {
                    continue;
                }
コード例 #2
0
ファイル: model.ajax.php プロジェクト: jloguercio/chamilo-lms
     if ($sessionId == -1) {
         $userIdList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus('admin', null);
         $userIdList = array_column($userIdList, 'user_id');
         $sessionList = SessionManager::get_sessions_list();
         $sessionIdList = array_column($sessionList, 'id');
         $courseCodeList = array();
         foreach ($sessionList as $session) {
             $courses = SessionManager::get_course_list_by_session_id($session['id']);
             $courseCodeList = array_merge($courseCodeList, array_column($courses, 'code'));
         }
     }
     $searchByGroups = true;
 }
 if ($searchByGroups) {
     $userGroup = new UserGroup();
     $userIdList = array_merge($userIdList, $userGroup->getGroupUsersByUser(api_get_user_id()));
 }
 if (is_array($userIdList)) {
     $userIdList = array_unique($userIdList);
 }
 if (api_is_student_boss()) {
     $userCourses = [];
     foreach ($userIdList as $userId) {
         $userCourses = array_merge($userCourses, CourseManager::get_courses_list_by_user_id($userId, true));
         $userSessions = SessionManager::getSessionsFollowedByUser($userId);
         $sessionIdList = array_merge($sessionIdList, array_column($userSessions, 'id'));
     }
     $courseCodeList = array_column($userCourses, 'code');
 }
 if (!empty($courseCodeList)) {
     $courseCodeList = array_unique($courseCodeList);
コード例 #3
0
 /**
  * Get list of sessions based on users of a group for a group admin
  * @param int $userId The user id
  * @return array
  */
 public static function getSessionsFollowedForGroupAdmin($userId)
 {
     $sessionList = array();
     $sessionTable = Database::get_main_table(TABLE_MAIN_SESSION);
     $sessionUserTable = Database::get_main_table(TABLE_MAIN_SESSION_USER);
     $userGroup = new UserGroup();
     $userIdList = $userGroup->getGroupUsersByUser($userId);
     if (empty($userIdList)) {
         return [];
     }
     $sql = "SELECT DISTINCT s.*\n                FROM {$sessionTable} s\n                INNER JOIN {$sessionUserTable} sru ON s.id = sru.id_session\n                WHERE\n                    (sru.id_user IN (" . implode(', ', $userIdList) . ")\n                    AND sru.relation_type = 0\n                )";
     if (api_is_multiple_url_enabled()) {
         $sessionAccessUrlTable = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
         $accessUrlId = api_get_current_access_url_id();
         if ($accessUrlId != -1) {
             $sql = "SELECT DISTINCT s.* " . "FROM {$sessionTable} s " . "INNER JOIN {$sessionUserTable} sru ON s.id = sru.id_session " . "INNER JOIN {$sessionAccessUrlTable} srau ON s.id = srau.session_id " . "WHERE srau.access_url_id = {$accessUrlId} " . "AND ( " . "sru.id_user IN (" . implode(', ', $userIdList) . ") " . "AND sru.relation_type = 0" . ")";
         }
     }
     $result = Database::query($sql);
     while ($row = Database::fetch_assoc($result)) {
         $sessionList[] = $row;
     }
     return $sessionList;
 }
コード例 #4
0
ファイル: course.lib.php プロジェクト: feroli1000/chamilo-lms
 /**
  * Get list of courses based on users of a group for a group admin
  * @param int $userId The user id
  * @return array
  */
 public static function getCoursesFollowedByGroupAdmin($userId)
 {
     $coursesList = [];
     $courseTable = Database::get_main_table(TABLE_MAIN_COURSE);
     $courseUserTable = Database::get_main_table(TABLE_MAIN_COURSE_USER);
     $userGroup = new UserGroup();
     $userIdList = $userGroup->getGroupUsersByUser($userId);
     if (empty($userIdList)) {
         return [];
     }
     $sql = "SELECT DISTINCT(c.id), c.title\n                FROM {$courseTable} c\n                INNER JOIN {$courseUserTable} cru ON c.id = cru.c_id\n                WHERE (\n                    cru.user_id IN (" . implode(', ', $userIdList) . ")\n                    AND cru.relation_type = 0\n                )";
     if (api_is_multiple_url_enabled()) {
         $courseAccessUrlTable = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
         $accessUrlId = api_get_current_access_url_id();
         if ($accessUrlId != -1) {
             $sql = "SELECT DISTINCT(c.id), c.title\n                        FROM {$courseTable} c\n                        INNER JOIN {$courseUserTable} cru ON c.id = cru.c_id\n                        INNER JOIN {$courseAccessUrlTable} crau ON c.id = crau.c_id\n                        WHERE crau.access_url_id = {$accessUrlId}\n                            AND (\n                            cru.id_user IN (" . implode(', ', $userIdList) . ") AND\n                            cru.relation_type = 0\n                        )";
         }
     }
     $result = Database::query($sql);
     while ($row = Database::fetch_assoc($result)) {
         $coursesList[] = $row;
     }
     return $coursesList;
 }
コード例 #5
0
use ChamiloSession as Session;
$cidReset = true;
require_once '../inc/global.inc.php';
$this_section = SECTION_TRACKING;
api_block_anonymous_users();
$interbreadcrumb[] = array("url" => api_get_path(WEB_CODE_PATH) . "mySpace/index.php", "name" => get_lang("MySpace"));
$selectedSession = isset($_POST['session']) && !empty($_POST['session']) ? intval($_POST['session']) : 0;
$selectedCourse = isset($_POST['course']) && !empty($_POST['course']) ? intval($_POST['course']) : 0;
$selectedMonth = isset($_POST['month']) && !empty($_POST['month']) ? intval($_POST['month']) : 0;
$selectedYear = isset($_POST['year']) && !empty($_POST['year']) ? trim($_POST['year']) : null;
$selectedStudent = isset($_POST['student']) && !empty($_POST['student']) ? intval($_POST['student']) : 0;
$userId = api_get_user_id();
$sessions = $courses = $months = $students = [0 => get_lang('Select')];
if (api_is_student_boss()) {
    $userGroup = new UserGroup();
    $userList = $userGroup->getGroupUsersByUser($userId);
    $sessionsList = SessionManager::getSessionsFollowedForGroupAdmin($userId);
} else {
    $sessionsList = SessionManager::getSessionsCoachedByUser($userId, false, api_is_platform_admin());
}
foreach ($sessionsList as $session) {
    $sessions[$session['id']] = $session['name'];
}
if ($selectedSession > 0) {
    if (!SessionManager::isValidId($selectedSession)) {
        Session::write('reportErrorMessage', get_lang('NoSession'));
        header("Location: {$selfUrl}");
        exit;
    }
    $coursesList = SessionManager::get_course_list_by_session_id($selectedSession);
    if (is_array($coursesList)) {