/** * Handle a file that has been uploaded * * @param object $uploadinfo details of the file / content that has been uploaded * @return int instance id of the newly created mod */ function equella_dndupload_handle($uploadinfo) { global $USER; $fs = get_file_storage(); // Gather the required info. $courseid = $uploadinfo->course->id; $coursemodule = $uploadinfo->coursemodule; $usercontext = context_user::instance($USER->id); $draftfiles = $fs->get_area_files($usercontext->id, 'user', 'draft', $uploadinfo->draftitemid, 'id', false); $moduleid = null; foreach ($draftfiles as $file) { $handle = $file->get_content_file_handle(); // pushing files to equella $params = array(); $params['moodlecoursefullname'] = $uploadinfo->course->fullname; $params['moodlecourseshortname'] = $uploadinfo->course->shortname; $params['moodlecourseid'] = $uploadinfo->course->id; $params['moodlecourseidnumber'] = $uploadinfo->course->idnumber; $params['filesize'] = $file->get_filesize(); $mimetype = $file->get_mimetype(); $info = equella_rest_api::contribute_file_with_shared_secret($file->get_filename(), $handle, $params); if (isset($info->error)) { throw new equella_exception($info->error_description); } $modulename = ''; if (!empty($info->name)) { $modulename = $info->name; } else { if (!empty($info->description)) { $modulename = $info->description; } else { $modulename = $info->uuid; } } $eqresource = new stdClass(); $eqresource->course = $courseid; $eqresource->name = $modulename; $eqresource->intro = $info->description; $eqresource->introformat = FORMAT_HTML; $eqresource->mimetype = $mimetype; $eqresource->filename = $file->get_filename(); $item = array_pop($info->attachments); $eqresource->attachmentuuid = $item->uuid; $eqresource->url = $item->links->view; try { $eqresourceid = equella_add_instance($eqresource, null); } catch (Exception $ex) { throw new equella_exception('Failed to create EQUELLA resource.'); } } return $eqresourceid; }
// You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. require_once dirname(dirname(__DIR__)) . '/config.php'; require_once dirname(dirname(__DIR__)) . '/lib/filelib.php'; require_login(); // / Parameters $code = required_param('code', PARAM_ALPHANUMEXT); // Repository ID require_once 'equella_rest_api.php'; $redirect_url = equella_rest_api::get_redirect_url(); $endpoint = equella_rest_api::get_end_point(); if (empty($CFG->equella_oauth_client_id)) { throw new moodle_exception('equella client id not set'); } $options = array('client_id' => $CFG->equella_oauth_client_id, 'code' => $code, 'endpoint' => $endpoint, 'redirect_uri' => $redirect_url->out()); $info = equella_rest_api::get_access_token($options); if (empty($info->access_token)) { die($info->error_description); } $token = $info->access_token; try { $bool = set_config('equella_oauth_access_token', $token); } catch (Exception $ex) { } $modulesettingurl = new moodle_url('/admin/settings.php', array('section' => 'modsettingequella')); ?> <html> <head> <script type="text/javascript"> if (window.opener) { // refresh parent window