/** * Web service to get a session by its id. Optionally can get its extra fields values * @param array $params Contains the following parameters: * int $params['id'] The session id * string $params['extrafields'] Extrafields to include in request result * string $params['secret_key'] Secret key to check * @return array The session data */ function WSFetchSession($params) { if (!WSHelperVerifyKey($params['secret_key'])) { return return_error(WS_ERROR_SECRET_KEY); } $fieldsToInclude = explode(',', $params['extrafields']); foreach ($fieldsToInclude as &$field) { if (empty($field)) { continue; } $field = trim($field); } $sessionData = SessionManager::fetch($params['id']); if ($sessionData === false) { return return_error(WS_ERROR_INVALID_INPUT); } if (!empty($extraFields)) { $sessionData['extra'] = SessionManager::getFilteredExtraFields($params['id'], $fieldsToInclude); } return array($sessionData); }
} else { header('Location: resume_session.php?id_session=' . $id_session); exit; } } // display the dokeos header Display::display_header($tool_name); if ($add_type == 'multiple') { $link_add_type_unique = '<a href="' . api_get_self() . '?id_session=' . $id_session . '&add=' . Security::remove_XSS($_GET['add']) . '&add_type=unique">' . Display::return_icon('single.gif') . get_lang('SessionAddTypeUnique') . '</a>'; $link_add_type_multiple = Display::return_icon('multiple.gif') . get_lang('SessionAddTypeMultiple') . ' '; } else { $link_add_type_unique = Display::return_icon('single.gif') . get_lang('SessionAddTypeUnique') . ' '; $link_add_type_multiple = '<a href="' . api_get_self() . '?id_session=' . $id_session . '&add=' . Security::remove_XSS($_GET['add']) . '&add_type=multiple">' . Display::return_icon('multiple.gif') . get_lang('SessionAddTypeMultiple') . '</a>'; } // the form header $session_info = SessionManager::fetch($id_session); echo '<div class="actions">'; echo $link_add_type_unique . $link_add_type_multiple; echo '</div>'; /*$sql = 'SELECT COUNT(1) FROM '.$tbl_course; $rs = Database::query($sql); $count_courses = Database::result($rs, 0, 0);*/ $ajax_search = $add_type == 'unique' ? true : false; $nosessionCourses = $sessionCourses = array(); if ($ajax_search) { $sql = "SELECT code, title, visual_code, id_session\n\t\t\tFROM {$tbl_course} course\n\t\t\tINNER JOIN {$tbl_session_rel_course} session_rel_course\n\t\t\t\tON course.id = session_rel_course.c_id\n\t\t\t\tAND session_rel_course.id_session = " . intval($id_session) . "\n\t\t\tORDER BY " . (sizeof($courses) ? "(course.code IN(" . implode(',', $courses) . ")) DESC," : "") . " title"; if (api_is_multiple_url_enabled()) { $tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE); $access_url_id = api_get_current_access_url_id(); if ($access_url_id != -1) { $sql = "SELECT code, title, visual_code, id_session\n\t\t\tFROM {$tbl_course} course\n\t\t\tINNER JOIN {$tbl_session_rel_course} session_rel_course\n\t\t\t\tON course.code = session_rel_course.course_code\n\t\t\t\tAND session_rel_course.id_session = " . intval($id_session) . "\n\t\t\t\tINNER JOIN {$tbl_course_rel_access_url} url_course ON (url_course.c_id = course.id)\n\t\t\t\tWHERE access_url_id = {$access_url_id}\n\t\t\tORDER BY " . (sizeof($courses) ? "(course.code IN(" . implode(',', $courses) . ")) DESC," : "") . " title";
CourseManager::delete_course($_GET['delete_course']); $obj_cat = new Category(); $obj_cat->update_category_delete($_GET['delete_course']); } // Create a search-box $form = new FormValidator('search_simple', 'get', '', '', array('class' => 'form-search'), false); $form->addElement('text', 'keyword', null); $form->addElement('style_submit_button', 'submit', get_lang('SearchCourse'), 'class="btn"'); $form->addElement('static', 'search_advanced_link', null, '<a href="course_list.php?search=advanced">' . get_lang('AdvancedSearch') . '</a>'); // Create a filter by session $sessionFilter = new FormValidator('course_filter', 'get', '', '', array('class' => 'form-search'), false); $url = api_get_path(WEB_AJAX_PATH) . 'session.ajax.php?a=search_session'; $sessionList = array(); if (!empty($sessionId)) { $sessionList = array(); $sessionInfo = SessionManager::fetch($sessionId); $sessionList[] = array('id' => $sessionInfo['id'], 'text' => $sessionInfo['name']); } $sessionFilter->addElement('select_ajax', 'session_name', get_lang('SearchCourseBySession'), null, array('url' => $url, 'defaults' => $sessionList)); $courseListUrl = api_get_self(); $actions = ' <script> $(function() { $("#session_name").on("change", function() { var sessionId = $(this).val(); window.location = "' . $courseListUrl . '?session_id="+sessionId; }); }); </script>'; $actions .= '<div class="pull-right">'; $actions .= '<a href="course_add.php">' . Display::return_icon('new_course.png', get_lang('AddCourse'), '', ICON_SIZE_MEDIUM) . '</a> ';
$quizIds[] = $exercise['id']; } } $course = api_get_course_info_by_id($_GET['course_id']); $listUserSess = CourseManager::get_student_list_from_course_code($course['code'], true, $_GET['session_id']); $usersId = array_keys($listUserSess); $users = UserManager::get_user_list_by_ids($usersId, null, "lastname, firstname", "{$start} , {$limit}"); $exeResults = $objExercise->getExerciseAndResult($_GET['course_id'], $_GET['session_id'], $quizIds); $arrGrade = array(); foreach ($exeResults as $exeResult) { $arrGrade[$exeResult['exe_user_id']][$exeResult['exe_exo_id']] = $exeResult['exe_result']; } $result = array(); $i = 0; foreach ($users as $user) { $sessionInfo = SessionManager::fetch($listUserSess[$user['user_id']]['id_session']); $result[$i]['session'] = $sessionInfo['name']; $result[$i]['username'] = $user['username']; $result[$i]['name'] = $user['lastname'] . " " . $user['firstname']; $j = 1; $finalScore = 0; foreach ($quizIds as $quizID) { $grade = ""; if (!empty($arrGrade[$user['user_id']][$quizID]) || $arrGrade[$user['user_id']][$quizID] == 0) { $finalScore += $grade = $arrGrade[$user['user_id']][$quizID]; } $result[$i]['exer' . $j] = $grade; $j++; } if ($finalScore > 20) { $finalScore = 20;
/** * Return an array of courses in session for user * and for each courses the list of session that use this course for user * * [0] => array * userCatId * userCatTitle * courseInUserCatList * [0] => array * courseId * title * courseCode * sessionCatList * [0] => array * catSessionId * catSessionName * sessionList * [0] => array * sessionId * sessionName * * @param $userId * @return array * */ public static function getNamedSessionCourseForCoach($userId) { $listResults = array(); $listCourseSession = self::getSessionCourseForUser($userId); foreach ($listCourseSession as $courseId => $listSessionId) { // Course info $courseInfo = api_get_course_info_by_id($courseId); $listOneCourse = array(); $listOneCourse['courseId'] = $courseId; $listOneCourse['title'] = $courseInfo['title']; //$listOneCourse['courseCode'] = $courseInfo['code']; $listOneCourse['course'] = $courseInfo; $listOneCourse['sessionCatList'] = array(); $listCat = array(); foreach ($listSessionId as $i => $sessionId) { // here we got all session for this course // lets check there session categories $sessionInfo = SessionManager::fetch($sessionId); $catId = $sessionInfo['session_category_id']; if (!isset($listCat[$catId])) { $listCatInfo = self::get_session_category($catId); $listCat[$catId] = array(); $listCat[$catId]['catSessionId'] = $catId; $listCat[$catId]['catSessionName'] = $listCatInfo['name']; $listCat[$catId]['sessionList'] = array(); } $listSessionInfo = SessionManager::fetch($sessionId); $listSessionIdName = array("sessionId" => $sessionId, "sessionName" => $listSessionInfo['name']); $listCat[$catId]['sessionList'][] = $listSessionIdName; } // sort $listCat by catSessionName usort($listCat, 'self::compareBySessionName'); // in each catSession sort sessionList by sessionName foreach ($listCat as $i => $listCatSessionInfo) { $listSessionList = $listCatSessionInfo['sessionList']; usort($listSessionList, 'self::compareCatSessionInfo'); $listCat[$i]['sessionList'] = $listSessionList; } $listOneCourse['sessionCatList'] = $listCat; // user course category list($userCatId, $userCatTitle) = CourseManager::getUserCourseCategoryForCourse($userId, $courseId); $userCatId = intval($userCatId); $listResults[$userCatId]['courseInUserCategoryId'] = $userCatId; $listResults[$userCatId]['courseInUserCategoryTitle'] = $userCatTitle; $listResults[$userCatId]['courseInUserCatList'][] = $listOneCourse; } // sort by user course cat uasort($listResults, 'self::compareByUserCourseCat'); // sort by course title foreach ($listResults as $userCourseCatId => $tabCoursesInCat) { $courseInUserCatList = $tabCoursesInCat['courseInUserCatList']; uasort($courseInUserCatList, 'self::compareByCourse'); $listResults[$userCourseCatId]['courseInUserCatList'] = $courseInUserCatList; } return $listResults; }
/** * Gets the real session id based on the session id field name and value. Note that if the session id field name is "chamilo_session_id", it will use the session id * in the system database * * @param string Session id field name * @param string Session id value * @return mixed System session id if the session was found, WSError otherwise */ protected function getSessionId($session_id_field_name, $session_id_value) { if ($session_id_field_name == "chamilo_session_id") { $session = SessionManager::fetch((int) $session_id_value); if (!empty($session)) { return intval($session_id_value); } else { return new WSError(300, "Session not found"); } } else { $session_id = SessionManager::get_session_id_from_original_id($session_id_value, $session_id_field_name); if ($session_id == 0) { return new WSError(300, "Session not found"); } else { return $session_id; } } }
/** * Code */ // name of the language file that needs to be included $language_file = 'admin'; $cidReset = true; //require_once '../inc/global.inc.php'; // setting the section (for the tabs) $this_section = SECTION_PLATFORM_ADMIN; $formSent = 0; // Database Table Definitions $tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $id = intval($_GET['id']); SessionManager::protect_session_edit($id); $infos = SessionManager::fetch($id); $id_coach = $infos['id_coach']; $tool_name = get_lang('EditSession'); $interbreadcrumb[] = array('url' => 'index.php', "name" => get_lang('PlatformAdmin')); $interbreadcrumb[] = array('url' => "session_list.php", "name" => get_lang('SessionList')); $interbreadcrumb[] = array('url' => "resume_session.php?id_session=" . $id, "name" => get_lang('SessionOverview')); list($year_start, $month_start, $day_start) = explode('-', $infos['date_start']); list($year_end, $month_end, $day_end) = explode('-', $infos['date_end']); $showDescriptionChecked = null; if (isset($infos['show_description']) && !empty($infos['show_description'])) { $showDescriptionChecked = 'checked'; } $end_year_disabled = $end_month_disabled = $end_day_disabled = ''; if (isset($_POST['formSent']) && $_POST['formSent']) { $formSent = 1; $name = $_POST['name'];
/** * Edit a session * @author Carlos Vargas from existing code * @param integer id * @param string name * @param integer year_start * @param integer month_start * @param integer day_start * @param integer year_end * @param integer month_end * @param integer day_end * @param integer nb_days_acess_before * @param integer nb_days_acess_after * @param integer nolimit * @param integer id_coach * @param integer id_session_category * @param int $id_visibility * @param bool * @param bool * @param string $description * @param int $showDescription * @return $id; * The parameter id is a primary key * */ public static function edit_session( $id, $name, $year_start, $month_start, $day_start, $year_end, $month_end, $day_end, $nb_days_acess_before, $nb_days_acess_after, $nolimit, $id_coach, $id_session_category, $id_visibility, $start_limit = true, $end_limit = true, $description = null, $showDescription = null, $duration = null ) { $name = trim(stripslashes($name)); $year_start = intval($year_start); $month_start = intval($month_start); $day_start = intval($day_start); $year_end = intval($year_end); $month_end = intval($month_end); $day_end = intval($day_end); $id_coach = intval($id_coach); $nb_days_acess_before = intval($nb_days_acess_before); $nb_days_acess_after = intval($nb_days_acess_after); $id_session_category = intval($id_session_category); $id_visibility = intval($id_visibility); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); if (empty($nolimit)) { $date_start = "$year_start-" . (($month_start < 10) ? "0$month_start" : $month_start) . "-" . (($day_start < 10) ? "0$day_start" : $day_start); $date_end = "$year_end-" . (($month_end < 10) ? "0$month_end" : $month_end) . "-" . (($day_end < 10) ? "0$day_end" : $day_end); } else { $date_start = "0000-00-00"; $date_end = "0000-00-00"; $id_visibility = 1; //force read only } if (!empty($no_end_limit)) { $date_end = "0000-00-00"; } if (empty($end_limit)) { $date_end = "0000-00-00"; $id_visibility = 1; //force read only } if (empty($start_limit)) { $date_start = "0000-00-00"; } if (empty($name)) { $msg = get_lang('SessionNameIsRequired'); return $msg; } elseif (empty($id_coach)) { $msg = get_lang('CoachIsRequired'); return $msg; } elseif (!empty($start_limit) && empty($nolimit) && (!$month_start || !$day_start || !$year_start || !checkdate($month_start, $day_start, $year_start))) { $msg = get_lang('InvalidStartDate'); return $msg; } elseif (!empty($end_limit) && empty($nolimit) && (!$month_end || !$day_end || !$year_end || !checkdate($month_end, $day_end, $year_end))) { $msg = get_lang('InvalidEndDate'); return $msg; } elseif (!empty($start_limit) && !empty($end_limit) && empty($nolimit) && $date_start >= $date_end) { $msg = get_lang('StartDateShouldBeBeforeEndDate'); return $msg; } else { $rs = Database::query("SELECT id FROM $tbl_session WHERE name='" . Database::escape_string($name) . "'"); $exists = false; while ($row = Database::fetch_array($rs)) { if ($row['id'] != $id) { $exists = true; } } if ($exists) { $msg = get_lang('SessionNameAlreadyExists'); return $msg; } else { $sessionInfo = SessionManager::fetch($id); $descriptionCondition = null; if (array_key_exists('description', $sessionInfo)) { $descriptionCondition = ' description = "' . Database::escape_string($description) . '" ,'; } $showDescriptionCondition = null; if (array_key_exists('show_description', $sessionInfo)) { $showDescriptionCondition = ' show_description = "' . Database::escape_string($showDescription) . '" ,'; } $durationCondition = null; if (self::durationPerUserIsEnabled()) { if (empty($duration)) { $duration = null; } else { $date_start = '0000-00-00'; $date_end = "0000-00-00"; $duration = intval($duration); } $durationCondition = ' duration = "' . $duration . '" ,'; } $sql = "UPDATE $tbl_session SET name='" . Database::escape_string($name) . "', date_start='" . $date_start . "', date_end='" . $date_end . "', id_coach='" . $id_coach . "', nb_days_access_before_beginning = " . $nb_days_acess_before . ", nb_days_access_after_end = " . $nb_days_acess_after . ", session_category_id = " . $id_session_category . " , $descriptionCondition $showDescriptionCondition $durationCondition visibility= " . $id_visibility . " WHERE id='$id'"; Database::query($sql); return $id; } } }
$session_id = isset($_GET['session_id']) ? intval($_GET['session_id']) : null; $sessionField = new ExtraFieldValue('session'); $valueAllowVisitors = $sessionField->get_values_by_handler_and_field_variable($session_id, 'allow_visitors'); $allowVisitors = $valueAllowVisitors != false; if (!$allowVisitors) { // Only users who are logged in can proceed. api_block_anonymous_users(); } $this_section = SECTION_COURSES; $htmlHeadXtra[] = api_get_jqgrid_js(); $course_id = isset($_GET['course_id']) ? intval($_GET['course_id']) : null; Session::write('id_session', $session_id); // Clear the exercise session just in case Session::erase('objExercise'); $userId = api_get_user_id(); $session_info = SessionManager::fetch($session_id); $session_list = SessionManager::get_sessions_by_coach(api_get_user_id()); $course_list = SessionManager::get_course_list_by_session_id($session_id); // Getting all sessions where I'm subscribed /*$new_session_list = array(); if (!api_is_anonymous()) { $new_session_list = UserManager::get_personal_session_course_list(api_get_user_id()); } $user_course_list = array(); foreach ($new_session_list as $session_item) { $user_course_list[] = $session_item['code']; }*/ $userIsGeneralCoach = SessionManager::user_is_general_coach($userId, $session_id); $user_course_list = array(); foreach ($course_list as $course) { $status = SessionManager::get_user_status_in_course_session($userId, $course['real_id'], $session_id);
if ($session_info) { $url = api_get_path(WEB_CODE_PATH) . 'admin/resume_session.php?id_session=' . $session_info['id']; $destination = Display::url($session_info['name'], $url); //$destination = $destination; } } $row_style = 'style = " background-color: #ddd;"'; $course_link = Display::return_icon('course_na.gif', get_lang('BlockCoursesForThisUser')) . ' '; $moved_link = Display::return_icon('move_na.png', get_lang('ChangeUserSession')) . ' '; $delete_link = Display::return_icon('delete_na.png', get_lang('Delete')) . ' '; } else { $session_origin_info = SessionManager::get_session_rel_user_by_moved_to($id_session, $user['user_id']); if (!empty($session_origin_info)) { $moved_date = api_get_local_time($session_origin_info['moved_at']); } $session_info = SessionManager::fetch($session_origin_info['id_session']); $variation = SessionManager::get_session_change_user_reasons_variations_by_id($session_origin_info['moved_status'], 'from'); //$information = $reasons[$session_origin_info['moved_status']].$variation; $information .= $variation; if ($session_info) { $url = api_get_path(WEB_CODE_PATH) . 'admin/resume_session.php?id_session=' . $session_info['id']; $origin = Display::url($session_info['name'], $url); $url = api_get_path(WEB_CODE_PATH) . 'admin/resume_session.php?id_session=' . $id_session; //$destination = Display::url($session['name'], $url); //$destination = ' / '.$destination; } $delete_link = '<a href="' . api_get_self() . '?id_session=' . $id_session . '&action=delete&user='******'user_id'] . '" onclick="javascript:if(!confirm(\'' . get_lang('ConfirmYourChoice') . '\')) return false;">' . Display::return_icon('delete.png', get_lang('Delete')) . '</a>'; } $link_to_add_user_in_url = ''; if ($multiple_url_is_on) { if (isset($user['access_url_id']) && $user['access_url_id'] != $url_id) {
* none: No reason code * chargeback: A reversal has occurred on this transaction due to a chargeback by your customer. * guarantee: A reversal has occurred on this transaction due to your customer triggering a money-back guarantee. * buyer-complaint: A reversal has occurred on this transaction due to a complaint about the transaction from your customer. * refund: A reversal has occurred on this transaction because you have given the customer a refund. * other: A reversal has occurred on this transaction due to a reason not listed above. */ $reasonCode = $resArray["PAYMENTINFO_0_REASONCODE"]; // Insert the user information to activate the user if ($paymentStatus == "Completed") { $userId = $_SESSION['bc_user_id']; if ($_SESSION['bc_codetext'] === 'THIS_IS_A_SESSION') { $sessionId = $_SESSION['bc_code']; $all_session_information = SessionManager::fetch($sessionId); SessionManager::suscribe_users_to_session( $sessionId, array($userId), api_get_session_visibility($sessionId), false ); $url = Display::url( $all_session_information['name'], api_get_path(WEB_CODE_PATH).'session/index.php?session_id='.$sessionId ); $_SESSION['bc_message'] = 'EnrollToSessionXSuccessful'; $_SESSION['bc_url'] = $url; $_SESSION['bc_success'] = true; } else { $course_code = $_SESSION['bc_codetext'];