Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge branch 'MDL-39050_24' of git://github.com/timhunt/moodle into M…
…OODLE_24_STABLE
  • Loading branch information
Damyon Wiese committed Apr 22, 2013
2 parents b920c40 + 98ccd4f commit 499c160
Showing 1 changed file with 29 additions and 5 deletions.
34 changes: 29 additions & 5 deletions mod/quiz/settings.php
Expand Up @@ -37,10 +37,20 @@
$strreportname = get_string($report . 'report', 'quiz_'.$report);
$reportsbyname[$strreportname] = $report;
}
ksort($reportsbyname);
collatorlib::ksort($reportsbyname);

// First get a list of quiz reports with there own settings pages. If there none,
// we use a simpler overall menu structure.
$rules = get_plugin_list_with_file('quizaccess', 'settings.php', false);
$rulesbyname = array();
foreach ($rules as $rule => $ruledir) {
$strrulename = get_string('pluginname', 'quizaccess_' . $rule);
$rulesbyname[$strrulename] = $rule;
}
collatorlib::ksort($rulesbyname);

// Create the quiz settings page.
if (empty($reportsbyname)) {
if (empty($reportsbyname) && empty($rulesbyname)) {
$pagetitle = get_string('modulename', 'quiz');
} else {
$pagetitle = get_string('generalsettings', 'admin');
Expand Down Expand Up @@ -202,14 +212,14 @@

// Now, depending on whether any reports have their own settings page, add
// the quiz setting page to the appropriate place in the tree.
if (empty($reportsbyname)) {
if (empty($reportsbyname) && empty($rulesbyname)) {
$ADMIN->add('modsettings', $quizsettings);
} else {
$ADMIN->add('modsettings', new admin_category('modsettingsquizcat',
get_string('modulename', 'quiz'), $module->is_enabled() === false));
$ADMIN->add('modsettingsquizcat', $quizsettings);

// Add the report pages for the settings.php files in sub directories of mod/quiz/report.
// Add settings pages for the quiz report subplugins.
foreach ($reportsbyname as $strreportname => $report) {
$reportname = $report;

Expand All @@ -218,7 +228,21 @@
if ($ADMIN->fulltree) {
include($CFG->dirroot . "/mod/quiz/report/$reportname/settings.php");
}
$ADMIN->add('modsettingsquizcat', $settings);
if (!empty($settings)) {
$ADMIN->add('modsettingsquizcat', $settings);
}
}

// Add settings pages for the quiz access rule subplugins.
foreach ($rulesbyname as $strrulename => $rule) {
$settings = new admin_settingpage('modsettingsquizcat' . $rule,
$strrulename, 'moodle/site:config', $module->is_enabled() === false);
if ($ADMIN->fulltree) {
include($CFG->dirroot . "/mod/quiz/accessrule/$rule/settings.php");
}
if (!empty($settings)) {
$ADMIN->add('modsettingsquizcat', $settings);
}
}
}

Expand Down

0 comments on commit 499c160

Please sign in to comment.