Exemplo n.º 1
0
/**
 * helper to unregister a class (and recursively unregister all its subclasses) from a course
 * @param Claro_Class $claroClass
 * @param Claro_Course $courseObj
 * @param Claro_BatchRegistrationResult $result
 * @return Claro_BatchRegistrationResult
 * @since Claroline 1.11.9
 */
function object_unregister_class_from_course($claroClass, $courseObj, $result)
{
    if ($claroClass->isRegisteredToCourse($courseObj->courseId)) {
        $classUserIdList = $claroClass->getClassUserList()->getClassUserIdList();
        $courseBatchRegistretion = new Claro_BatchCourseRegistration($courseObj);
        $courseBatchRegistretion->removeUserIdListFromCourse($classUserIdList, $claroClass);
        if ($claroClass->hasSubclasses()) {
            pushClaroMessage("Class has subclass", 'debug');
            // recursion !
            foreach ($claroClass->getSubClassesIterator() as $subClass) {
                pushClaroMessage("Process subclass{$subClass->getName()}", 'debug');
                $result = object_unregister_class_from_course($subClass, $courseObj, $result);
            }
        } else {
            pushClaroMessage("Class has no subclass", 'debug');
        }
        $claroClass->unregisterFromCourse($courseObj->courseId);
        return $result;
    } else {
        return $result;
    }
}
Exemplo n.º 2
0
 public function removeUser($keepTrackingData = true, $moduleDataToPurge = array())
 {
     if (!$this->isUnregistrationAllowed()) {
         return false;
     }
     if (!$this->isUserRegisteredToCourse()) {
         $this->status = self::STATUS_SYSTEM_ERROR;
         $this->errorMessage = get_lang('User not found in course');
         return false;
     } else {
         $batchRegistration = new Claro_BatchCourseRegistration($this->course);
         $batchRegistration->removeUserIdListFromCourse(array($this->userAuthProfile->getUserId()), $this->class, $keepTrackingData, $moduleDataToPurge, true);
         if ($batchRegistration->hasError()) {
             Console::error(var_export($batchRegistration->getErrorLog(), true));
             return false;
         } else {
             return true;
         }
     }
 }