Example #1
0
/**
* @desc Creates an auto_login link to the URL of the webwork problem set pointed to by wwassignmentid for the current user. (will force set creation if necessary)
* @param string $wwassignmentid The Moodle ID of the wwassignment.
* @return URL to the assignment.
*/
function wwassignment_view_link($wwassignmentid)
{
    global $COURSE, $USER;
    $webworkclient = new webwork_client();
    $webworkcourse = _wwassignment_mapped_course($COURSE->id, false);
    $webworkset = _wwassignment_mapped_set($wwassignmentid, false);
    $webworkuser = $webworkclient->mapped_user($webworkcourse, $USER->username);
    if ($webworkuser == -1) {
        $tempuser = $USER;
        $newuser = $webworkclient->create_user($webworkcourse, $tempuser);
    }
    $webworksetuser = $webworkclient->mapped_user_set($webworkcourse, $webworkuser, $webworkset);
    if ($webworksetuser == -1) {
        $newsetuser = $webworkclient->create_user_set($webworkcourse, $webworkuser, $webworkset);
    }
    $key = $webworkclient->login_user($webworkcourse, $webworkuser, false);
    return _wwassignment_link_to_set_auto_login($webworkcourse, $webworkset, $webworkuser, $key);
}
Example #2
0
/**
* @desc Creates an auto_login link to the URL of the webwork problem set pointed to by wwassignmentid for the current user. (will force set creation if necessary)
* @param string $wwassignmentid The Moodle ID of the wwassignment.
* @return URL to the assignment.
*/
function wwassignment_view_link($wwassignmentid)
{
    global $COURSE, $USER;
    $webworkclient = webwork_client::get_instance();
    $webworkcourse = _wwassignment_mapped_course($COURSE->id, false);
    $webworkset = _wwassignment_mapped_set($wwassignmentid, false);
    $webworkuser = $webworkclient->mapped_user($webworkcourse, $USER->username);
    if ($webworkuser == -1) {
        error_log(get_string("user_not_mapped", "wwassignment"));
        $newuser = $webworkclient->create_user($webworkcourse, $USER);
        $webworkuser = $webworkclient->mapped_user($webworkcourse, $USER->username, false);
    }
    $webworksetuser = $webworkclient->mapped_user_set($webworkcourse, $webworkuser, $webworkset);
    if ($webworksetuser == -1) {
        error_log(get_string("set_user_not_mapped", "wwassignment"));
        //try and do it now
        $newsetuser = $webworkclient->create_user_set($webworkcourse, $webworkuser, $webworkset);
        //AGAIN FOR GOOD MEASURE
        $webworksetuser = $webworkclient->mapped_set_user($webworkcourse, $webworkuser, $webworkset, false);
    }
    $key = $webworkclient->login_user($webworkcourse, $webworkuser, false);
    return _wwassignment_link_to_set_auto_login($webworkcourse, $webworkset, $webworkuser, $key);
}
Example #3
0
    # this allows guests to view webwork (signed in as user guest)
    #FIXME  -- replace this with a method that uses the automatic guest sign in on webwork.
    // print_error('Guests cannot view WeBWorK Problem Sets');
}
//force login
$courseid = $course->id;
$wwassignmentid = $wwassignment->id;
require_login($courseid);
//webwork code
$wwcoursename = _wwassignment_mapped_course($courseid, false);
$wwusername = $USER->username;
$wwsetname = $wwassignment->webwork_set;
_wwassignment_mapcreate_user($wwcoursename, $wwusername);
_wwassignment_mapcreate_user_set($wwcoursename, $wwusername, $wwsetname);
$wwkey = _wwassignment_login_user($wwcoursename, $wwusername);
$wwsetlink = _wwassignment_link_to_set_auto_login($wwcoursename, $wwsetname, $wwusername, $wwkey);
add_to_log($course->id, "wwassignment", "view", "view.php?id={$cm->id}", "{$wwassignmentid}", _wwassignment_cmid());
/// Print the page header
if ($course->category) {
    $navigation = "<a href=\"../../course/view.php?id={$course->id}\">{$course->shortname}</a> ->";
}
$strwwassignments = get_string("modulenameplural", "wwassignment");
$strwwassignment = get_string("modulename", "wwassignment");
print_header("{$course->shortname}: {$wwassignment->name}", "{$course->fullname}", "{$navigation} <a href='index.php?id={$course->id}'>{$strwwassignments}</a> -> {$wwassignment->name}", "", "", true, update_module_button($cm->id, $course->id, $strwwassignment), navmenu($course, $cm));
/// Print the main part of the page
// Print webwork in iframe and link to escape to have webwork in a single window
print "<p style='font-size: smaller; color: #aaa;'>" . get_string("iframeNoShow-1", "wwassignment") . "<a href='{$wwsetlink}'>" . get_string("iframeNoShow-2", "wwassignment") . "</a><p align='center'></iframe></p>\n";
print "<iframe id='wwPage' src='{$wwsetlink}' frameborder='1' " . "width='" . $CFG->wwassignment_iframewidth . "' " . "height='" . $CFG->wwassignment_iframeheight . "'>";
print "<script>ww.Init(" . isteacher($course->id) . ")</script>";
/// Finish the page
print_footer($course);