Пример #1
0
/**
 * Add url instance.
 * @param object $data
 * @param object $mform
 * @return int new url instance id
 */
function morsle_add_instance($data, $mform)
{
    global $CFG, $DB, $COURSE, $USER;
    require_once $CFG->dirroot . '/mod/morsle/locallib.php';
    require_once $CFG->dirroot . '/google/lib.php';
    require_once $CFG->dirroot . '/repository/morsle/lib.php';
    $username = '******';
    $morsle = new repository_morsle();
    $morsle->get_token('drive');
    $morsle->revoke_token();
    $morsle->get_token('drive');
    $morsle->domain = '@luther.edu';
    $morsle->useremail = strtolower($COURSE->shortname) . $morsle->domain;
    $parameters = array();
    for ($i = 0; $i < 100; $i++) {
        $parameter = "parameter_{$i}";
        $variable = "variable_{$i}";
        if (empty($data->{$parameter}) or empty($data->{$variable})) {
            continue;
        }
        $parameters[$data->{$parameter}] = $data->{$variable};
    }
    $data->parameters = serialize($parameters);
    $displayoptions = array();
    if ($data->display == RESOURCELIB_DISPLAY_POPUP) {
        $displayoptions['popupwidth'] = $data->popupwidth;
        $displayoptions['popupheight'] = $data->popupheight;
    }
    if (in_array($data->display, array(RESOURCELIB_DISPLAY_AUTO, RESOURCELIB_DISPLAY_EMBED, RESOURCELIB_DISPLAY_FRAME))) {
        $displayoptions['printheading'] = (int) (!empty($data->printheading));
        $displayoptions['printintro'] = (int) (!empty($data->printintro));
    }
    $data->displayoptions = serialize($displayoptions);
    $data->externalurl = morsle_fix_submitted_url($data->externalurl);
    // get the docid
    $docid = get_doc_id($data->externalurl);
    // get the read-only folder id
    //    $morsle = new repository_morsle();
    $title = strtolower($COURSE->shortname) . '-read';
    $owner = strtolower($COURSE->shortname) . '@' . $morsle->domain;
    $collectionid = get_collection($morsle, $title);
    // share resource with course user
    //	$base_feed = $morsle->docs_feed . $docid . '/acl';
    assign_permissions($morsle, $docid, 'writer', $USER->email, $base_feed);
    // link resource to the read-only folder
    add_file_tocollection($morsle, $docid, $collectionid);
    $data->timemodified = time();
    $data->id = $DB->insert_record('morsle', $data);
    return $data->id;
}