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; }
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; }
/** * 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'); } }