libdir.'/adminlib.php'); $section = required_param('section', PARAM_SAFEDIR); $return = optional_param('return','', PARAM_ALPHA); $adminediting = optional_param('adminedit', -1, PARAM_BOOL); /// no guest autologin require_login(0, false); $PAGE->set_context(get_context_instance(CONTEXT_SYSTEM)); $PAGE->set_url('/admin/settings.php', array('section' => $section)); $PAGE->set_pagetype('admin-setting-' . $section); $PAGE->set_pagelayout('admin'); $PAGE->navigation->clear_cache(); $adminroot = admin_get_root(); // need all settings $settingspage = $adminroot->locate($section, true); if (empty($settingspage) or !($settingspage instanceof admin_settingpage)) { print_error('sectionerror', 'admin', "$CFG->wwwroot/$CFG->admin/"); die; } if (!($settingspage->check_access())) { print_error('accessdenied', 'admin'); die; } /// WRITING SUBMITTED DATA (IF ANY) ------------------------------------------------------------------------------- $statusmsg = ''; $errormsg = ''; $focus = ''; if ($data = data_submitted() and confirm_sesskey()) { if (admin_write_settings($data)) { $statusmsg = get_string('changessaved'); } if (empty($adminroot->errors)) { switch ($return) { case 'site': redirect("$CFG->wwwroot/"); case 'admin': redirect("$CFG->wwwroot/$CFG->admin/"); } } else { $errormsg = get_string('errorwithsettings', 'admin'); $firsterror = reset($adminroot->errors); $focus = $firsterror->id; } $adminroot = admin_get_root(true); //reload tree $settingspage = $adminroot->locate($section, true); } if ($PAGE->user_allowed_editing() && $adminediting != -1) { $USER->editing = $adminediting; } /// print header stuff ------------------------------------------------------------ if (empty($SITE->fullname)) { $PAGE->set_title($settingspage->visiblename); $PAGE->set_heading($settingspage->visiblename); echo $OUTPUT->header(); echo $OUTPUT->box(get_string('configintrosite', 'admin')); if ($errormsg !== '') { echo $OUTPUT->notification($errormsg); } else if ($statusmsg !== '') { echo $OUTPUT->notification($statusmsg, 'notifysuccess'); } // --------------------------------------------------------------------------------------------------------------- echo '
'; echo '
'; echo html_writer::input_hidden_params($PAGE->url); echo ''; echo ''; echo $settingspage->output_html(); echo '
'; echo '
'; echo '
'; } else { if ($PAGE->user_allowed_editing()) { $url = clone($PAGE->url); if ($PAGE->user_is_editing()) { $caption = get_string('blockseditoff'); $url->param('adminedit', 'off'); } else { $caption = get_string('blocksediton'); $url->param('adminedit', 'on'); } $buttons = $OUTPUT->single_button($url, $caption, 'get'); $PAGE->set_button($buttons); } $visiblepathtosection = array_reverse($settingspage->visiblepath); $PAGE->set_title("$SITE->shortname: " . implode(": ",$visiblepathtosection)); $PAGE->set_heading($SITE->fullname); echo $OUTPUT->header(); if ($errormsg !== '') { echo $OUTPUT->notification($errormsg); } else if ($statusmsg !== '') { echo $OUTPUT->notification($statusmsg, 'notifysuccess'); } // --------------------------------------------------------------------------------------------------------------- echo '
'; echo '
'; echo html_writer::input_hidden_params($PAGE->url); echo ''; echo ''; echo $OUTPUT->heading($settingspage->visiblename); echo $settingspage->output_html(); if ($settingspage->show_save()) { echo '
'; } echo '
'; echo '
'; } echo $OUTPUT->footer();