本文整理汇总了PHP中grade_item::is_calculated方法的典型用法代码示例。如果您正苦于以下问题:PHP grade_item::is_calculated方法的具体用法?PHP grade_item::is_calculated怎么用?PHP grade_item::is_calculated使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类grade_item
的用法示例。
在下文中一共展示了grade_item::is_calculated方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: get_grade_min_and_max
/**
* Returns the minimum and maximum number of points this grade is graded with respect to.
*
* @since Moodle 2.8.7, 2.9.1
* @return array A list containing, in order, the minimum and maximum number of points.
*/
protected function get_grade_min_and_max()
{
global $CFG;
$this->load_grade_item();
// When the following setting is turned on we use the grade_grade raw min and max values.
$minmaxtouse = grade_get_setting($this->grade_item->courseid, 'minmaxtouse', $CFG->grade_minmaxtouse);
// Check to see if the gradebook is frozen. This allows grades to not be altered at all until a user verifies that they
// wish to update the grades.
$gradebookcalculationsfreeze = get_config('core', 'gradebook_calculations_freeze_' . $this->grade_item->courseid);
// Gradebook is frozen, run through old code.
if ($gradebookcalculationsfreeze && (int) $gradebookcalculationsfreeze <= 20150627) {
// Only aggregate items use separate min grades.
if ($minmaxtouse == GRADE_MIN_MAX_FROM_GRADE_GRADE || $this->grade_item->is_aggregate_item()) {
return array($this->rawgrademin, $this->rawgrademax);
} else {
return array($this->grade_item->grademin, $this->grade_item->grademax);
}
} else {
// Only aggregate items use separate min grades, unless they are calculated grade items.
if ($this->grade_item->is_aggregate_item() && !$this->grade_item->is_calculated() || $minmaxtouse == GRADE_MIN_MAX_FROM_GRADE_GRADE) {
return array($this->rawgrademin, $this->rawgrademax);
} else {
return array($this->grade_item->grademin, $this->grade_item->grademax);
}
}
}
示例2: sub_test_grade_item_is_calculated
protected function sub_test_grade_item_is_calculated()
{
$grade_item = new grade_item($this->grade_items[1], false);
$this->assertTrue(method_exists($grade_item, 'is_calculated'));
$this->assertTrue($grade_item->is_calculated());
$grade_item = new grade_item($this->grade_items[0], false);
$this->assertFalse($grade_item->is_calculated());
}
示例3: auto_update_max
/**
* Some aggregation types may need to update their max grade.
*
* This must be executed after updating the weights as it relies on them.
*
* @return void
*/
private function auto_update_max()
{
global $DB;
if ($this->aggregation != GRADE_AGGREGATE_SUM) {
// not needed at all
return;
}
// Find grade items of immediate children (category or grade items) and force site settings.
$this->load_grade_item();
$depends_on = $this->grade_item->depends_on();
// Check to see if the gradebook is frozen. This allows grades to not be altered at all until a user verifies that they
// wish to update the grades.
$gradebookcalculationsfreeze = get_config('core', 'gradebook_calculations_freeze_' . $this->courseid);
// Only run if the gradebook isn't frozen.
if ($gradebookcalculationsfreeze && (int) $gradebookcalculationsfreeze <= 20150627) {
// Do nothing.
} else {
// Don't automatically update the max for calculated items.
if ($this->grade_item->is_calculated()) {
return;
}
}
$items = false;
if (!empty($depends_on)) {
list($usql, $params) = $DB->get_in_or_equal($depends_on);
$sql = "SELECT *\n FROM {grade_items}\n WHERE id {$usql}";
$items = $DB->get_records_sql($sql, $params);
}
if (!$items) {
if ($this->grade_item->grademax != 0 or $this->grade_item->gradetype != GRADE_TYPE_VALUE) {
$this->grade_item->grademax = 0;
$this->grade_item->grademin = 0;
$this->grade_item->gradetype = GRADE_TYPE_VALUE;
$this->grade_item->update('aggregation');
}
return;
}
//find max grade possible
$maxes = array();
foreach ($items as $item) {
if ($item->aggregationcoef > 0) {
// extra credit from this activity - does not affect total
continue;
} else {
if ($item->aggregationcoef2 <= 0) {
// Items with a weight of 0 do not affect the total.
continue;
}
}
if ($item->gradetype == GRADE_TYPE_VALUE) {
$maxes[$item->id] = $item->grademax;
} else {
if ($item->gradetype == GRADE_TYPE_SCALE) {
$maxes[$item->id] = $item->grademax;
// 0 = nograde, 1 = first scale item, 2 = second scale item
}
}
}
if ($this->can_apply_limit_rules()) {
// Apply droplow and keephigh.
$this->apply_limit_rules($maxes, $items);
}
$max = array_sum($maxes);
// update db if anything changed
if ($this->grade_item->grademax != $max or $this->grade_item->grademin != 0 or $this->grade_item->gradetype != GRADE_TYPE_VALUE) {
$this->grade_item->grademax = $max;
$this->grade_item->grademin = 0;
$this->grade_item->gradetype = GRADE_TYPE_VALUE;
$this->grade_item->update('aggregation');
}
}