示例#1
0
/**
 * unsubscribe a specific user from a specific course
 *
 *
 * @param  int     $user_id        user ID from the course_user table
 * @param  mixed (string or array) $courseCodeList course sys code
 * @param  boolean $force  true  possible to remove a course admin from course
 *                        (default false)
 * @param  boolean $deleteTrackingData (default false)
 *
 * @return boolean TRUE        if unsubscribtion succeed
 *         boolean FALSE       otherwise.
 */
function user_remove_from_course($userId, $courseCodeList = array(), $force = false, $delTrackData = false, $class_id = null)
{
    if (!is_array($courseCodeList)) {
        $courseCodeList = array($courseCodeList);
    }
    if ($class_id) {
        $claroClass = new Claro_Class();
        $claroClass->load($class_id);
    } else {
        $claroClass = null;
    }
    $allWorksWell = true;
    foreach ($courseCodeList as $courseCode) {
        $course = new Claro_Course($courseCode);
        $course->load();
        $userCourseRegistration = new Claro_CourseUserRegistration(AuthProfileManager::getUserAuthProfile($userId), $course);
        if ($force) {
            $userCourseRegistration->forceUnregistrationOfManager();
        }
        if (!is_null($claroClass)) {
            $userCourseRegistration->setClass($claroClass);
        }
        $keepTrackingData = !$delTrackData;
        if (!$userCourseRegistration->removeUser($keepTrackingData, array())) {
            Console::warning("Cannot remove user {$userId} from {$courseCode}");
            $allWorksWell = false;
        }
    }
    return $allWorksWell;
}
示例#2
0
文件: courses.php 项目: rhertzog/lcs
    $displayMode = DISPLAY_MESSAGE_SCREEN;
}
// end if ($cmd == 'exUnreg')
/*----------------------------------------------------------------------------
Subscribe to a course
----------------------------------------------------------------------------*/
if ($cmd == 'exReg') {
    $registrationKey = isset($_REQUEST['registrationKey']) ? $_REQUEST['registrationKey'] : null;
    $categoryId = isset($_REQUEST['categoryId']) ? $_REQUEST['categoryId'] : null;
    $courseObj = new Claro_Course($courseCode);
    $courseObj->load();
    $courseRegistration = new Claro_CourseUserRegistration(AuthProfileManager::getUserAuthProfile($userId), $courseObj, $registrationKey, $categoryId);
    if (!empty($classId)) {
        $claroClass = new Claro_Class();
        $claroClass->load($classId);
        $courseRegistration->setClass($claroClass);
    }
    if ($courseRegistration->addUser()) {
        $claroline->log('COURSE_SUBSCRIBE', array('user' => $userId, 'course' => $courseCode));
        $displayMode = DISPLAY_MESSAGE_SCREEN;
        if (claro_get_current_user_id() != $uidToEdit) {
            // Message for admin
            $dialogBox->success(get_lang('The user has been enroled to the course'));
        } else {
            $dialogBox->success(get_lang('You\'ve been enroled on the course'));
        }
        $properties = array();
        if ($asTeacher && claro_is_platform_admin()) {
            $properties['isCourseManager'] = 1;
            $properties['role'] = get_lang('Course manager');
            $properties['tutor'] = 1;