diff --git a/admin/cron.php b/admin/cron.php index 770f158fed8..c90d28b57cf 100644 --- a/admin/cron.php +++ b/admin/cron.php @@ -252,7 +252,7 @@ events_cron(); mtrace('done.'); - if ($CFG->portfolioenabled) { + if ($CFG->enableportfolios) { // Portfolio cron mtrace('Starting the portfolio cron...'); require_once($CFG->libdir . '/portfoliolib.php'); diff --git a/admin/mnet/index.php b/admin/mnet/index.php index d03efaa5660..6128163220f 100644 --- a/admin/mnet/index.php +++ b/admin/mnet/index.php @@ -108,14 +108,6 @@ : public_key_expires); ?> - - : - - mnet_dispatcher_mode)? 'checked="checked"' : '' ?> />
- mnet_dispatcher_mode)? 'checked="checked"' : '' ?> />
- - - diff --git a/admin/settings/grades.php b/admin/settings/grades.php index 05ea2f682d8..26e14b44437 100644 --- a/admin/settings/grades.php +++ b/admin/settings/grades.php @@ -14,9 +14,6 @@ if (has_capability('moodle/grade:manage', $systemcontext) // new CFG variable for gradebook (what roles to display) $temp->add(new admin_setting_special_gradebookroles()); - // enable outcomes checkbox - $temp->add(new admin_setting_configcheckbox('enableoutcomes', get_string('enableoutcomes', 'grades'), get_string('configenableoutcomes', 'grades'), 0, PARAM_INT)); - $temp->add(new admin_setting_grade_profilereport()); $temp->add(new admin_setting_configselect('grade_aggregationposition', get_string('aggregationposition', 'grades'), @@ -142,7 +139,7 @@ if (has_capability('moodle/grade:manage', $systemcontext) $scales = new admin_externalpage('scales', get_string('scales'), $CFG->wwwroot.'/grade/edit/scale/index.php', 'moodle/grade:manage'); $ADMIN->add('grades', $scales); - $outcomes = new admin_externalpage('outcomes', get_string('outcomes', 'grades'), $CFG->wwwroot.'/grade/edit/outcome/index.php', 'moodle/grade:manage'); + $outcomes = new admin_externalpage('outcomes', get_string('outcomes', 'grades'), $CFG->wwwroot.'/grade/edit/outcome/index.php', 'moodle/grade:manage', empty($CFG->enableoutcomes)); $ADMIN->add('grades', $outcomes); $letters = new admin_externalpage('letters', get_string('letters', 'grades'), $CFG->wwwroot.'/grade/edit/letter/edit.php', 'moodle/grade:manageletters'); $ADMIN->add('grades', $letters); diff --git a/admin/settings/misc.php b/admin/settings/misc.php index ec9ac0b33f0..b4cb7160976 100644 --- a/admin/settings/misc.php +++ b/admin/settings/misc.php @@ -11,7 +11,6 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page $item = new admin_setting_configcheckbox('enablehtmlpurifier', get_string('enablehtmlpurifier', 'admin'), get_string('configenablehtmlpurifier', 'admin'), 0); $item->set_updatedcallback('reset_text_filters_cache'); $temp->add($item); - $temp->add(new admin_setting_configcheckbox('enablegroupings', get_string('enablegroupings', 'admin'), get_string('configenablegroupings', 'admin'), 0)); // Completion system require_once($CFG->libdir.'/completionlib.php'); diff --git a/admin/settings/plugins.php b/admin/settings/plugins.php index 631005bb317..a8b557326f7 100644 --- a/admin/settings/plugins.php +++ b/admin/settings/plugins.php @@ -148,11 +148,10 @@ if ($hassiteconfig) { $manage = get_string('manageportfolios', 'portfolio'); $url = "$CFG->wwwroot/$CFG->admin/portfolio.php"; - $ADMIN->add('modules', new admin_category('portfoliosettings', $catname)); + $ADMIN->add('modules', new admin_category('portfoliosettings', $catname, empty($CFG->enableportfolios))); // jump through hoops to do what we want $temp = new admin_settingpage('manageportfolios', get_string('manageportfolios', 'portfolio')); - $temp->add(new admin_setting_configcheckbox('portfolioenabled', get_string('enabled', 'portfolio'), get_string('enableddesc', 'portfolio'), false)); $temp->add(new admin_setting_manageportfolio()); $ADMIN->add('portfoliosettings', $temp); diff --git a/admin/settings/security.php b/admin/settings/security.php index fdcc3276f8a..102900ea34f 100644 --- a/admin/settings/security.php +++ b/admin/settings/security.php @@ -22,7 +22,6 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page $max_upload_choices[0] = get_string('serverlimit', 'admin'); $temp->add(new admin_setting_configselect('maxbytes', get_string('maxbytes', 'admin'), get_string('configmaxbytes', 'admin'), 0, $max_upload_choices)); - $temp->add(new admin_setting_configcheckbox('messaging', get_string('messaging', 'admin'), get_string('configmessaging','admin'), 1)); $temp->add(new admin_setting_configcheckbox('allowobjectembed', get_string('allowobjectembed', 'admin'), get_string('configallowobjectembed', 'admin'), 0)); $temp->add(new admin_setting_configcheckbox('enabletrusttext', get_string('enabletrusttext', 'admin'), get_string('configenabletrusttext', 'admin'), 0)); $temp->add(new admin_setting_configselect('maxeditingtime', get_string('maxeditingtime','admin'), get_string('configmaxeditingtime','admin'), 1800, @@ -39,13 +38,6 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page 'firstname' => get_string('firstname')))); $temp->add(new admin_setting_configcheckbox('extendedusernamechars', get_string('extendedusernamechars', 'admin'), get_string('configextendedusernamechars', 'admin'), 0)); $temp->add(new admin_setting_configtext('sitepolicy', get_string('sitepolicy', 'admin'), get_string('configsitepolicy', 'admin'), '', PARAM_RAW)); - $temp->add(new admin_setting_configselect('bloglevel', get_string('bloglevel', 'admin'), get_string('configbloglevel', 'admin'), 4, array(5 => get_string('worldblogs','blog'), - 4 => get_string('siteblogs','blog'), - 3 => get_string('courseblogs','blog'), - 2 => get_string('groupblogs','blog'), - 1 => get_string('personalblogs','blog'), - 0 => get_string('disableblogs','blog')))); - $temp->add(new admin_setting_configcheckbox('usetags', get_string('usetags','admin'),get_string('configusetags', 'admin'),'1')); $temp->add(new admin_setting_configcheckbox('keeptagnamecase', get_string('keeptagnamecase','admin'),get_string('configkeeptagnamecase', 'admin'),'1')); $temp->add(new admin_setting_configcheckbox('cronclionly', get_string('cronclionly', 'admin'), get_string('configcronclionly', 'admin'), 0)); $temp->add(new admin_setting_configpasswordunmask('cronremotepassword', get_string('cronremotepassword', 'admin'), get_string('configcronremotepassword', 'admin'), '')); diff --git a/admin/settings/server.php b/admin/settings/server.php index 095c0b5850d..3b6ca7776d7 100644 --- a/admin/settings/server.php +++ b/admin/settings/server.php @@ -93,12 +93,6 @@ $ADMIN->add('server', $temp, 50); -// "rss" settingpage -$temp = new admin_settingpage('rss', get_string('rss')); -$temp->add(new admin_setting_configcheckbox('enablerssfeeds', get_string('enablerssfeeds', 'admin'), get_string('configenablerssfeeds', 'admin'), 0)); -$ADMIN->add('server', $temp); - - // "debugging" settingpage $temp = new admin_settingpage('debugging', get_string('debugging', 'admin')); $temp->add(new admin_setting_special_debug()); @@ -110,8 +104,7 @@ $ADMIN->add('server', $temp); // "stats" settingpage -$temp = new admin_settingpage('stats', get_string('stats')); -$temp->add(new admin_setting_configcheckbox('enablestats', get_string('enablestats', 'admin'), get_string('configenablestats', 'admin'), 0)); +$temp = new admin_settingpage('stats', get_string('stats'), 'moodle/site:config', empty($CFG->enablestats)); $temp->add(new admin_setting_configselect('statsfirstrun', get_string('statsfirstrun', 'admin'), get_string('configstatsfirstrun', 'admin'), 'none', array('none' => get_string('none'), 60*60*24*7 => get_string('numweeks','moodle',1), 60*60*24*14 => get_string('numweeks','moodle',2), diff --git a/admin/settings/subsystems.php b/admin/settings/subsystems.php new file mode 100644 index 00000000000..b8610761ad9 --- /dev/null +++ b/admin/settings/subsystems.php @@ -0,0 +1,32 @@ +add(new admin_setting_configcheckbox('enablegroupings', get_string('enablegroupings', 'admin'), get_string('configenablegroupings', 'admin'), 0)); + + $optionalsubsystems->add(new admin_setting_configcheckbox('enableoutcomes', get_string('enableoutcomes', 'grades'), get_string('configenableoutcomes', 'grades'), 0)); + + $optionalsubsystems->add(new admin_setting_configcheckbox('usetags', get_string('usetags','admin'),get_string('configusetags', 'admin'), '1')); + + $optionalsubsystems->add(new admin_setting_configcheckbox('enablenotes', get_string('enablenotes', 'notes'), get_string('configenablenotes', 'notes'), 1)); + + $optionalsubsystems->add(new admin_setting_configcheckbox('enableportfolios', get_string('enabled', 'portfolio'), get_string('enableddesc', 'portfolio'), 0)); + + $optionalsubsystems->add(new admin_setting_configcheckbox('messaging', get_string('messaging', 'admin'), get_string('configmessaging','admin'), 1)); + + $optionalsubsystems->add(new admin_setting_configcheckbox('enablestats', get_string('enablestats', 'admin'), get_string('configenablestats', 'admin'), 0)); + + $optionalsubsystems->add(new admin_setting_configcheckbox('enablerssfeeds', get_string('enablerssfeeds', 'admin'), get_string('configenablerssfeeds', 'admin'), 0)); + + $optionalsubsystems->add(new admin_setting_configselect('bloglevel', get_string('bloglevel', 'admin'), + get_string('configbloglevel', 'admin'), 4, array(5 => get_string('worldblogs','blog'), + 4 => get_string('siteblogs','blog'), + 3 => get_string('courseblogs','blog'), + 2 => get_string('groupblogs','blog'), + 1 => get_string('personalblogs','blog'), + 0 => get_string('disableblogs','blog')))); + + $options = array('off'=>get_string('off', 'mnet'), 'strict'=>get_string('on', 'mnet')); + $optionalsubsystems->add(new admin_setting_configselect('mnet_dispatcher_mode', get_string('net', 'mnet'), get_string('configmnet', 'mnet'), 'off', $options)); + +} diff --git a/admin/settings/top.php b/admin/settings/top.php index f7364bc09ce..782ce434292 100644 --- a/admin/settings/top.php +++ b/admin/settings/top.php @@ -18,6 +18,11 @@ $ADMIN->add('root', new admin_externalpage('adminnotifications', get_string('not // hidden upgrade script $ADMIN->add('root', new admin_externalpage('upgradesettings', get_string('upgradesettings', 'admin'), "$CFG->wwwroot/$CFG->admin/upgradesettings.php", 'moodle/site:config', true)); +if ($hassiteconfig) { + $optionalsubsystems = new admin_settingpage('optionalsubsystems', get_string('optionalsubsystems', 'admin')); + $ADMIN->add('root', $optionalsubsystems); +} + $ADMIN->add('root', new admin_category('users', get_string('users','admin'))); $ADMIN->add('root', new admin_category('courses', get_string('courses','admin'))); $ADMIN->add('root', new admin_category('grades', get_string('grades'))); @@ -28,7 +33,8 @@ $ADMIN->add('root', new admin_category('security', get_string('security','admin' $ADMIN->add('root', new admin_category('appearance', get_string('appearance','admin'))); $ADMIN->add('root', new admin_category('frontpage', get_string('frontpage','admin'))); $ADMIN->add('root', new admin_category('server', get_string('server','admin'))); -$ADMIN->add('root', new admin_category('mnet', get_string('net','mnet'))); + +$ADMIN->add('root', new admin_category('mnet', get_string('net','mnet'), (isset($CFG->mnet_dispatcher_mode) and $CFG->mnet_dispatcher_mode === 'off'))); $ADMIN->add('root', new admin_category('reports', get_string('reports'))); foreach (get_list_of_plugins($CFG->admin.'/report') as $plugin) { @@ -43,6 +49,7 @@ foreach (get_list_of_plugins($CFG->admin.'/report') as $plugin) { // ugly hack for special access control in reports switch($plugin) { case 'backups': $cap = 'moodle/site:backup'; break; + case 'stats': if (empty($CFG->enablestats)) {continue 2;}; default: $cap = 'moodle/site:viewreports'; } $ADMIN->add('reports', new admin_externalpage('report'.$plugin, $reportname, "$CFG->wwwroot/$CFG->admin/report/$plugin/index.php",$cap)); diff --git a/lang/en_utf8/admin.php b/lang/en_utf8/admin.php index 9fd8bf36fc2..a17d998c95b 100644 --- a/lang/en_utf8/admin.php +++ b/lang/en_utf8/admin.php @@ -531,6 +531,7 @@ $string['numberofmissingstrings'] = 'Number of missing strings: $a'; $string['opensslrecommended'] = 'Installing the optional OpenSSL library is highly recommended -- it enables Moodle Networking functionality.'; $string['opentogoogle'] = 'Open to Google'; $string['optionalmaintenancemessage'] = 'Optional maintenance message'; +$string['optionalsubsystems'] = 'Optional subsystems'; $string['order1'] = 'First'; $string['order2'] = 'Second'; $string['order3'] = 'Third'; diff --git a/lang/en_utf8/mnet.php b/lang/en_utf8/mnet.php index c6c20c3a4f6..043fc8c1d09 100644 --- a/lang/en_utf8/mnet.php +++ b/lang/en_utf8/mnet.php @@ -1,4 +1,5 @@ name - $a->date'; $string['cannotdeletepost'] = 'Error occured while deleting post'; -$string['course'] = 'course'; +$string['configenablenotes'] = 'Enable storing of notes about individual users.'; $string['content'] = 'Content'; +$string['course'] = 'course'; $string['created'] = 'created'; $string['coursenotes'] = 'Course notes'; $string['deletenotes'] = 'Delete all notes'; $string['deleteconfirm'] = 'Delete this note?'; $string['editnote'] = 'Edit note'; +$string['enablenotes'] = 'Enable notes'; $string['invalidid'] = 'Invalid note ID specified'; $string['groupaddnewnote'] = 'Add a common note'; $string['note'] = 'Note'; $string['notes'] = 'Notes'; $string['nonotes'] = 'There are no notes of this type yet'; $string['nopermissiontodelete'] = 'You may not delete this note'; +$string['notesdisabled'] = 'Notes are disabled, sorry.'; $string['notesnotvisible'] = 'You are not allowed to view the notes.'; $string['nocontent'] = 'Note content can not be empty'; $string['nouser'] = 'You must select a user'; diff --git a/lib/portfoliolib.php b/lib/portfoliolib.php index c3b090e0c7c..717ed618333 100644 --- a/lib/portfoliolib.php +++ b/lib/portfoliolib.php @@ -188,7 +188,7 @@ function portfolio_add_button($callbackclass, $callbackargs, $callbackfile=null, global $SESSION, $CFG, $COURSE, $USER; - if (empty($CFG->portfolioenabled)) { + if (empty($CFG->enableportfolios)) { return; } @@ -317,7 +317,7 @@ function portfolio_add_button($callbackclass, $callbackargs, $callbackfile=null, function portfolio_instance_select($instances, $callerformats, $callbackclass, $selectname='instance', $return=false, $returnarray=false) { global $CFG; - if (empty($CFG->portfolioenabled)) { + if (empty($CFG->enableportfolios)) { return; } diff --git a/lib/weblib.php b/lib/weblib.php index 8827ffb8c4a..bc3eb81420d 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -4484,7 +4484,7 @@ has_capability('moodle/course:viewhiddenuserfields', $context)) { $output .= ''.get_string('blogs','blog').'
'; } //link to notes - if (has_capability('moodle/notes:manage', $context) || has_capability('moodle/notes:view', $context)) { + if (!empty($CFG->enablenotes) and (has_capability('moodle/notes:manage', $context) || has_capability('moodle/notes:view', $context))) { $output .= ''.get_string('notes','notes').'
'; } diff --git a/notes/delete.php b/notes/delete.php index 777e87d2318..99f77211ce7 100644 --- a/notes/delete.php +++ b/notes/delete.php @@ -32,6 +32,10 @@ if (!has_capability('moodle/notes:manage', $context)) { print_error('nopermissiontodelete', 'notes'); } +if (empty($CFG->enablenotes)) { + print_error('notesdisabled', 'notes'); +} + if (data_submitted() && confirm_sesskey()) { //if data was submitted and is valid, then delete note $returnurl = $CFG->wwwroot . '/notes/index.php?course=' . $course->id . '&user=' . $note->userid; diff --git a/notes/edit.php b/notes/edit.php index 72be122eecd..5ea85b29e21 100644 --- a/notes/edit.php +++ b/notes/edit.php @@ -42,6 +42,10 @@ $context = get_context_instance(CONTEXT_COURSE, $course->id); require_capability('moodle/notes:manage', $context); + if (empty($CFG->enablenotes)) { + print_error('notesdisabled', 'notes'); + } + /// create form $noteform = new note_edit_form(); diff --git a/notes/index.php b/notes/index.php index d120e359efb..914da334751 100644 --- a/notes/index.php +++ b/notes/index.php @@ -54,6 +54,9 @@ require_login($course); add_to_log($courseid, 'notes', 'view', 'index.php?course='.$courseid.'&user='.$userid, 'view notes'); + if (empty($CFG->enablenotes)) { + print_error('notesdisabled', 'notes'); + } /// output HTML if ($course->id == SITEID) { diff --git a/portfolio/add.php b/portfolio/add.php index 545f382e52f..6822a847efd 100644 --- a/portfolio/add.php +++ b/portfolio/add.php @@ -1,7 +1,7 @@ portfolioenabled)) { +if (empty($CFG->enableportfolios)) { print_error('disabled', 'portfolio'); } diff --git a/user/addnote.php b/user/addnote.php index 60ca56831ee..7f9391e4986 100644 --- a/user/addnote.php +++ b/user/addnote.php @@ -16,6 +16,10 @@ require_login($course->id); // to create notes the current user needs a capability require_capability('moodle/notes:manage', $context); +if (empty($CFG->enablenotes)) { + print_error('notesdisabled', 'notes'); +} + if (!empty($users) && confirm_sesskey()) { if (count($users) != count($contents) || count($users) != count($states)) { print_error('invalidformdata', '', $CFG->wwwroot.'/user/index.php?id='.$id); @@ -25,7 +29,7 @@ if (!empty($users) && confirm_sesskey()) { $note->courseid = $id; $note->format = FORMAT_PLAIN; foreach ($users as $k => $v) { - if(!$user = $DB->get_record('user', array('id'=>$v)) || empty($contents[$k])) { + if (!$user = $DB->get_record('user', array('id'=>$v)) || empty($contents[$k])) { continue; } $note->id = 0; diff --git a/user/groupaddnote.php b/user/groupaddnote.php index bc3145ce78d..800e9577710 100644 --- a/user/groupaddnote.php +++ b/user/groupaddnote.php @@ -17,6 +17,10 @@ require_login($course->id); // to create notes the current user needs a capability require_capability('moodle/notes:manage', $context); +if (empty($CFG->enablenotes)) { + print_error('notesdisabled', 'notes'); +} + if (!empty($users) && !empty($content) && confirm_sesskey()) { $note = new object(); $note->courseid = $id; diff --git a/user/index.php b/user/index.php index 19058654d38..a02da92b58c 100644 --- a/user/index.php +++ b/user/index.php @@ -858,7 +858,7 @@ echo ' '; $displaylist = array(); $displaylist['messageselect.php'] = get_string('messageselectadd'); - if (has_capability('moodle/notes:manage', $context) && $context->id != $frontpagectx->id) { + if (!empty($CFG->enablenotes) && has_capability('moodle/notes:manage', $context) && $context->id != $frontpagectx->id) { $displaylist['addnote.php'] = get_string('addnewnote', 'notes'); $displaylist['groupaddnote.php'] = get_string('groupaddnewnote', 'notes'); } diff --git a/user/portfolio.php b/user/portfolio.php index 5cf114b3a6f..5c1b610cae8 100644 --- a/user/portfolio.php +++ b/user/portfolio.php @@ -2,7 +2,7 @@ require_once(dirname(dirname(__FILE__)) . '/config.php'); -if (empty($CFG->portfolioenabled)) { +if (empty($CFG->enableportfolios)) { print_error('disabled', 'portfolio'); } diff --git a/user/tabs.php b/user/tabs.php index aa08ecb3067..db234aae238 100644 --- a/user/tabs.php +++ b/user/tabs.php @@ -59,7 +59,7 @@ $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?filtertype=course&filterselect='.$filterselect, get_string('blogs','blog')); } - if (has_capability('moodle/notes:manage', $coursecontext) || has_capability('moodle/notes:view', $coursecontext)) { + if (!empty($CFG->enablenotes) and (has_capability('moodle/notes:manage', $coursecontext) || has_capability('moodle/notes:view', $coursecontext))) { $toprow[] = new tabobject('notes', $CFG->wwwroot.'/notes/index.php?filtertype=course&filterselect=' . $filterselect, get_string('notes', 'notes')); } @@ -171,7 +171,7 @@ $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?userid='.$user->id.'&courseid='.$course->id, get_string('blog', 'blog')); } - if (has_capability('moodle/notes:manage', $coursecontext) || has_capability('moodle/notes:view', $coursecontext)) { + if (!empty($CFG->enablenotes) and (has_capability('moodle/notes:manage', $coursecontext) || has_capability('moodle/notes:view', $coursecontext))) { $toprow[] = new tabobject('notes', $CFG->wwwroot.'/notes/index.php?course='.$course->id . '&user=' . $user->id, get_string('notes', 'notes')); } @@ -239,7 +239,7 @@ } } - if (empty($userindexpage) && $user->id == $USER->id && !empty($CFG->portfolioenabled) && has_capability('moodle/portfolio:export', get_system_context())) { + if (!empty($user) and empty($userindexpage) && $user->id == $USER->id && !empty($CFG->enableportfolios) && has_capability('moodle/portfolio:export', get_system_context())) { /// Portfolio tab require_once($CFG->libdir . '/portfoliolib.php'); @@ -249,15 +249,16 @@ } // Repository Tab - if ($user->id == $USER->id) { + if (!empty($user) and $user->id == $USER->id) { require_once($CFG->dirroot . '/repository/lib.php'); - if (repository_instances($COURSE->context, $USER->id)) { + $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id); + if (repository_instances($coursecontext, $USER->id)) { $toprow[] = new tabobject('repositories', $CFG->wwwroot .'/user/repository.php', get_string('repositories', 'repository')); } } /// Messaging tab - if (has_capability('moodle/user:editownmessageprofile', $systemcontext)) { + if (!empty($user) and empty($userindexpage) and has_capability('moodle/user:editownmessageprofile', $systemcontext)) { $toprow[] = new tabobject('editmessage', $CFG->wwwroot.'/message/edit.php?id='.$user->id.'&course='.$course->id, get_string('editmymessage', 'message')); } diff --git a/version.php b/version.php index ae5be8fd0ef..bd18a45588b 100644 --- a/version.php +++ b/version.php @@ -6,7 +6,7 @@ // This is compared against the values stored in the database to determine // whether upgrades should be performed (see lib/db/*.php) - $version = 2008081900; // YYYYMMDD = date of the last version bump + $version = 2008082600; // YYYYMMDD = date of the last version bump // XX = daily increments $release = '2.0 dev (Build: 20080826)'; // Human-friendly version name