3 require_once('../config.php');
4 require_once('lib.php');
6 $CFG->repository_cache_expire = 60*60;
8 $id = optional_param('id', 1, PARAM_INT);
10 $action = optional_param('action', '', PARAM_RAW);
12 $search = optional_param('s', '', PARAM_RAW);
13 // files to be downloaded
14 $file = optional_param('file', '', PARAM_RAW);
15 $title = optional_param('title', '', PARAM_RAW);
16 $p = optional_param('p', '', PARAM_RAW);
18 if(!$repository = $DB->get_record('repository', array('id'=>$id))) {
20 $err->e = get_string('invalidrepositoryid', 'repository');
21 die(json_encode($err));
24 if(file_exists($CFG->dirroot.'/repository/'.
25 $repository->repositorytype.'/repository.class.php'))
27 require_once($CFG->dirroot.'/repository/'.
28 $repository->repositorytype.'/repository.class.php');
29 $classname = 'repository_' . $repository->repositorytype;
31 $repo = new $classname($id, SITEID, array('ajax'=>true));
32 } catch (repository_exception $e){
34 $err->e = $e->getMessage();
35 die(json_encode($err.time()));
39 $err->e = get_string('invalidplugin', 'repository');
40 die(json_encode($err));
43 if($action == 'list') {
46 echo json_encode($repo->get_listing($p));
47 } else if(!empty($search)) {
48 echo json_encode($repo->get_listing('', $search));
50 echo json_encode($repo->get_listing());
52 } catch (repository_exception $e) {
54 $err->e = $e->getMessage();
55 die(json_encode($err));
58 } elseif($action == 'download') {
59 $ret = $repo->get_file($file, $title);
61 // Need to communicate with FILE API
62 // Copy the tmp file to final location
64 echo json_encode($ret);
65 } catch (repository_exception $e){
67 $err->e = $e->getMessage();
68 die(json_encode($err));
72 echo json_encode($repo->print_login());
73 } catch (repository_exception $e){
75 $err->e = $e->getMessage();
76 die(json_encode($err));