function course_enroll in Course 7
Same name and namespace in other branches
- 7.2 course.module \course_enroll()
Enrolls a user in a course.
Parameters
object $node: By reference. The course node.
object $user: By reference. The enrolling user.
string $from: The type of enrollment, if applicable. {course_enrollment}.enrollmenttype.
string $code: The access code used to enroll. {course_enrollment}.code.
integer $status: The enrollment status. {course_enrollment}.status.
23 calls to course_enroll()
- CourseAccessTestCase::testDurationExpiration in tests/
CourseAccessTestCase.test - Test the enrollment duration. This does not test the enrollment end date being set correctly.
- CourseAccessTestCase::testReleaseExpiration in tests/
CourseAccessTestCase.test - Test the open/close date functionality.
- CourseEnrollmentTestCase::testCourseEnrollment in tests/
CourseEnrollmentTestCase.test - Test for enrollment access and timestamping.
- CourseGradeTestCase::testCourseFinalGrade in tests/
CourseGradeTestCase.test - Test that the final grade is calculated correctly.
- CourseGradeTestCase::testCourseGradeAccess in tests/
CourseGradeTestCase.test - Test that the course grade access plugin functions properly.
File
- ./
course.module, line 896 - course.module Core functionality for Courses.
Code
function course_enroll($node, $account, $from = NULL, $code = NULL, $status = 1) {
if (!$account) {
global $user;
$account = $user;
}
if (course_node_is_course($node)) {
$enrollment = entity_create('course_enrollment', array(
'nid' => $node->nid,
'uid' => $account->uid,
'enrollmenttype' => $from,
'status' => $status,
'code' => $code,
'type' => $node->course['enrollment_type'],
));
$watchdog_variables = array(
'!uid' => $account->uid,
'!nid' => $node->nid,
);
if (!course_enrollment_check($node->nid, $account->uid)) {
// User is not enrolled yet.
watchdog('course_enroll', 'Enrolling user !uid into !nid.', $watchdog_variables);
$enrollment
->save();
}
// Flush caches.
course_access_course('take', $node, $account, TRUE);
return $enrollment;
}
else {
return FALSE;
}
}