libdir.'/questionlib.php'); require_once("category_class.php"); // get values from form $param = new stdClass(); $id = required_param('id',PARAM_INT); // course id $param->moveup = optional_param('moveup',0,PARAM_INT); $param->movedown = optional_param('movedown',0,PARAM_INT); $param->hide = optional_param('hide',0,PARAM_INT); $param->delete = optional_param('delete',0,PARAM_INT); $param->confirm = optional_param('confirm',0,PARAM_INT); $param->cancel = optional_param('cancel','',PARAM_ALPHA); $param->move = optional_param('move',0,PARAM_INT); $param->moveto = optional_param('moveto',0,PARAM_INT); $param->publish = optional_param('publish',0,PARAM_INT); $param->addcategory = optional_param('addcategory','',PARAM_NOTAGS); $param->edit = optional_param('edit',0,PARAM_INT); $param->updateid = optional_param('updateid',0,PARAM_INT); $param->page = optional_param('page',1,PARAM_INT); if (! $course = get_record("course", "id", $id)) { error("Course ID is incorrect"); } require_login($course->id, false); if (!isteacheredit($course->id)) { error("Only teachers authorized to edit the course '{$course->fullname}' can use this page!"); } $qcobject = new question_category_object(); $qcobject->set_course($course); //========== // PAGE HEADER //========== // TODO: generalise this to any activity if (isset($SESSION->modform->instance) and $quiz = get_record('quiz', 'id', $SESSION->modform->instance)) { $strupdatemodule = isteacheredit($course->id) ? update_module_button($SESSION->modform->cmid, $course->id, get_string('modulename', 'quiz')) : ""; print_header_simple(get_string('editcategories', 'quiz'), '', "wwwroot/mod/quiz/index.php?id=$course->id\">".get_string('modulenameplural', 'quiz').''. " -> wwwroot/mod/quiz/view.php?q=$quiz->id\">".format_string($quiz->name).''. ' -> '.get_string('editcategories', 'quiz'), "", "", true, $strupdatemodule); $currenttab = 'edit'; $mode = 'categories'; include($CFG->dirroot.'/mod/quiz/tabs.php'); } else { print_header_simple(get_string('editcategories', 'quiz'), '', get_string('editcategories', 'quiz')); // print tabs $currenttab = 'categories'; include('tabs.php'); } //========== // ACTIONS //========== if (isset($_REQUEST['sesskey']) and confirm_sesskey()) { // sesskey must be ok if (!empty($param->delete) and empty($param->cancel)) { if (!empty($param->confirm)) { /// 'confirm' is the category to move existing questions to $qcobject->delete_category($param->delete, $param->confirm); } else { $qcobject->delete_category($param->delete); } } else if (!empty($param->moveup)) { $qcobject->move_category_up_down('up', $param->moveup); } else if (!empty($param->movedown)) { $qcobject->move_category_up_down('down', $param->movedown); } else if (!empty($param->hide)) { $qcobject->publish_category(false, $param->hide); } else if (!empty($param->move) and !empty($param->moveto)) { $qcobject->move_category($param->move, $param->moveto); } else if (!empty($param->publish)) { $qcobject->publish_category(true, $param->publish); } else if (!empty($param->addcategory)) { $param->newparent = required_param('newparent',PARAM_INT); $param->newcategory = required_param('newcategory',PARAM_NOTAGS); $param->newinfo = required_param('newinfo',PARAM_NOTAGS); $param->newpublish = required_param('newpublish',PARAM_INT); $qcobject->add_category($param->newparent, $param->newcategory, $param->newinfo, $param->newpublish, $course->id); } else if (!empty($param->edit)) { $qcobject->edit_single_category($param->edit, $param->page); } else if (!empty($param->updateid)) { $param->updateparent = required_param('updateparent',PARAM_INT); $param->updatename = required_param('updatename',PARAM_NOTAGS); $param->updateinfo = required_param('updateinfo',PARAM_NOTAGS); $param->updatepublish = required_param('updatepublish',PARAM_INT); $qcobject->update_category($param->updateid, $param->updateparent, $param->updatename, $param->updateinfo, $param->updatepublish, $course->id); } } //========== // DISPLAY //========== // display the user interface $qcobject->display_user_interface($param->page); print_footer($course); ?>