* @subpackage importexport
*/
- require_once("../config.php");
- require_once("editlib.php"); // Includes lib/questionlib.php
- require_once($CFG->libdir . '/uploadlib.php');
- require_once("import_form.php");
-
- list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) =
- question_edit_setup('import', '/question/import.php', false, false);
-
- // get display strings
- $txt = new stdClass();
- $txt->importerror = get_string('importerror','quiz');
- $txt->importquestions = get_string("importquestions", "quiz");
-
- list($catid, $catcontext) = explode(',', $pagevars['cat']);
- if (!$category = $DB->get_record("question_categories", array("id" => $catid))) {
- print_error('nocategory','quiz');
+require_once("../config.php");
+require_once("editlib.php"); // Includes lib/questionlib.php
+require_once($CFG->libdir . '/uploadlib.php');
+require_once("import_form.php");
+
+list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) =
+ question_edit_setup('import', '/question/import.php', false, false);
+
+// get display strings
+$txt = new stdClass();
+$txt->importerror = get_string('importerror','quiz');
+$txt->importquestions = get_string("importquestions", "quiz");
+
+list($catid, $catcontext) = explode(',', $pagevars['cat']);
+if (!$category = $DB->get_record("question_categories", array("id" => $catid))) {
+ print_error('nocategory','quiz');
+}
+
+$PAGE->set_pagelayout('standard');
+
+//this page can be called without courseid or cmid in which case
+//we get the context from the category object.
+if ($contexts === null) { // need to get the course from the chosen category
+ $contexts = new question_edit_contexts(get_context_instance_by_id($category->contextid));
+ $thiscontext = $contexts->lowest();
+ if ($thiscontext->contextlevel == CONTEXT_COURSE){
+ require_login($thiscontext->instanceid, false);
+ } elseif ($thiscontext->contextlevel == CONTEXT_MODULE){
+ list($module, $cm) = get_module_from_cmid($thiscontext->instanceid);
+ require_login($cm->course, false, $cm);
}
-
- $PAGE->set_pagelayout('standard');
-
- //this page can be called without courseid or cmid in which case
- //we get the context from the category object.
- if ($contexts === null) { // need to get the course from the chosen category
- $contexts = new question_edit_contexts(get_context_instance_by_id($category->contextid));
- $thiscontext = $contexts->lowest();
- if ($thiscontext->contextlevel == CONTEXT_COURSE){
- require_login($thiscontext->instanceid, false);
- } elseif ($thiscontext->contextlevel == CONTEXT_MODULE){
- list($module, $cm) = get_module_from_cmid($thiscontext->instanceid);
- require_login($cm->course, false, $cm);
+ $contexts->require_one_edit_tab_cap($edittab);
+}
+
+// ensure the files area exists for this course
+make_upload_directory("$COURSE->id");
+
+$PAGE->set_url($thispageurl->out());
+
+$import_form = new question_import_form($thispageurl, array('contexts'=>$contexts->having_one_edit_tab_cap('import'),
+ 'defaultcategory'=>$pagevars['cat']));
+
+if ($import_form->is_cancelled()){
+ redirect($thispageurl);
+}
+//==========
+// PAGE HEADER
+//==========
+$PAGE->set_title($txt->importquestions);
+$PAGE->set_heading($COURSE->fullname);
+echo $OUTPUT->header();
+
+// file upload form sumitted
+if ($form = $import_form->get_data()) {
+
+ // file checks out ok
+ $fileisgood = false;
+
+ // work out if this is an uploaded file
+ // or one from the filesarea.
+ if (!empty($form->choosefile)) {
+ $importfile = "{$CFG->dataroot}/{$COURSE->id}/{$form->choosefile}";
+ $realfilename = $form->choosefile;
+ if (file_exists($importfile)) {
+ $fileisgood = true;
+ } else {
+ print_error('uploadproblem', 'moodle', $form->choosefile);
+ }
+ } else {
+ $realfilename = $import_form->get_new_filename('newfile');
+ $importfile = "{$CFG->dataroot}/{$COURSE->id}/{$realfilename}";
+ if (!$result = $import_form->save_file('newfile', $importfile, true)) {
+ print_error('uploadproblem', 'moodle');
+ }else {
+ $fileisgood = true;
}
- $contexts->require_one_edit_tab_cap($edittab);
}
- // ensure the files area exists for this course
- make_upload_directory("$COURSE->id");
+ // process if we are happy file is ok
+ if ($fileisgood) {
- $PAGE->set_url($thispageurl->out());
-
- $import_form = new question_import_form($thispageurl, array('contexts'=>$contexts->having_one_edit_tab_cap('import'),
- 'defaultcategory'=>$pagevars['cat']));
+ if (! is_readable("format/$form->format/format.php")) {
+ print_error('formatnotfound','quiz', $form->format);
+ }
- if ($import_form->is_cancelled()){
- redirect($thispageurl);
- }
- //==========
- // PAGE HEADER
- //==========
- $PAGE->set_title($txt->importquestions);
- $PAGE->set_heading($COURSE->fullname);
- echo $OUTPUT->header();
-
- // file upload form sumitted
- if ($form = $import_form->get_data()) {
-
- // file checks out ok
- $fileisgood = false;
-
- // work out if this is an uploaded file
- // or one from the filesarea.
- if (!empty($form->choosefile)) {
- $importfile = "{$CFG->dataroot}/{$COURSE->id}/{$form->choosefile}";
- $realfilename = $form->choosefile;
- if (file_exists($importfile)) {
- $fileisgood = true;
- } else {
- print_error('uploadproblem', 'moodle', $form->choosefile);
- }
- } else {
- // must be upload file
- $realfilename = $import_form->get_importfile_realname();
- if (!$importfile = $import_form->get_importfile_name()) {
- print_error('uploadproblem', 'moodle');
- }else {
- $fileisgood = true;
- }
+ require_once("format.php"); // Parent class
+ require_once("format/$form->format/format.php");
+
+ $classname = "qformat_$form->format";
+ $qformat = new $classname();
+
+ // load data into class
+ $qformat->setCategory($category);
+ $qformat->setContexts($contexts->having_one_edit_tab_cap('import'));
+ $qformat->setCourse($COURSE);
+ $qformat->setFilename($importfile);
+ $qformat->setRealfilename($realfilename);
+ $qformat->setMatchgrades($form->matchgrades);
+ $qformat->setCatfromfile(!empty($form->catfromfile));
+ $qformat->setContextfromfile(!empty($form->contextfromfile));
+ $qformat->setStoponerror($form->stoponerror);
+
+ // Do anything before that we need to
+ if (! $qformat->importpreprocess()) {
+ //TODO: need more detailed error info
+ print_error('cannotimport', '', $thispageurl->out());
}
- // process if we are happy file is ok
- if ($fileisgood) {
-
- if (! is_readable("format/$form->format/format.php")) {
- print_error('formatnotfound','quiz', $form->format);
- }
-
- require_once("format.php"); // Parent class
- require_once("format/$form->format/format.php");
-
- $classname = "qformat_$form->format";
- $qformat = new $classname();
-
- // load data into class
- $qformat->setCategory($category);
- $qformat->setContexts($contexts->having_one_edit_tab_cap('import'));
- $qformat->setCourse($COURSE);
- $qformat->setFilename($importfile);
- $qformat->setRealfilename($realfilename);
- $qformat->setMatchgrades($form->matchgrades);
- $qformat->setCatfromfile(!empty($form->catfromfile));
- $qformat->setContextfromfile(!empty($form->contextfromfile));
- $qformat->setStoponerror($form->stoponerror);
-
- // Do anything before that we need to
- if (! $qformat->importpreprocess()) {
- //TODO: need more detailed error info
- print_error('cannotimport', '', $thispageurl->out());
- }
-
- // Process the uploaded file
- if (! $qformat->importprocess()) {
- //TODO: need more detailed error info
- print_error('cannotimport', '', $thispageurl->out());
- }
-
- // In case anything needs to be done after
- if (! $qformat->importpostprocess()) {
- //TODO: need more detailed error info
- print_error('cannotimport', '', $thispageurl->out());
- }
-
- echo "<hr />";
- $params = $thispageurl->params() + array('category'=>"{$qformat->category->id},{$qformat->category->contextid}");
- echo $OUTPUT->continue_button(new moodle_url('edit.php', $params));
- echo $OUTPUT->footer();
- exit;
+ // Process the uploaded file
+ if (! $qformat->importprocess()) {
+ //TODO: need more detailed error info
+ print_error('cannotimport', '', $thispageurl->out());
}
- }
- echo $OUTPUT->heading_with_help($txt->importquestions, 'import', 'quiz');
+ // In case anything needs to be done after
+ if (! $qformat->importpostprocess()) {
+ //TODO: need more detailed error info
+ print_error('cannotimport', '', $thispageurl->out());
+ }
- /// Print upload form
- $import_form->display();
- echo $OUTPUT->footer();
+ echo '<hr />';
+ $params = $thispageurl->params() + array('category'=>"{$qformat->category->id},{$qformat->category->contextid}");
+ echo $OUTPUT->continue_button(new moodle_url('edit.php', $params));
+ echo $OUTPUT->footer();
+ exit;
+ }
+}
+echo $OUTPUT->heading_with_help($txt->importquestions, 'import', 'quiz');
+/// Print upload form
+$import_form->display();
+echo $OUTPUT->footer();
$mform->setHelpButton('stoponerror', array('stoponerror', get_string('stoponerror', 'quiz'), 'quiz'));
//--------------------------------------------------------------------------------
- $mform->addElement('header', 'importfileupload', get_string('importfileupload','quiz'));
+ $mform->addElement('header', 'importfileupload', get_string('importfromthisfile','quiz'));
- $mform->addElement('file', 'newfile', get_string('upload'));
+ $mform->addElement('filepicker', 'newfile', get_string('import', 'quiz'));
//--------------------------------------------------------------------------------
- $mform->addElement('submit', 'submitbutton', get_string('uploadthisfile'));
+ $mform->addElement('submit', 'submitbutton', get_string('import', 'quiz'));
//--------------------------------------------------------------------------------
- if (has_capability('moodle/course:managefiles', get_context_instance(CONTEXT_COURSE, $COURSE->id))){
- $mform->addElement('header', 'importfilearea', get_string('importfilearea','quiz'));
-//TODO: MDL-16094
+ //if (has_capability('moodle/course:managefiles', get_context_instance(CONTEXT_COURSE, $COURSE->id))){
+ //$mform->addElement('header', 'importfilearea', get_string('importfilearea','quiz'));
+ //TODO: MDL-16094
//$mform->addElement('choosecoursefile', 'choosefile', get_string('choosefile','quiz'));
//--------------------------------------------------------------------------------
- $mform->addElement('submit', 'submitbutton', get_string('importfromthisfile','quiz'));
- }
+ //$mform->addElement('submit', 'submitbutton', get_string('importfromthisfile','quiz'));
+ //}
//--------------------------------------------------------------------------------
$mform->addElement('static', 'dummy', '');
$mform->closeHeaderBefore('dummy');
$template = "{help} {element}\n";
$renderer->setGroupElementTemplate($template, 'format');
}
- function get_importfile_name(){
- if ($this->is_submitted() and $this->is_validated()) {
- // return the temporary filename to process
- // TODO change this to use the files API properly.
- return $_FILES['newfile']['tmp_name'];
-// return $this->_upload_manager->files['newfile']['tmp_name'];
- }else{
- return NULL;
- }
- }
-
- function get_importfile_realname(){
- if ($this->is_submitted() and $this->is_validated()) {
- // return the temporary filename to process
- // TODO change this to use the files API properly.
- return $_FILES['newfile']['name'];
- }else{
- return NULL;
- }
- }
}