From c84cea17b3af833efe3c1ddf39b7f5497e22fef8 Mon Sep 17 00:00:00 2001 From: Dongsheng Cai Date: Mon, 21 Jun 2010 07:55:18 +0000 Subject: [PATCH] MDL-22764, a moodle form to manage folder module instance --- mod/folder/edit.php | 68 ++++++++++++++++++++++++++++++++++++++++ mod/folder/edit_form.php | 36 +++++++++++++++++++++ mod/folder/mod_form.php | 2 +- mod/folder/view.php | 5 +++ 4 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 mod/folder/edit.php create mode 100644 mod/folder/edit_form.php diff --git a/mod/folder/edit.php b/mod/folder/edit.php new file mode 100644 index 00000000000..9f3e625e537 --- /dev/null +++ b/mod/folder/edit.php @@ -0,0 +1,68 @@ +. + +/** + * Manage files in folder module instance + * + * @package mod-folder + * @copyright 2010 Dongsheng Cai + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +require('../../config.php'); +require_once("$CFG->dirroot/mod/folder/locallib.php"); +require_once("$CFG->dirroot/mod/folder/edit_form.php"); +require_once("$CFG->dirroot/repository/lib.php"); + +$id = required_param('id', 0, PARAM_INT); // Course module ID + +$cm = get_coursemodule_from_id('folder', $id, 0, false, MUST_EXIST); +$folder = $DB->get_record('folder', array('id'=>$cm->instance), '*', MUST_EXIST); + +$course = $DB->get_record('course', array('id'=>$cm->course), '*', MUST_EXIST); + +require_course_login($course, true, $cm); +$context = get_context_instance(CONTEXT_MODULE, $cm->id); + +add_to_log($course->id, 'folder', 'edit', 'edit.php?id='.$cm->id, $folder->id, $cm->id); + +$data = new stdclass; +$data->id = $cm->id; + +$options = array('subdirs'=>1, 'maxbytes'=>$CFG->maxbytes, 'maxfiles'=>-1, 'accepted_types'=>'*', 'return_types'=>FILE_INTERNAL); + +$PAGE->set_url('/mod/folder/edit.php', array('id' => $cm->id)); + +$PAGE->set_title($course->shortname.': '.$folder->name); +$PAGE->set_heading($course->fullname); +$PAGE->set_activity_record($folder); + + +$form = new mod_folder_edit_form(null, array('id'=>$cm->id)); + +if ($formdata = $form->get_data()) { + $formdata = file_postupdate_standard_filemanager($formdata, 'files', $options, $context, 'folder_content', 0); + redirect(new moodle_url('/mod/folder/view.php', array('id'=>$cm->id))); +} else { + file_prepare_standard_filemanager($data, 'files', $options, $context, 'folder_content', 0); + $form->set_data($data); + echo $OUTPUT->header(); + echo $OUTPUT->box_start('generalbox foldertree'); + $form->display(); + echo $OUTPUT->box_end(); + echo $OUTPUT->footer(); +} diff --git a/mod/folder/edit_form.php b/mod/folder/edit_form.php new file mode 100644 index 00000000000..8bedb515921 --- /dev/null +++ b/mod/folder/edit_form.php @@ -0,0 +1,36 @@ +. + +/** + * A moodle form to manage files + * + * @package mod-folder + * @copyright 2010 Dongsheng Cai + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +class mod_folder_edit_form extends moodleform { + function definition() { + global $CFG, $editoroptions; + $mform =& $this->_form; + $cmid = $this->_customdata['id']; + $mform->addElement('hidden', 'id', $cmid); + $mform->addElement('filemanager', 'files_filemanager', get_string('files'), null, array('subdirs'=>1, 'accepted_types'=>'*', 'return_types'=>FILE_INTERNAL)); + $submit_string = get_string('submit'); + $this->add_action_buttons(false, $submit_string); + } +} diff --git a/mod/folder/mod_form.php b/mod/folder/mod_form.php index bd532e2c3a8..9aaa699f8f4 100644 --- a/mod/folder/mod_form.php +++ b/mod/folder/mod_form.php @@ -49,7 +49,7 @@ class mod_folder_mod_form extends moodleform_mod { //------------------------------------------------------- $mform->addElement('header', 'content', get_string('contentheader', 'folder')); - $mform->addElement('filemanager', 'files', get_string('files'), null, array('subdirs'=>1, 'filetypes'=>'*', 'returnvalue'=>'ref_id')); + $mform->addElement('filemanager', 'files', get_string('files'), null, array('subdirs'=>1, 'accepted_types'=>'*', 'return_types'=>FILE_INTERNAL)); //------------------------------------------------------- $this->standard_coursemodule_elements(); diff --git a/mod/folder/view.php b/mod/folder/view.php index c826f7c49e4..028b6215472 100644 --- a/mod/folder/view.php +++ b/mod/folder/view.php @@ -67,4 +67,9 @@ if (trim(strip_tags($folder->intro))) { echo $OUTPUT->box_start('generalbox foldertree'); echo $OUTPUT->area_file_tree_viewer($context->id, 'folder_content', 0); echo $OUTPUT->box_end(); + +echo $OUTPUT->container_start('mdl-align'); +echo $OUTPUT->single_button(new moodle_url('/mod/folder/edit.php', array('id'=>$id)), get_string('edit')); +echo $OUTPUT->container_end(); + echo $OUTPUT->footer();