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();
}
Beispiel #2
0
/**
 * 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();
}