$filepath = optional_param('filepath', '/', PARAM_PATH); $user_context = get_context_instance(CONTEXT_USER, $USER->id); echo $OUTPUT->header(); // send headers // //NOTE TO ALL DEVELOPERS: this script must deal only with draft area of current user, it has to use only file_storage and no file_browser!! // switch ($action) { case 'dir': $data = new stdClass(); file_get_drafarea_folders($draftid, $filepath, $data); echo json_encode($data); die; case 'list': $filepath = optional_param('filepath', '/', PARAM_PATH); $data = repository::prepare_listing(file_get_drafarea_files($draftid, $filepath)); $info = file_get_draft_area_info($draftid); $data->filecount = $info['filecount']; $data->filesize = $info['filesize']; $data->tree = new stdClass(); file_get_drafarea_folders($draftid, '/', $data->tree); echo json_encode($data); die; case 'mkdir': $filepath = required_param('filepath', PARAM_PATH); $newdirname = required_param('newdirname', PARAM_FILE); $fs = get_file_storage(); $fs->create_directory($user_context->id, 'user', 'draft', $draftid, file_correct_filepath(file_correct_filepath($filepath) . $newdirname)); $return = new stdClass(); $return->filepath = $filepath; echo json_encode($return);
$listing['repo_id'] = $repo_id; echo json_encode($listing); break; case 'logout': $logout = $repo->logout(); $logout['repo_id'] = $repo_id; echo json_encode($logout); break; case 'searchform': $search_form['repo_id'] = $repo_id; $search_form['form'] = $repo->print_search(); $search_form['allowcaching'] = true; echo json_encode($search_form); break; case 'search': $search_result = repository::prepare_listing($repo->search($search_text, (int) $page)); $search_result['repo_id'] = $repo_id; $search_result['issearchresult'] = true; echo json_encode($search_result); break; case 'download': // validate mimetype $mimetypes = array(); if (is_array($accepted_types) and in_array('*', $accepted_types) or $accepted_types == '*') { $mimetypes = '*'; } else { foreach ($accepted_types as $type) { $mimetypes[] = mimeinfo('type', $type); } if (!in_array(mimeinfo('type', $saveas_filename), $mimetypes)) { throw new moodle_exception('invalidfiletype', 'repository', '', get_mimetype_description(array('filename' => $saveas_filename)));
public static function ajaxListFiles() { $draftIDs = explode(',', $_POST['draftIDs']); $files = array(); foreach ($draftIDs as $id) { $data = repository::prepare_listing(file_get_drafarea_files($id, '/')); if (!empty($data->list)) { foreach ($data->list as $f) { $files[] = $f->filename; } } } $out = array('draftIDs' => $draftIDs, 'files' => $files); header('Content-type: application/json'); echo json_encode($out); die; }