]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-16166 centralised enabling of subsystems, fixed some warnings and general cleanup
authorskodak <skodak>
Tue, 26 Aug 2008 05:45:07 +0000 (05:45 +0000)
committerskodak <skodak>
Tue, 26 Aug 2008 05:45:07 +0000 (05:45 +0000)
24 files changed:
admin/cron.php
admin/mnet/index.php
admin/settings/grades.php
admin/settings/misc.php
admin/settings/plugins.php
admin/settings/security.php
admin/settings/server.php
admin/settings/subsystems.php [new file with mode: 0644]
admin/settings/top.php
lang/en_utf8/admin.php
lang/en_utf8/mnet.php
lang/en_utf8/notes.php
lib/portfoliolib.php
lib/weblib.php
notes/delete.php
notes/edit.php
notes/index.php
portfolio/add.php
user/addnote.php
user/groupaddnote.php
user/index.php
user/portfolio.php
user/tabs.php
version.php

index 770f158fed89a54747f426009d8dff76b3a8d70b..c90d28b57cf9cc077a0f0b29f9214e8f451eed0d 100644 (file)
     events_cron();
     mtrace('done.');
 
-    if ($CFG->portfolioenabled) {
+    if ($CFG->enableportfolios) {
         // Portfolio cron
         mtrace('Starting the portfolio cron...');
         require_once($CFG->libdir . '/portfoliolib.php');
index d03efaa566090b58d64f18a55ccc281ef71a38cb..6128163220ff1e56ada552ea57235fe40b157f16 100644 (file)
                     <td align="right"><?php print_string('expires', 'mnet'); ?>:</td>
                     <td><?php echo userdate($MNET->public_key_expires); ?></td>
                 </tr>
-                <tr valign="top">
-                    <td align="right"><?php print_string('net', 'mnet'); ?>:</td>
-                    <td><input type="hidden" name="sesskey" value="<?php echo $USER->sesskey ?>" />
-                        <input type="radio" name="mode" value="off" <?php echo ("off" == $CFG->mnet_dispatcher_mode)? 'checked="checked"' : '' ?> /> <?php print_string('off', 'mnet'); ?> <br />
-                        <input type="radio" name="mode" value="strict" <?php echo ("strict" == $CFG->mnet_dispatcher_mode)? 'checked="checked"' : '' ?> /> <?php print_string('on', 'mnet'); ?><br />
-                        <input type="submit" name="submit" value="<?php print_string('savechanges'); ?>" />
-                    </td>
-                </tr>
             </table>
             </td>
         </tr>
index 05ea2f682d810d6dc0bab1b93345f6d77baa6f55..26e14b4443760d874098c50737bf9b012bb49afd 100644 (file)
@@ -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);
index ec9ac0b33f0bb740496d09f74dc447792102a5a3..b4cb7160976d44d2e1e5d74547234324317c1cec 100644 (file)
@@ -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');
index 631005bb3175784744106ee421b7a8f155b03c33..a8b557326f74157156a519d099e49c8ac7e7dc20 100644 (file)
@@ -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);
index fdcc3276f8a717110288fb35e1a3975d85037088..102900ea34f263d4db6105932e6c003385dc0137 100644 (file)
@@ -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'), ''));
index 095c0b5850df8921331d233eb7989c2ca9e38e69..3b6ca7776d760e8a747f29794db126ab44c06b10 100644 (file)
@@ -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 (file)
index 0000000..b861076
--- /dev/null
@@ -0,0 +1,32 @@
+<?php // $Id$
+
+if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
+
+    $optionalsubsystems->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));
+
+}
index f7364bc09ce953be4753cbdef2c7b21abb85c7b1..782ce434292754a7e7d4863ce313d999607fb65b 100644 (file)
@@ -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));
index 9fd8bf36fc234de9547fb1dac98e4c2cf677d92c..a17d998c95ba4edcbe9df9c6b2fac0dfa27cf15e 100644 (file)
@@ -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';
index c6c20c3a4f6ffc5958b70f9f15753d5b0e9bae7b..043fc8c1d09c8de30f244fee18784cc6909bd724 100644 (file)
@@ -1,4 +1,5 @@
 <?PHP
+$string['configmnet']                   = 'Moodle networking allows communication of this server with other servers or services.';
 $string['xmlrpc-missing']               = 'You must have XML-RPC installed in your PHP build to be able to use this feature.';
 $string['description']                  = 'Description';
 $string['mnet']                         = 'Moodle Networking';
