From 0b45720b6ed2c6be6ef3802dbb5951dfd94cc4c3 Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Wed, 5 Oct 2011 10:32:55 +0100 Subject: [PATCH] MDL-29454 Fix coding style before trying to do the real fix. All the changes here should be whitespace, /// -> // or adding boilerplate comment. --- admin/qtypes.php | 476 +++++++++++++++++++++++++---------------------- 1 file changed, 249 insertions(+), 227 deletions(-) diff --git a/admin/qtypes.php b/admin/qtypes.php index 33a70d87a4f..4d0cc95aa73 100644 --- a/admin/qtypes.php +++ b/admin/qtypes.php @@ -1,269 +1,292 @@ . - require_once(dirname(__FILE__) . '/../config.php'); - require_once($CFG->libdir . '/questionlib.php'); - require_once($CFG->libdir . '/adminlib.php'); - require_once($CFG->libdir . '/tablelib.php'); +/** + * Allows the admin to manage question types. + * + * @package moodlecore + * @subpackage questionbank + * @copyright 2008 Tim Hunt + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ -/// Check permissions. - require_login(); - $systemcontext = get_context_instance(CONTEXT_SYSTEM); - require_capability('moodle/question:config', $systemcontext); - $canviewreports = has_capability('report/questioninstances:view', $systemcontext); - admin_externalpage_setup('manageqtypes'); +require_once(dirname(__FILE__) . '/../config.php'); +require_once($CFG->libdir . '/questionlib.php'); +require_once($CFG->libdir . '/adminlib.php'); +require_once($CFG->libdir . '/tablelib.php'); -/// Get some data we will need - question counts and which types are needed. - $counts = $DB->get_records_sql(" - SELECT qtype, COUNT(1) as numquestions, SUM(hidden) as numhidden - FROM {question} GROUP BY qtype", array()); - $needed = array(); - foreach ($QTYPES as $qtypename => $qtype) { - if (!isset($counts[$qtypename])) { - $counts[$qtypename] = new stdClass; - $counts[$qtypename]->numquestions = 0; - $counts[$qtypename]->numhidden = 0; - } - $needed[$qtypename] = $counts[$qtypename]->numquestions > 0; - $counts[$qtypename]->numquestions -= $counts[$qtypename]->numhidden; +// Check permissions. +require_login(); +$systemcontext = get_context_instance(CONTEXT_SYSTEM); +require_capability('moodle/question:config', $systemcontext); +$canviewreports = has_capability('report/questioninstances:view', $systemcontext); + +admin_externalpage_setup('manageqtypes'); + +// Get some data we will need - question counts and which types are needed. +$counts = $DB->get_records_sql(" + SELECT qtype, COUNT(1) as numquestions, SUM(hidden) as numhidden + FROM {question} GROUP BY qtype", array()); +$needed = array(); +foreach ($QTYPES as $qtypename => $qtype) { + if (!isset($counts[$qtypename])) { + $counts[$qtypename] = new stdClass; + $counts[$qtypename]->numquestions = 0; + $counts[$qtypename]->numhidden = 0; } - $needed['missingtype'] = true; // The system needs the missing question type. - foreach ($QTYPES as $qtypename => $qtype) { - foreach ($qtype->requires_qtypes() as $reqtype) { - $needed[$reqtype] = true; - } + $needed[$qtypename] = $counts[$qtypename]->numquestions > 0; + $counts[$qtypename]->numquestions -= $counts[$qtypename]->numhidden; +} +$needed['missingtype'] = true; // The system needs the missing question type. +foreach ($QTYPES as $qtypename => $qtype) { + foreach ($qtype->requires_qtypes() as $reqtype) { + $needed[$reqtype] = true; } - foreach ($counts as $qtypename => $count) { - if (!isset($QTYPES[$qtypename])) { - $counts['missingtype']->numquestions += $count->numquestions - $count->numhidden; - $counts['missingtype']->numhidden += $count->numhidden; - } +} +foreach ($counts as $qtypename => $count) { + if (!isset($QTYPES[$qtypename])) { + $counts['missingtype']->numquestions += $count->numquestions - $count->numhidden; + $counts['missingtype']->numhidden += $count->numhidden; + } +} + +// Work of the correct sort order. +$config = get_config('question'); +$sortedqtypes = array(); +foreach ($QTYPES as $qtypename => $qtype) { + $sortedqtypes[$qtypename] = $qtype->local_name(); +} +$sortedqtypes = question_sort_qtype_array($sortedqtypes, $config); + +// Process actions ============================================================ + +// Disable. +if (($disable = optional_param('disable', '', PARAM_SAFEDIR)) && confirm_sesskey()) { + if (!isset($QTYPES[$disable])) { + print_error('unknownquestiontype', 'question', admin_url('qtypes.php'), $disable); } -/// Work of the correct sort order. - $config = get_config('question'); - $sortedqtypes = array(); - foreach ($QTYPES as $qtypename => $qtype) { - $sortedqtypes[$qtypename] = $qtype->local_name(); - } - $sortedqtypes = question_sort_qtype_array($sortedqtypes, $config); + set_config($disable . '_disabled', 1, 'question'); + redirect(admin_url('qtypes.php')); +} -/// Process actions ============================================================ - - // Disable. - if (($disable = optional_param('disable', '', PARAM_SAFEDIR)) && confirm_sesskey()) { - if (!isset($QTYPES[$disable])) { - print_error('unknownquestiontype', 'question', admin_url('qtypes.php'), $disable); - } - - set_config($disable . '_disabled', 1, 'question'); - redirect(admin_url('qtypes.php')); +// Enable. +if (($enable = optional_param('enable', '', PARAM_SAFEDIR)) && confirm_sesskey()) { + if (!isset($QTYPES[$enable])) { + print_error('unknownquestiontype', 'question', admin_url('qtypes.php'), $enable); } - // Enable. - if (($enable = optional_param('enable', '', PARAM_SAFEDIR)) && confirm_sesskey()) { - if (!isset($QTYPES[$enable])) { - print_error('unknownquestiontype', 'question', admin_url('qtypes.php'), $enable); - } - - if (!$QTYPES[$enable]->menu_name()) { - print_error('cannotenable', 'question', admin_url('qtypes.php'), $enable); - } - - unset_config($enable . '_disabled', 'question'); - redirect(admin_url('qtypes.php')); + if (!$QTYPES[$enable]->menu_name()) { + print_error('cannotenable', 'question', admin_url('qtypes.php'), $enable); } - // Move up in order. - if (($up = optional_param('up', '', PARAM_SAFEDIR)) && confirm_sesskey()) { - if (!isset($QTYPES[$up])) { - print_error('unknownquestiontype', 'question', admin_url('qtypes.php'), $up); - } + unset_config($enable . '_disabled', 'question'); + redirect(admin_url('qtypes.php')); +} - $neworder = question_reorder_qtypes($sortedqtypes, $up, -1); - question_save_qtype_order($neworder, $config); - redirect(admin_url('qtypes.php')); +// Move up in order. +if (($up = optional_param('up', '', PARAM_SAFEDIR)) && confirm_sesskey()) { + if (!isset($QTYPES[$up])) { + print_error('unknownquestiontype', 'question', admin_url('qtypes.php'), $up); } - // Move down in order. - if (($down = optional_param('down', '', PARAM_SAFEDIR)) && confirm_sesskey()) { - if (!isset($QTYPES[$down])) { - print_error('unknownquestiontype', 'question', admin_url('qtypes.php'), $down); - } + $neworder = question_reorder_qtypes($sortedqtypes, $up, -1); + question_save_qtype_order($neworder, $config); + redirect(admin_url('qtypes.php')); +} - $neworder = question_reorder_qtypes($sortedqtypes, $down, +1); - question_save_qtype_order($neworder, $config); - redirect(admin_url('qtypes.php')); +// Move down in order. +if (($down = optional_param('down', '', PARAM_SAFEDIR)) && confirm_sesskey()) { + if (!isset($QTYPES[$down])) { + print_error('unknownquestiontype', 'question', admin_url('qtypes.php'), $down); } - // Delete. - if (($delete = optional_param('delete', '', PARAM_SAFEDIR)) && confirm_sesskey()) { - // Check it is OK to delete this question type. - if ($delete == 'missingtype') { - print_error('cannotdeletemissingqtype', 'admin', admin_url('qtypes.php')); - } + $neworder = question_reorder_qtypes($sortedqtypes, $down, +1); + question_save_qtype_order($neworder, $config); + redirect(admin_url('qtypes.php')); +} - if (!isset($QTYPES[$delete])) { - print_error('unknownquestiontype', 'question', admin_url('qtypes.php'), $delete); - } +// Delete. +if (($delete = optional_param('delete', '', PARAM_SAFEDIR)) && confirm_sesskey()) { + // Check it is OK to delete this question type. + if ($delete == 'missingtype') { + print_error('cannotdeletemissingqtype', 'admin', admin_url('qtypes.php')); + } + if (!isset($QTYPES[$delete])) { + print_error('unknownquestiontype', 'question', admin_url('qtypes.php'), $delete); + } + + $qtypename = $QTYPES[$delete]->local_name(); + if ($counts[$delete]->numquestions + $counts[$delete]->numhidden > 0) { + print_error('cannotdeleteqtypeinuse', 'admin', admin_url('qtypes.php'), $qtypename); + } + + if ($needed[$delete] > 0) { + print_error('cannotdeleteqtypeneeded', 'admin', admin_url('qtypes.php'), $qtypename); + } + + // If not yet confirmed, display a confirmation message. + if (!optional_param('confirm', '', PARAM_BOOL)) { $qtypename = $QTYPES[$delete]->local_name(); - if ($counts[$delete]->numquestions + $counts[$delete]->numhidden > 0) { - print_error('cannotdeleteqtypeinuse', 'admin', admin_url('qtypes.php'), $qtypename); - } - - if ($needed[$delete] > 0) { - print_error('cannotdeleteqtypeneeded', 'admin', admin_url('qtypes.php'), $qtypename); - } - - // If not yet confirmed, display a confirmation message. - if (!optional_param('confirm', '', PARAM_BOOL)) { - $qtypename = $QTYPES[$delete]->local_name(); - echo $OUTPUT->header(); - echo $OUTPUT->heading(get_string('deleteqtypeareyousure', 'admin', $qtypename)); - echo $OUTPUT->confirm(get_string('deleteqtypeareyousuremessage', 'admin', $qtypename), - admin_url('qtypes.php?delete=' . $delete . '&confirm=1'), - admin_url('qtypes.php')); - echo $OUTPUT->footer(); - exit; - } - - // Do the deletion. echo $OUTPUT->header(); - echo $OUTPUT->heading(get_string('deletingqtype', 'admin', $qtypename)); - - // Delete any configuration records. - if (!unset_all_config_for_plugin('qtype_' . $delete)) { - echo $OUTPUT->notification(get_string('errordeletingconfig', 'admin', 'qtype_' . $delete)); - } - unset_config($delete . '_disabled', 'question'); - unset_config($delete . '_sortorder', 'question'); - - // Then the tables themselves - drop_plugin_tables($delete, $QTYPES[$delete]->plugin_dir() . '/db/install.xml', false); - - // Remove event handlers and dequeue pending events - events_uninstall('qtype/' . $delete); - - $a->qtype = $qtypename; - $a->directory = $QTYPES[$delete]->plugin_dir(); - echo $OUTPUT->box(get_string('qtypedeletefiles', 'admin', $a), 'generalbox', 'notice'); - echo $OUTPUT->continue_button(admin_url('qtypes.php')); + echo $OUTPUT->heading(get_string('deleteqtypeareyousure', 'admin', $qtypename)); + echo $OUTPUT->confirm(get_string('deleteqtypeareyousuremessage', 'admin', $qtypename), + admin_url('qtypes.php?delete=' . $delete . '&confirm=1'), + admin_url('qtypes.php')); echo $OUTPUT->footer(); exit; } - // End of process actions ================================================== - -/// Print the page heading. + // Do the deletion. echo $OUTPUT->header(); - echo $OUTPUT->heading(get_string('manageqtypes', 'admin')); + echo $OUTPUT->heading(get_string('deletingqtype', 'admin', $qtypename)); -/// Set up the table. - $table = new flexible_table('qtypeadmintable'); - $table->define_columns(array('questiontype', 'numquestions', 'version', 'requires', - 'availableto', 'delete', 'settings')); - $table->define_headers(array(get_string('questiontype', 'admin'), get_string('numquestions', 'admin'), - get_string('version'), get_string('requires', 'admin'), get_string('availableq', 'question'), - get_string('delete'), get_string('settings'))); - $table->set_attribute('id', 'qtypes'); - $table->set_attribute('class', 'generaltable generalbox boxaligncenter boxwidthwide'); - $table->setup(); + // Delete any configuration records. + if (!unset_all_config_for_plugin('qtype_' . $delete)) { + echo $OUTPUT->notification(get_string('errordeletingconfig', 'admin', 'qtype_' . $delete)); + } + unset_config($delete . '_disabled', 'question'); + unset_config($delete . '_sortorder', 'question'); -/// Add a row for each question type. - $createabletypes = question_type_menu(); - foreach ($sortedqtypes as $qtypename => $localname) { - $qtype = $QTYPES[$qtypename]; - $row = array(); + // Then the tables themselves + drop_plugin_tables($delete, $QTYPES[$delete]->plugin_dir() . '/db/install.xml', false); - // Question icon and name. - $fakequestion = new stdClass; - $fakequestion->qtype = $qtypename; - $icon = print_question_icon($fakequestion, true); - $row[] = $icon . ' ' . $localname; + // Remove event handlers and dequeue pending events + events_uninstall('qtype/' . $delete); - // Number of questions of this type. - if ($counts[$qtypename]->numquestions + $counts[$qtypename]->numhidden > 0) { - if ($counts[$qtypename]->numhidden > 0) { - $strcount = get_string('numquestionsandhidden', 'admin', $counts[$qtypename]); - } else { - $strcount = $counts[$qtypename]->numquestions; - } - if ($canviewreports) { - $row[] = '' . $strcount . ''; - } else { - $strcount; - } + $a->qtype = $qtypename; + $a->directory = $QTYPES[$delete]->plugin_dir(); + echo $OUTPUT->box(get_string('qtypedeletefiles', 'admin', $a), 'generalbox', 'notice'); + echo $OUTPUT->continue_button(admin_url('qtypes.php')); + echo $OUTPUT->footer(); + exit; +} + +// End of process actions ================================================== + +// Print the page heading. +echo $OUTPUT->header(); +echo $OUTPUT->heading(get_string('manageqtypes', 'admin')); + +// Set up the table. +$table = new flexible_table('qtypeadmintable'); +$table->define_columns(array('questiontype', 'numquestions', 'version', 'requires', + 'availableto', 'delete', 'settings')); +$table->define_headers(array(get_string('questiontype', 'admin'), get_string('numquestions', 'admin'), + get_string('version'), get_string('requires', 'admin'), get_string('availableq', 'question'), + get_string('delete'), get_string('settings'))); +$table->set_attribute('id', 'qtypes'); +$table->set_attribute('class', 'generaltable generalbox boxaligncenter boxwidthwide'); +$table->setup(); + +// Add a row for each question type. +$createabletypes = question_type_menu(); +foreach ($sortedqtypes as $qtypename => $localname) { + $qtype = $QTYPES[$qtypename]; + $row = array(); + + // Question icon and name. + $fakequestion = new stdClass; + $fakequestion->qtype = $qtypename; + $icon = print_question_icon($fakequestion, true); + $row[] = $icon . ' ' . $localname; + + // Number of questions of this type. + if ($counts[$qtypename]->numquestions + $counts[$qtypename]->numhidden > 0) { + if ($counts[$qtypename]->numhidden > 0) { + $strcount = get_string('numquestionsandhidden', 'admin', $counts[$qtypename]); } else { - $row[] = 0; + $strcount = $counts[$qtypename]->numquestions; } - - // Question version number. - $version = get_config('qtype_' . $qtypename, 'version'); - if ($version) { - $row[] = $version; + if ($canviewreports) { + $row[] = '' . $strcount . ''; } else { - $row[] = '' . get_string('nodatabase', 'admin') . ''; + $strcount; } - - // Other question types required by this one. - $requiredtypes = $qtype->requires_qtypes(); - $strtypes = array(); - if (!empty($requiredtypes)) { - foreach ($requiredtypes as $required) { - $strtypes[] = $QTYPES[$required]->local_name(); - } - $row[] = implode(', ', $strtypes); - } else { - $row[] = ''; - } - - // Are people allowed to create new questions of this type? - $rowclass = ''; - if ($qtype->menu_name()) { - $createable = isset($createabletypes[$qtypename]); - $icons = enable_disable_button($qtypename, $createable); - if (!$createable) { - $rowclass = 'dimmed_text'; - } - } else { - $icons = ''; - } - - // Move icons. - $icons .= icon_html('up', $qtypename, 't/up', get_string('up'), ''); - $icons .= icon_html('down', $qtypename, 't/down', get_string('down'), ''); - $row[] = $icons; - - // Delete link, if available. - if ($needed[$qtypename]) { - $row[] = ''; - } else { - $row[] = '' . get_string('delete') . ''; - } - - // Settings link, if available. - $settings = admin_get_root()->locate('qtypesetting' . $qtypename); - if ($settings instanceof admin_externalpage) { - $row[] = '' . get_string('settings') . ''; - } else if ($settings instanceof admin_settingpage) { - $row[] = '' . get_string('settings') . ''; - } else { - $row[] = ''; - } - - $table->add_data($row, $rowclass); + } else { + $row[] = 0; } - $table->finish_output(); + // Question version number. + $version = get_config('qtype_' . $qtypename, 'version'); + if ($version) { + $row[] = $version; + } else { + $row[] = '' . get_string('nodatabase', 'admin') . ''; + } - echo $OUTPUT->footer(); + // Other question types required by this one. + $requiredtypes = $qtype->requires_qtypes(); + $strtypes = array(); + if (!empty($requiredtypes)) { + foreach ($requiredtypes as $required) { + $strtypes[] = $QTYPES[$required]->local_name(); + } + $row[] = implode(', ', $strtypes); + } else { + $row[] = ''; + } + + // Are people allowed to create new questions of this type? + $rowclass = ''; + if ($qtype->menu_name()) { + $createable = isset($createabletypes[$qtypename]); + $icons = enable_disable_button($qtypename, $createable); + if (!$createable) { + $rowclass = 'dimmed_text'; + } + } else { + $icons = ''; + } + + // Move icons. + $icons .= icon_html('up', $qtypename, 't/up', get_string('up'), ''); + $icons .= icon_html('down', $qtypename, 't/down', get_string('down'), ''); + $row[] = $icons; + + // Delete link, if available. + if ($needed[$qtypename]) { + $row[] = ''; + } else { + $row[] = '' . get_string('delete') . ''; + } + + // Settings link, if available. + $settings = admin_get_root()->locate('qtypesetting' . $qtypename); + if ($settings instanceof admin_externalpage) { + $row[] = '' . get_string('settings') . ''; + } else if ($settings instanceof admin_settingpage) { + $row[] = '' . get_string('settings') . ''; + } else { + $row[] = ''; + } + + $table->add_data($row, $rowclass); +} + +$table->finish_output(); + +echo $OUTPUT->footer(); function admin_url($endbit) { global $CFG; @@ -290,4 +313,3 @@ function icon_html($action, $qtypename, $icon, $alt, $tip) { $html .= ''; return $html; } -