本文整理匯總了PHP中grade_tree::get_levels方法的典型用法代碼示例。如果您正苦於以下問題:PHP grade_tree::get_levels方法的具體用法?PHP grade_tree::get_levels怎麽用?PHP grade_tree::get_levels使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類grade_tree
的用法示例。
在下文中一共展示了grade_tree::get_levels方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: generate_jwc_xml
function generate_jwc_xml($jwc_courses, $export_users, $include_cats = false, $dryrun = true)
{
global $course, $output, $jwc, $DB, $USER, $nonexist_users;
if ($include_cats) {
$heading = '導出分項成績及總分到教務處';
} else {
$heading = '導出總分到教務處';
}
if ($dryrun) {
$heading .= '(模擬)';
} else {
$heading .= '(正式)';
}
echo $output->heading($heading);
//first make sure we have proper final grades - this must be done before constructing of the grade tree
grade_regrade_final_grades($course->id);
// 獲得成績類別和項信息
$tree = new grade_tree($course->id, true, true);
$levels = $tree->get_levels();
// 總分
$total_item = normalize_grade_item($levels[0][0]['object']->grade_item);
$sub_items = array();
$extra_items = array();
$items = array();
// 頂級成績分類和項
if (array_key_exists(1, $levels) && $include_cats) {
foreach ($levels[1] as $element) {
if ($element['type'] == 'item') {
$grade_item = normalize_grade_item($element['object']);
} else {
if ($element['type'] == 'category') {
$tmp = array_pop($element['children']);
$grade_item = normalize_grade_item($tmp['object']);
//用類別名做成績名
$grade_item->itemname = $element['object']->fullname;
} else {
// ignore unused fillers
continue;
}
}
if ($grade_item->grademax <= 0) {
// 不計分成績項/類別
continue;
}
if ($grade_item->aggregationcoef) {
// 額外加分
$extra_items[$grade_item->id] = $grade_item;
} else {
$sub_items[$grade_item->id] = $grade_item;
}
}
}
/// 驗證成績項是否符合教務處要求
$result = true;
// 總成績滿分必須是100分
if ($total_item->grademax != MAX_TOTAL_GRADE) {
echo $output->require_max_total_grade($total_item->grademax);
$result = false;
}
if ($include_cats) {
// 總成績算法必須是“簡單加權平均分”
$total_aggregation = $levels[0][0]['object']->aggregation;
if ($total_aggregation != GRADE_AGGREGATE_WEIGHTED_MEAN2 and $total_aggregation != GRADE_AGGREGATE_SUM) {
echo $output->require_aggregation($total_aggregation);
$result = false;
}
// 子成績項權重和必須為100
// 所有非加分的分項相加為100,才合法,除非不包含子類別
$weight_sum = 0;
foreach ($sub_items as $item) {
$weight_sum += $item->grademax;
}
if ($include_cats and $weight_sum != MAX_TOTAL_GRADE) {
echo $output->require_100_weight($weight_sum);
$result = false;
}
// 子成績項數量不能超過8
if (count($sub_items) > MAX_SUB_GRADE_COUNT) {
echo $output->require_max_subitems(count($sub_items));
$result = false;
}
// 加分成績項數量不能超過2
if (count($extra_items) > MAX_EXTRA_SUB_GRADE_COUNT) {
echo $output->require_max_extraitems(count($extra_items));
$result = false;
}
}
if (!$result) {
echo $output->modify_items_link();
return false;
}
$xml = new gradebook_xml();
if ($dryrun) {
echo $output->box_start();
echo $output->heading('可導出成績項', 3);
}
$itemtable = new html_table();
$itemtable->head = array('成績分項名稱', '權重', '加分');
foreach ($sub_items as $item) {
$itemtable->data[] = new html_table_row(array($item->itemname, $item->grademax . '%', '否'));
//.........這裏部分代碼省略.........