. /** * File manager support * * @package core * @subpackage file * @copyright 2010 Dongsheng Cai * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ define('AJAX_SCRIPT', true); require('../config.php'); require_once($CFG->libdir.'/filelib.php'); $action = optional_param('action', 'list', PARAM_ALPHA); $PAGE->set_context(get_system_context()); require_login(); echo $OUTPUT->header(); // send headers $err = new stdClass(); if (isguestuser()) { $err->error = get_string('noguest'); die(json_encode($err)); } switch ($action) { // used by course file tree viewer case 'getfiletree': $contextid = required_param('contextid', PARAM_INT); $component = required_param('component', PARAM_COMPONENT); $filearea = required_param('filearea', PARAM_AREA); $itemid = required_param('itemid', PARAM_INT); $filepath = required_param('filepath', PARAM_PATH); $browser = get_file_browser(); $fileinfo = $browser->get_file_info(get_context_instance_by_id($contextid), $component, $filearea, $itemid, $filepath); $children = $fileinfo->get_children(); $tree = array(); foreach ($children as $child) { $filedate = $child->get_timemodified(); $filesize = $child->get_filesize(); $mimetype = $child->get_mimetype(); $params = $child->get_params(); $url = new moodle_url('/files/index.php', $params); $fileitem = array( 'params'=>$params, 'filename'=>$child->get_visible_name(), 'filedate'=>$filedate ? userdate($filedate) : '', 'filesize'=>$filesize ? display_size($filesize) : '', ); if ($child->is_directory()) { $fileitem['isdir'] = true; $fileitem['url'] = $url->out(false); $fileitem['icon'] = $OUTPUT->pix_icon('f/folder', get_string('icon')); } else { $fileitem['url'] = $child->get_url(); $fileitem['icon'] = $OUTPUT->pix_icon('f/'.mimeinfo('icon', $child->get_visible_name()), get_string('icon')); } $tree[] = $fileitem; } echo json_encode($tree); break; default: break; }