* @param string $filearea file area
* @return array information of file in file pool
*/
- public static function move_to_filepool($path, $name, $itemid, $filearea = 'user_draft') {
+ public static function move_to_filepool($path, $name, $itemid, $filepath = '/', $filearea = 'user_draft') {
global $DB, $CFG, $USER, $OUTPUT;
+ if ($filepath !== '/') {
+ $filepath = trim($filepath, '/');
+ $filepath = '/'.$filepath.'/';
+ }
$context = get_context_instance(CONTEXT_USER, $USER->id);
$now = time();
$entry = new object();
$entry->filearea = $filearea;
$entry->contextid = $context->id;
$entry->filename = $name;
- //$entry->filepath = '/'.uniqid().'/';
- $entry->filepath = '/';
+ $entry->filepath = $filepath;
$entry->timecreated = $now;
$entry->timemodified = $now;
$entry->userid = $USER->id;
*/
public static function store_to_filepool($elname, $filearea='user_draft', $filepath='/', $itemid='', $filename = '', $override = false) {
global $USER;
+
+ if ($filepath !== '/') {
+ $filepath = trim($filepath, '/');
+ $filepath = '/'.$filepath.'/';
+ }
+
if (!isset($_FILES[$elname])) {
return false;
}
}
params['env']=fp.env;
params['file']=file;
+ params['savepath']=fp.savepath;
params['title']=title;
params['sesskey']=moodle_cfg.sesskey;
params['ctx_id']=fp_config.contextid;
moodle_cfg.wwwroot+'/repository/ws.php?action=upload&itemid='+fp.itemid
+'&sesskey='+moodle_cfg.sesskey
+'&ctx_id='+fp_config.contextid
+ +'&savepath='+fp.savepath
+'&repo_id='+u.repo_id
+'&client_id='+client_id,
repository_client.upload_cb);
r = new repository_client();
r.env = params.env;
r.target = params.target;
+ r.savepath = params.savepath;
if(params.itemid){
r.itemid = params.itemid;
} else if(tinyMCE && id2itemid[tinyMCE.selectedInstance.editorId]){
global $_FILES, $SESSION, $action, $CFG;
parent::__construct($repositoryid, $context, $options);
$itemid = optional_param('itemid', '', PARAM_INT);
+ $filepath = optional_param('savepath', '/', PARAM_PATH);
if($action=='upload'){
- $filepath = '/';
$this->info = repository::store_to_filepool('repo_upload_file', 'user_draft', $filepath, $itemid);
}
}
$ctx_id = optional_param('ctx_id', SITEID, PARAM_INT); // context ID
$repo_id = optional_param('repo_id', 1, PARAM_INT); // repository ID
$req_path = optional_param('p', '', PARAM_RAW); // path
+ $save_path = optional_param('savepath', '/', PARAM_PATH);
$callback = optional_param('callback', '', PARAM_CLEANHTML);
$search_text = optional_param('s', '', PARAM_CLEANHTML);
echo json_encode($info);
} else {
// normal file path name
- $info = repository::move_to_filepool($filepath, $title, $itemid);
+ $info = repository::move_to_filepool($filepath, $title, $itemid, $save_path);
$info['client_id'] = $client_id;
echo json_encode($info);
}