Index: lib/formslib.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/formslib.php,v retrieving revision 1.212 diff -u -B -r1.212 formslib.php --- lib/formslib.php 22 May 2010 19:10:44 -0000 1.212 +++ lib/formslib.php 4 Jun 2010 09:01:25 -0000 @@ -554,7 +554,7 @@ $element = $this->_form->getElement($elname); - if ($element instanceof MoodleQuickForm_filepicker) { + if ($element instanceof MoodleQuickForm_filepicker || $element instanceof MoodleQuickForm_filemanager) { $values = $this->_form->exportValues($elname); if (empty($values[$elname])) { return false; @@ -604,7 +604,7 @@ $element = $this->_form->getElement($elname); - if ($element instanceof MoodleQuickForm_filepicker) { + if ($element instanceof MoodleQuickForm_filepicker || $element instanceof MoodleQuickForm_filemanager) { $values = $this->_form->exportValues($elname); if (empty($values[$elname])) { return false; @@ -625,6 +625,63 @@ return false; } + /** + * Get draft files + * + * @global object $USER + * @param string $elname name of element + * @return mixed stored_file if success, otherwise false + */ + function get_draft_files($elname) { + global $USER; + + if (!$this->is_submitted() or !$this->is_validated()) { + return false; + } + + $element = $this->_form->getElement($elname); + + if ($element instanceof MoodleQuickForm_filepicker || $element instanceof MoodleQuickForm_filemanager) { + $values = $this->_form->exportValues($elname); + if (empty($values[$elname])) { + return false; + } + $draftid = $values[$elname]; + $fs = get_file_storage(); + $context = get_context_instance(CONTEXT_USER, $USER->id); + if (!$files = $fs->get_area_files($context->id, 'user_draft', $draftid, 'id', false)) { + return false; + } + return $files; + } + } + + /** + * Delete draft files + * + * @global object $USER + * @param string $elname name of element + */ + function delete_draft_files($elname) { + global $USER; + + if (!$this->is_submitted() or !$this->is_validated()) { + return false; + } + + $element = $this->_form->getElement($elname); + + if ($element instanceof MoodleQuickForm_filepicker || $element instanceof MoodleQuickForm_filemanager) { + $values = $this->_form->exportValues($elname); + if (empty($values[$elname])) { + return false; + } + $draftid = $values[$elname]; + $fs = get_file_storage(); + $context = get_context_instance(CONTEXT_USER, $USER->id); + $fs->delete_area_files($context->id, 'user_draft', $draftid); + } + } /** * Save file to local filesystem pool @@ -716,7 +773,7 @@ $element = $this->_form->getElement($elname); - if ($element instanceof MoodleQuickForm_filepicker) { + if ($element instanceof MoodleQuickForm_filepicker || $element instanceof MoodleQuickForm_filemanager) { $values = $this->_form->exportValues($elname); if (empty($values[$elname])) { return false;