libdir.'/adminlib.php'); require_once($CFG->libdir.'/blocklib.php'); require_once($CFG->dirroot.'/'.$CFG->admin.'/pagelib.php'); if ($site = get_site()) { require_login(); } page_map_class(PAGE_ADMIN, 'page_admin'); $PAGE = page_create_object(PAGE_ADMIN, 0); // there must be any constant id number $section = optional_param('section', '', PARAM_ALPHAEXT); $PAGE->init_extra($section); // hack alert! $adminediting = optional_param('adminedit', -1, PARAM_BOOL); $return = optional_param('return','', PARAM_ALPHA); if (!isset($USER->adminediting)) { $USER->adminediting = false; } if ($PAGE->user_allowed_editing()) { if ($adminediting == 1) { $USER->adminediting = true; } elseif ($adminediting == 0) { $USER->adminediting = false; } } $adminroot = admin_get_root(); $root = $adminroot->locate($PAGE->section); if (!is_a($root, 'admin_settingpage')) { error(get_string('sectionerror', 'admin')); die; } if (!($root->check_access())) { error(get_string('accessdenied', 'admin')); die; } $CFG->pagepath = 'admin/setting/'.$section; /// WRITING SUBMITTED DATA (IF ANY) ------------------------------------------------------------------------------- $statusmsg = ''; if ($data = data_submitted()) { if (confirm_sesskey()) { $olddbsessions = !empty($CFG->dbsessions); $errors = $root->write_settings((array)$data); //force logout if dbsession setting changes if ($olddbsessions != !empty($CFG->dbsessions)) { require_logout(); } if (empty($errors)) { switch ($return) { case 'site': redirect("$CFG->wwwroot/"); case 'admin': redirect("$CFG->wwwroot/$CFG->admin/"); default: $statusmsg = get_string('changessaved'); } } else { $statusmsg = get_string('errorwithsettings', 'admin') . '
' . $errors; } } else { error(get_string('confirmsesskeybad', 'error')); } // now update $SITE - it might have been changed $SITE = get_record('course', 'id', $SITE->id); $COURSE = clone($SITE); } /// print header stuff ------------------------------------------------------------ // header must be printed after the redirects and require_logout if (!empty($SITE->fullname)) { $pageblocks = blocks_setup($PAGE); $preferred_width_left = bounded_number(BLOCK_L_MIN_WIDTH, blocks_preferred_width($pageblocks[BLOCK_POS_LEFT]), BLOCK_L_MAX_WIDTH); $preferred_width_right = bounded_number(BLOCK_R_MIN_WIDTH, blocks_preferred_width($pageblocks[BLOCK_POS_RIGHT]), BLOCK_R_MAX_WIDTH); $PAGE->print_header(); echo ''; echo ''; echo ''; echo '
'; blocks_print_group($PAGE, $pageblocks, BLOCK_POS_LEFT); echo ''; } else { print_header(); print_simple_box(get_string('configintrosite', 'admin'), 'center', '50%'); } if ($statusmsg != '') { notify ($statusmsg); } // --------------------------------------------------------------------------------------------------------------- echo '
'; echo ''; echo ''; echo ''; print_heading($root->visiblename); echo $root->output_html(); echo '
'; echo '
'; if (!empty($SITE->fullname)) { echo '
'; blocks_print_group($PAGE, $pageblocks, BLOCK_POS_RIGHT); echo '
'; } if (!empty($CFG->adminusehtmleditor)) { use_html_editor(); } print_footer(); ?>