grade.inc in Course 6
File
plugins/course/access/grade.inc
View source
<?php
$plugin = array(
'title' => t('Graded-based access'),
'description' => t('Controls access by grade'),
'handler' => array(
'class' => 'CourseObjectAccessGrade',
),
);
class CourseObjectAccessGrade extends CourseObjectAccess {
public function optionsDefinition() {
$defaults = parent::optionsDefinition();
$defaults += array(
'course_grade' => NULL,
'course_grade_hidden' => NULL,
);
return $defaults;
}
function take() {
$config = $this
->getOptions();
if ($this
->getCourseObject()
->getCourse()
->getTracker()
->getOption('grade_result') >= $config['course_grade']) {
return TRUE;
}
else {
$this
->getCourseObject()
->setAccessMessage('grade', t('You must have a grade of at least @grade% to take this activity.', array(
'@grade' => $this
->getOption('course_grade'),
)));
return FALSE;
}
}
function see() {
if (!$this
->take() && $this
->getOption('course_grade_hidden')) {
return FALSE;
}
}
function view() {
return $this
->take();
}
function optionsForm() {
$form = array();
$config = $this
->getOptions();
$form['course_grade'] = array(
'#title' => t('Course grade required'),
'#type' => 'textfield',
'#size' => 4,
'#description' => t('The user will not be able to access this object until this course grade is met.'),
'#default_value' => $config['course_grade'],
);
$form['course_grade_hidden'] = array(
'#title' => t('Hide until grade met'),
'#description' => t('The user will not see this object until the course grade is met.'),
'#type' => 'checkbox',
'#default_value' => $config['course_grade_hidden'],
);
return $form;
}
}