當前位置: 首頁>>代碼示例>>PHP>>正文


PHP grade_tree::get_levels方法代碼示例

本文整理匯總了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 . '%', '否'));
//.........這裏部分代碼省略.........
開發者ID:hit-moodle,項目名稱:moodle-grade-export_jwc,代碼行數:101,代碼來源:index.php


注:本文中的grade_tree::get_levels方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。