/** * 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; } }
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; } } }