Beispiel #1
0
$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);
Beispiel #2
0
     $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;
 }