index 2419f20a9c04759a77d27fabc184146fef4aca1b..d0c5668264d8656fd21087360cb7c9084ed46d90 100755 (executable)
@@ -4,19 +4,22 @@ $string['addnewnote'] = 'Add a new note';
 $string['addnewnoteselect'] = 'Select users to write notes about';
 $string['bynameondate'] = 'by $a->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';
index c3b090e0c7c707004add3f41bf7ac7a029b2c42f..717ed618333ea1691b5ba4690b0455566d8fa51c 100644 (file)
@@ -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;
     }
 
index 8827ffb8c4a97ccf8e0bd5cf7d8cc31739f390e7..bc3eb81420dc9c61280727f2b347c502af44983c 100644 (file)
@@ -4484,7 +4484,7 @@ has_capability('moodle/course:viewhiddenuserfields', $context)) {
         $output .= '<a href="'.$CFG->wwwroot.'/blog/index.php?userid='.$user->id.'">'.get_string('blogs','blog').'</a><br />';
     }
     //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 .= '<a href="'.$CFG->wwwroot.'/notes/index.php?course=' . $course->id. '&amp;user='.$user->id.'">'.get_string('notes','notes').'</a><br />';
     }
 
index 777e87d2318a8d2900381dc7c3739cc005ebda1d..99f77211ce79461d9bdd517595207464e07c85b1 100644 (file)
@@ -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 . '&amp;user=' . $note->userid;
index 72be122eecdd8bc0c8411276e902a2bf5aa8b5cd..5ea85b29e217704eca82ed7f1b839a29aa30196c 100644 (file)
     $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();
 
index d120e359efbf05d1cabe14bc9ddbb44f26324c7f..914da33475146d7cd3a5ac9c8a560739188364d0 100644 (file)
@@ -54,6 +54,9 @@
     require_login($course);
     add_to_log($courseid, 'notes', 'view', 'index.php?course='.$courseid.'&amp;user='.$userid, 'view notes');
 
+    if (empty($CFG->enablenotes)) {
+        print_error('notesdisabled', 'notes');
+    }
 
 /// output HTML
     if ($course->id == SITEID) {
index 545f382e52f7e338bff4fa666de45cbc17e333f5..6822a847efd9da2ebfb32470ba8a320867fd63fe 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 require_once(dirname(dirname(__FILE__)) . '/config.php');
 
-if (empty($CFG->portfolioenabled)) {
+if (empty($CFG->enableportfolios)) {
     print_error('disabled', 'portfolio');
 }
 
index 60ca56831eed8b98c7dd7a8238a3f7071b2c802a..7f9391e498615c3342a9ca0bcd98cf6ff6d47d8d 100644 (file)
@@ -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;
index bc3145ce78d30ac531837ddf374d2c02bb61f14b..800e9577710d3990f8bfc8944f65fe9e87cfe511 100644 (file)
@@ -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;
index 19058654d385082514f7d1af6814cdff08104563..a02da92b58cb86a4e568078a3c9751cb0fdf9581 100644 (file)
         echo '<input type="button" onclick="checknone()" value="'.get_string('deselectall').'" /> ';
         $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');
         }
index 5cf114b3a6ff64ccfffddbe3b6ad670bb62c476c..5c1b610cae8bc2b2186d1919bca29a1652c8edd5 100644 (file)
@@ -2,7 +2,7 @@
 
 require_once(dirname(dirname(__FILE__)) . '/config.php');
 
-if (empty($CFG->portfolioenabled)) {
+if (empty($CFG->enableportfolios)) {
     print_error('disabled', 'portfolio');
 }
 
index aa08ecb3067e7ab7b9f5904a3bf3cff02fd68a53..db234aae238269295ae44baca3fc905565586eb8 100644 (file)
@@ -59,7 +59,7 @@
             $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?filtertype=course&amp;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&amp;filterselect=' . $filterselect, get_string('notes', 'notes'));
         }
 
             $toprow[] = new tabobject('blogs', $CFG->wwwroot.'/blog/index.php?userid='.$user->id.'&amp;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 . '&amp;user=' . $user->id, get_string('notes', 'notes'));
         }
 
         }
     }
 
-    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');
     }
 
     // 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.'&amp;course='.$course->id, get_string('editmymessage', 'message'));
     }
 
index ae5be8fd0ef62a250288740b55d493aa409ed175..bd18a45588bd808c858a77149699b034eb0ebba8 100644 (file)
@@ -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