From 8a4b2b944de24e4be7f4c7eb774a833886a7adcb Mon Sep 17 00:00:00 2001 From: Frederic Massart Date: Thu, 15 Aug 2013 10:42:13 +0800 Subject: [PATCH] MDL-41211 tool_uploadcourse: Passing restore file path to processor --- admin/tool/uploadcourse/classes/step2_form.php | 5 +++-- admin/tool/uploadcourse/index.php | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/admin/tool/uploadcourse/classes/step2_form.php b/admin/tool/uploadcourse/classes/step2_form.php index 7464e4ea627..55b52e9ab04 100644 --- a/admin/tool/uploadcourse/classes/step2_form.php +++ b/admin/tool/uploadcourse/classes/step2_form.php @@ -58,11 +58,12 @@ class tool_uploadcourse_step2_form extends tool_uploadcourse_base_form { $mform->disabledIf('options[shortnametemplate]', 'options[mode]', 'eq', tool_uploadcourse_processor::MODE_CREATE_OR_UPDATE); $mform->disabledIf('options[shortnametemplate]', 'options[mode]', 'eq', tool_uploadcourse_processor::MODE_UPDATE_ONLY); + // Restore file is not in the array options on purpose, because formslib can't handle it! $contextid = $this->_customdata['contextid']; $mform->addElement('hidden', 'contextid', $contextid); $mform->setType('contextid', PARAM_INT); - $mform->addElement('filepicker', 'options[restorefile]', get_string('templatefile', 'tool_uploadcourse')); - $mform->addHelpButton('options[restorefile]', 'templatefile', 'tool_uploadcourse'); + $mform->addElement('filepicker', 'restorefile', get_string('templatefile', 'tool_uploadcourse')); + $mform->addHelpButton('restorefile', 'templatefile', 'tool_uploadcourse'); $mform->addElement('text', 'options[templatecourse]', get_string('coursetemplatename', 'tool_uploadcourse')); $mform->setType('options[templatecourse]', PARAM_TEXT); diff --git a/admin/tool/uploadcourse/index.php b/admin/tool/uploadcourse/index.php index 667551efd44..0f290e23ba0 100644 --- a/admin/tool/uploadcourse/index.php +++ b/admin/tool/uploadcourse/index.php @@ -78,6 +78,13 @@ if ($form2data = $mform2->is_cancelled()) { $options = (array) $form2data->options; $defaults = (array) $form2data->defaults; + + // Restorefile deserves its own logic because formslib does not really appreciate + // when the name of a filepicker is an array... + $options['restorefile'] = ''; + if (!empty($form2data->restorefile)) { + $options['restorefile'] = $mform2->save_temp_file('restorefile'); + } $processor = new tool_uploadcourse_processor($cir, $options, $defaults); echo $OUTPUT->header(); @@ -91,6 +98,11 @@ if ($form2data = $mform2->is_cancelled()) { echo $OUTPUT->continue_button($returnurl); } + // Deleting the file after processing or preview. + if (!empty($options['restorefile'])) { + @unlink($options['restorefile']); + } + } else { $processor = new tool_uploadcourse_processor($cir, $form1data->options, array()); echo $OUTPUT->header();