Пример #1
0
function ouwiki_update_instance($data, $mform)
{
    global $CFG, $DB;
    $data->id = $data->instance;
    // Update main record.
    $DB->update_record('ouwiki', $data);
    // Set up null values
    $nullvalues = array('editbegin', 'editend', 'timeout');
    foreach ($nullvalues as $nullvalue) {
        if (empty($data->{$nullvalue})) {
            unset($data->{$nullvalue});
            $DB->set_field('ouwiki', $nullvalue, null, array('id' => $data->id));
        }
    }
    if (strlen(preg_replace('/(<.*?>)|(&.*?;)|\\s/', '', $data->intro)) == 0) {
        unset($data->intro);
        $DB->set_field('ouwiki', 'intro', null, array('id' => $data->id));
    }
    ouwiki_grade_item_update($data);
    if (!($cm = get_coursemodule_from_id('ouwiki', $data->coursemodule))) {
        print_error('invalidcoursemodule');
    }
    // Checking course instance.
    $course = $DB->get_record('course', array('id' => $data->course), '*', MUST_EXIST);
    if ($filename = $mform->get_new_filename('template_file')) {
        // Delete any previous template files.
        $cmid = $data->coursemodule;
        $context = context_module::instance($cmid);
        $fs = get_file_storage();
        $fs->delete_area_files($context->id, 'mod_ouwiki', 'template', $data->id);
        // Add template file.
        $file = $mform->save_stored_file('template_file', $context->id, 'mod_ouwiki', 'template', $data->id, '/', $filename);
        $DB->set_field('ouwiki', 'template', '/' . $file->get_filename(), array('id' => $data->id));
        // Check for empty wikis (i.e. wikis without a start page already created).
        $subwikis = ouwiki_get_subwikis($data->id);
        $ouwiki = $DB->get_record_select('ouwiki', 'id = ?', array($data->id));
        foreach ($subwikis as $subwiki) {
            if (!ouwiki_subwiki_content_exists($subwiki->id)) {
                // Amend any empty wikis from template.
                ouwiki_init_pages($course, $cm, $ouwiki, $subwiki);
            }
        }
    }
    return true;
}
Пример #2
0
function ouwiki_update_instance($data, $mform)
{
    global $CFG, $DB;
    $data->id = $data->instance;
    // Update main record
    unset($data->template);
    $DB->update_record('ouwiki', $data);
    // Set up null values
    $nullvalues = array('editbegin', 'editend', 'timeout');
    foreach ($nullvalues as $nullvalue) {
        if (empty($data->{$nullvalue})) {
            unset($data->{$nullvalue});
            $DB->set_field('ouwiki', $nullvalue, null, array('id' => $data->id));
        }
    }
    if (strlen(preg_replace('/(<.*?>)|(&.*?;)|\\s/', '', $data->intro)) == 0) {
        unset($data->intro);
        $DB->set_field('ouwiki', 'intro', null, array('id' => $data->id));
    }
    ouwiki_grade_item_update($data);
    return true;
}
Пример #3
0
/**
 * Grades users from the participation.php page
 *
 * @param array $newgrades
 * @param object $cm
 * @param object $ouwiki
 * @param object $course
 */
function ouwiki_update_grades($newgrades, $cm, $ouwiki, $course)
{
    global $CFG, $SESSION;
    require_once $CFG->libdir . '/gradelib.php';
    $grading_info = grade_get_grades($course->id, 'mod', 'ouwiki', $ouwiki->id, array_keys($newgrades));
    foreach ($grading_info->items[0]->grades as $key => $grade) {
        if (array_key_exists($key, $newgrades)) {
            if ($newgrades[$key] != $grade->grade) {
                if ($newgrades[$key] == -1) {
                    // no grade
                    $grade->rawgrade = null;
                } else {
                    $grade->rawgrade = $newgrades[$key];
                }
                $grade->userid = $key;
                $ouwiki->cmidnumber = $cm->id;
                ouwiki_grade_item_update($ouwiki, $grade);
            }
        }
    }
    // add a message to display to the page
    if (!isset($SESSION->ouwikigradesupdated)) {
        $SESSION->ouwikigradesupdated = get_string('gradesupdated', 'ouwiki');
    }
}