コード例 #1
0
ファイル: lib.php プロジェクト: nadavkav/moodle-mod_subcourse
/**
 * Create or update grade item and grades for given subcourse
 *
 * @access public
 * @param int $courseid     ID of referencing course (the course containing the instance of
 * subcourse)
 * @param int $subcourseid  ID of subcourse instance
 * @param int $refcourseid  ID of referenced course (the course to take grades from)
 * @param str $itemname     Set the itemname
 * @param bool $gradeitemonly If true, fetch only grade item info without grades
 * @param bool $reset Reset grades in gradebook
 * @return int 0 if ok, error code otherwise
 */
function subcourse_grades_update($courseid, $subcourseid, $refcourseid, $itemname = null, $gradeitemonly = false, $reset = false)
{
    global $CFG;
    $fetchedfields = subcourse_get_fetched_item_fields();
    if (!function_exists('grade_update')) {
        //workaround for buggy PHP versions
        require_once $CFG->libdir . '/gradelib.php';
    }
    $refgrades = subcourse_fetch_refgrades($subcourseid, $refcourseid, $gradeitemonly);
    if (!empty($refgrades->localremotescale)) {
        // unable to fetch remote grades - local scale is used in the remote course
        throw new subcourse_localremotescale_exception($subcourseid);
    }
    $params = array();
    foreach ($fetchedfields as $property) {
        if (!empty($refgrades->{$property})) {
            $params[$property] = $refgrades->{$property};
        }
    }
    if (!empty($itemname)) {
        $params['itemname'] = $itemname;
    }
    $grades = $refgrades->grades;
    if ($reset) {
        $params['reset'] = true;
        $grades = null;
    }
    return grade_update('mod/subcourse', $courseid, 'mod', 'subcourse', $subcourseid, 0, $grades, $params);
}
コード例 #2
0
/**
 * Create or update grade item and grades for given subcourse
 *
 * @access public
 * @param int $courseid     ID of referencing course (the course containing the instance of
 * subcourse)
 * @param int $subcourseid  ID of subcourse instance
 * @param int $refcourseid  ID of referenced course (the course to take grades from)
 * @param str $itemname     Set the itemname
 * @param bool $gradeitemonly If true, fetch only grade item info without grades
 * @param bool $reset Reset grades in gradebook
 * @return int GRADE_UPDATE_OK etc
 */
function subcourse_grades_update($courseid, $subcourseid, $refcourseid, $itemname = null, $gradeitemonly = false, $reset = false)
{
    global $DB;
    if (empty($refcourseid)) {
        return GRADE_UPDATE_FAILED;
    }
    if (!$DB->record_exists('course', array('id' => $refcourseid))) {
        return GRADE_UPDATE_FAILED;
    }
    $fetchedfields = subcourse_get_fetched_item_fields();
    $refgrades = subcourse_fetch_refgrades($subcourseid, $refcourseid, $gradeitemonly);
    if (!empty($refgrades->localremotescale)) {
        // unable to fetch remote grades - local scale is used in the remote course
        return GRADE_UPDATE_FAILED;
    }
    $params = array();
    foreach ($fetchedfields as $property) {
        if (!empty($refgrades->{$property})) {
            $params[$property] = $refgrades->{$property};
        }
    }
    if (!empty($itemname)) {
        $params['itemname'] = $itemname;
    }
    $grades = $refgrades->grades;
    if ($reset) {
        $params['reset'] = true;
        $grades = null;
    }
    return grade_update('mod/subcourse', $courseid, 'mod', 'subcourse', $subcourseid, 0, $grades, $params);
}