dae4d8ea5dce4f0ccf9627e77245a67c42056d9f
[moodle.git] / files / index.php
1 <?php
3 // This file is part of Moodle - http://moodle.org/
4 //
5 // Moodle is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // Moodle is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
18 /**
19  * Moodle file tree viewer based on YUI2 Treeview
20  *
21  * @package    core
22  * @subpackage file
23  * @copyright  2010 Dongsheng Cai <dongsheng@moodle.com>
24  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25  */
27 require('../config.php');
29 $contextid  = optional_param('contextid', SYSCONTEXTID, PARAM_INT);
30 $component  = optional_param('component', '', PARAM_ALPHAEXT);
31 $filearea   = optional_param('filearea', '', PARAM_ALPHAEXT);
32 $itemid     = optional_param('itemid', -1, PARAM_INT);
33 $filepath   = optional_param('filepath', '', PARAM_PATH);
34 $filename   = optional_param('filename', '', PARAM_FILE);
36 $PAGE->set_url('/files/index.php', array('contextid'=>$contextid, 'component'=>$component, 'filearea'=>$filearea, 'itemid'=>$itemid, 'filepath'=>$filepath, 'filename'=>$filename));
38 if ($component === '') {
39     $component = null;
40 }
42 if ($filearea === '') {
43     $filearea = null;
44 }
46 if ($itemid < 0) {
47     $itemid = null;
48 }
50 if ($filepath === '') {
51     $filepath = null;
52 }
54 if ($filename === '') {
55     $filename = null;
56 }
58 list($context, $course, $cm) = get_context_info_array($contextid);
59 $PAGE->set_context($context);
61 require_login($course, false, $cm);
62 require_capability('moodle/course:managefiles', $context);
64 $browser = get_file_browser();
66 $file_info = $browser->get_file_info($context, $component, $filearea, $itemid, $filepath, $filename);
68 $strfiles = get_string("files");
69 if ($node = $PAGE->settingsnav->find('coursefiles', navigation_node::TYPE_SETTING)) {
70     $node->make_active();
71 } else {
72     $PAGE->navbar->add($strfiles);
73 }
75 $PAGE->set_title("$SITE->shortname: $strfiles");
76 $PAGE->set_heading($SITE->fullname);
78 if ($context->contextlevel == CONTEXT_MODULE) {
79     $PAGE->set_pagelayout('incourse');
80 } else if ($context->contextlevel == CONTEXT_COURSE) {
81     $PAGE->set_pagelayout('course');
82 } else {
83     $PAGE->set_pagelayout('admin');
84 }
86 $output = $PAGE->get_renderer('core', 'files');
88 echo $output->header();
89 echo $output->box_start();
91 if ($file_info) {
92     $options = array();
93     //$options['visible_areas'] = array('backup'=>array('section', 'course'), 'course'=>array('legacy'), 'user'=>array('backup'));
94     echo $output->files_tree_viewer($file_info, $options);
95 } else {
96     notify(get_string('nofilesavailable', 'repository'));
97 }
99 echo $output->box_end();
101 echo $output->footer();