$list->process_actions($param->left, $param->right, $param->moveup, $param->movedown, $param->moveupcontext, $param->movedowncontext, $param->tocontext);
    }
}
if ($param->delete && ($questionstomove = count_records("question", "category", $param->delete))) {
    if (!($category = get_record("question_categories", "id", $param->delete))) {
        // security
        error("No such category {$param->delete}!", $thispageurl->out());
    }
    $categorycontext = get_context_instance_by_id($category->contextid);
    $qcobject->moveform = new question_move_form($thispageurl, array('contexts' => array($categorycontext), 'currentcat' => $param->delete));
    if ($qcobject->moveform->is_cancelled()) {
        redirect($thispageurl->out());
    } elseif ($formdata = $qcobject->moveform->get_data()) {
        /// 'confirm' is the category to move existing questions to
        list($tocategoryid, $tocontextid) = explode(',', $formdata->category);
        $qcobject->move_questions_and_delete_category($formdata->delete, $tocategoryid);
        $thispageurl->remove_params('cat', 'category');
        redirect($thispageurl->out());
    }
} else {
    $questionstomove = 0;
}
if ($qcobject->catform->is_cancelled()) {
    redirect($thispageurl->out());
} else {
    if ($catformdata = $qcobject->catform->get_data()) {
        if (!$catformdata->id) {
            //new category
            $qcobject->add_category($catformdata->parent, $catformdata->name, $catformdata->info);
        } else {
            $qcobject->update_category($catformdata->id, $catformdata->parent, $catformdata->name, $catformdata->info);