function release_submitted_view($viewid, $assessmentdata, $teacherusername) { global $REMOTEWWWROOT, $USER; require_once 'view.php'; $view = new View($viewid); list($teacher, $authinstance) = find_remote_user($teacherusername, $REMOTEWWWROOT); db_begin(); foreach (plugins_installed('artefact') as $plugin) { safe_require('artefact', $plugin->name); $classname = generate_class_name('artefact', $plugin->name); if (is_callable($classname . '::view_release_external_data')) { call_static_method($classname, 'view_release_external_data', $view, $assessmentdata, $teacher ? $teacher->id : 0); } } // Release the view for editing $view->set('submittedhost', null); $view->set('submittedtime', null); $view->commit(); db_commit(); }
/** * Releases a submission to a remote host. * @param int $id A view or collection id * @param mixed $assessmentdata Assessment data from the remote host, for this assignment * @param string $teacherusername The username of the teacher who is releasing the assignment * @param boolean $iscollection Whether the $id is a view or a collection */ function release_submitted_view($id, $assessmentdata, $teacherusername, $iscollection = false) { global $REMOTEWWWROOT, $USER; list($teacher, $authinstance) = find_remote_user($teacherusername, $REMOTEWWWROOT); require_once 'view.php'; db_begin(); if ($iscollection) { require_once 'collection.php'; $collection = new Collection($id); $collection->release($teacher); } else { $view = new View($id); View::_db_release(array($id), $view->get('owner')); } // Provide each artefact plugin the opportunity to handle the remote submission release foreach (plugins_installed('artefact') as $plugin) { safe_require('artefact', $plugin->name); $classname = generate_class_name('artefact', $plugin->name); if (is_callable($classname . '::view_release_external_data')) { call_static_method($classname, 'view_release_external_data', $id, $assessmentdata, $teacher ? $teacher->id : 0, $iscollection); } } // Release the view for editing db_commit(); }