--- loncom/interface/domainprefs.pm 2009/08/22 18:48:56 1.106
+++ loncom/interface/domainprefs.pm 2010/02/22 18:28:13 1.127
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.106 2009/08/22 18:48:56 raeburn Exp $
+# $Id: domainprefs.pm,v 1.127 2010/02/22 18:28:13 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -199,14 +199,16 @@ sub handler {
}
my %domconfig =
&Apache::lonnet::get_dom('configuration',['login','rolecolors',
- 'quotas','autoenroll','autoupdate','directorysrch',
- 'usercreation','usermodification','contacts','defaults',
- 'scantron','coursecategories','serverstatuses',
- 'requestcourses'],$dom);
+ 'quotas','autoenroll','autoupdate','autocreate',
+ 'directorysrch','usercreation','usermodification',
+ 'contacts','defaults','scantron','coursecategories',
+ 'serverstatuses','requestcourses','helpsettings',
+ 'coursedefaults'],$dom);
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll',
- 'autoupdate','directorysrch','contacts',
+ 'autoupdate','autocreate','directorysrch','contacts',
'usercreation','usermodification','scantron',
- 'requestcourses','coursecategories','serverstatuses');
+ 'requestcourses','coursecategories','serverstatuses','helpsettings',
+ 'coursedefaults');
my %prefs = (
'rolecolors' =>
{ text => 'Default color schemes',
@@ -220,12 +222,13 @@ sub handler {
{col1 => 'Administrator Settings',
col2 => '',}],
},
- 'login' =>
+ 'login' =>
{ text => 'Log-in page options',
help => 'Domain_Configuration_Login_Page',
header => [{col1 => 'Item',
col2 => '',}],
},
+
'defaults' =>
{ text => 'Default authentication/language/timezone',
help => 'Domain_Configuration_LangTZAuth',
@@ -253,6 +256,12 @@ sub handler {
{col1 => 'User population',
col2 => 'Updataeable user data'}],
},
+ 'autocreate' =>
+ { text => 'Auto-course creation settings',
+ help => 'Domain_Configuration_Auto_Creation',
+ header => [{col1 => 'Configuration Setting',
+ col2 => 'Value',}],
+ },
'directorysrch' =>
{ text => 'Institutional directory searches',
help => 'Domain_Configuration_InstDirectory_Search',
@@ -302,7 +311,7 @@ sub handler {
col2 => 'Value'}],
},
'coursecategories' =>
- { text => 'Cataloging of courses',
+ { text => 'Cataloging of courses/communities',
help => 'Domain_Configuration_Cataloging_Courses',
header => [{col1 => 'Category settings',
col2 => '',},
@@ -318,7 +327,37 @@ sub handler {
col3 => 'Specific IPs',
}],
},
+ 'helpsettings' =>
+ {text => 'Help page settings',
+ help => 'Domain_Configuration_Help_Settings',
+ header => [{col1 => 'Authenticated Help Settings',
+ col2 => ''},
+ {col1 => 'Unauthenticated Help Settings',
+ col2 => ''}],
+ },
+ 'coursedefaults' =>
+ {text => 'Course/Community defaults',
+ help => 'Domain_Configuration_Course_Defaults',
+ header => [{col1 => 'Setting',
+ col2 => 'Value',}],
+ },
+ 'privacy' =>
+ {text => 'User Privacy',
+ help => 'Domain_Configuration_User_Privacy',
+ header => [{col1 => 'Setting',
+ col2 => 'Value',}],
+ },
);
+ my %servers = &dom_servers($dom);
+ if (keys(%servers) > 1) {
+ $prefs{'login'} = { text => 'Log-in page options',
+ help => 'Domain_Configuration_Login_Page',
+ header => [{col1 => 'Log-in Service',
+ col2 => 'Server Setting',},
+ {col1 => 'Log-in Page Items',
+ col2 => ''}],
+ };
+ }
my @roles = ('student','coordinator','author','admin');
my @actions = &Apache::loncommon::get_env_multiple('form.actions');
&Apache::lonhtmlcommon::add_breadcrumb
@@ -386,6 +425,8 @@ sub process_changes {
$output = &modify_autoenroll($dom,%domconfig);
} elsif ($action eq 'autoupdate') {
$output = &modify_autoupdate($dom,%domconfig);
+ } elsif ($action eq 'autocreate') {
+ $output = &modify_autocreate($dom,%domconfig);
} elsif ($action eq 'directorysrch') {
$output = &modify_directorysrch($dom,%domconfig);
} elsif ($action eq 'usercreation') {
@@ -404,6 +445,10 @@ sub process_changes {
$output = &modify_serverstatuses($dom,%domconfig);
} elsif ($action eq 'requestcourses') {
$output = &modify_quotas($dom,$action,%domconfig);
+ } elsif ($action eq 'helpsettings') {
+ $output = &modify_helpsettings($r,$dom,$confname,%domconfig);
+ } elsif ($action eq 'coursedefaults') {
+ $output = &modify_coursedefaults($dom,%domconfig);
}
return $output;
}
@@ -423,11 +468,13 @@ sub print_config_box {
&Apache::loncommon::help_open_topic($item->{'help'}).''."\n".
'';
$rowtotal ++;
- if (($action eq 'autoupdate') || ($action eq 'rolecolors') ||
- ($action eq 'usercreation') || ($action eq 'usermodification') ||
- ($action eq 'coursecategories') || ($action eq 'requestcourses')) {
+ my $numheaders = 1;
+ if (ref($item->{'header'}) eq 'ARRAY') {
+ $numheaders = scalar(@{$item->{'header'}});
+ }
+ if ($numheaders > 1) {
my $colspan = '';
- if (($action eq 'rolecolors') || ($action eq 'coursecategories')) {
+ if (($action eq 'rolecolors') || ($action eq 'coursecategories') || ($action eq 'helpsettings')) {
$colspan = ' colspan="2"';
}
$output .= '
@@ -447,9 +494,14 @@ sub print_config_box {
$output .= &print_usermodification('top',$dom,$settings,\$rowtotal);
} elsif ($action eq 'coursecategories') {
$output .= &print_coursecategories('top',$dom,$item,$settings,\$rowtotal);
+ } elsif ($action eq 'login') {
+ $output .= &print_login('top',$dom,$confname,$phase,$settings,\$rowtotal);
+ $colspan = ' colspan="2"';
} elsif ($action eq 'requestcourses') {
$output .= &print_quotas($dom,$settings,\$rowtotal,$action);
- } else {
+ } elsif ($action eq 'helpsettings') {
+ $output .= &print_helpsettings('top',$dom,$confname,$settings,\$rowtotal);
+ } elsif ($action eq 'rolecolors') {
$output .= &print_rolecolors($phase,'student',$dom,$confname,$settings,\$rowtotal);
}
$output .= '
@@ -496,9 +548,13 @@ sub print_config_box {
$rowtotal ++;
} elsif ($action eq 'coursecategories') {
$output .= &print_coursecategories('bottom',$dom,$item,$settings,\$rowtotal);
+ } elsif ($action eq 'login') {
+ $output .= &print_login('bottom',$dom,$confname,$phase,$settings,\$rowtotal);
} elsif ($action eq 'requestcourses') {
$output .= &print_courserequestmail($dom,$settings,\$rowtotal);
- } else {
+ } elsif ($action eq 'helpsettings') {
+ $output .= &print_helpsettings('bottom',$dom,$confname,$settings,\$rowtotal);
+ } elsif ($action eq 'rolecolors') {
$output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).'
@@ -566,11 +622,14 @@ sub print_config_box {
$output .= '';
$rowtotal ++;
if ($action eq 'login') {
- $output .= &print_login($dom,$confname,$phase,$settings,\$rowtotal);
+ $output .= &print_login('bottom',$dom,$confname,$phase,$settings,
+ \$rowtotal);
} elsif ($action eq 'quotas') {
$output .= &print_quotas($dom,$settings,\$rowtotal,$action);
} elsif ($action eq 'autoenroll') {
$output .= &print_autoenroll($dom,$settings,\$rowtotal);
+ } elsif ($action eq 'autocreate') {
+ $output .= &print_autocreate($dom,$settings,\$rowtotal);
} elsif ($action eq 'directorysrch') {
$output .= &print_directorysrch($dom,$settings,\$rowtotal);
} elsif ($action eq 'contacts') {
@@ -581,6 +640,10 @@ sub print_config_box {
$output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal);
} elsif ($action eq 'serverstatuses') {
$output .= &print_serverstatuses($dom,$settings,\$rowtotal);
+ } elsif ($action eq 'helpsettings') {
+ $output .= &print_helpsettings('top',$dom,$confname,$settings,\$rowtotal);
+ } elsif ($action eq 'coursedefaults') {
+ $output .= &print_coursedefaults($dom,$settings,\$rowtotal);
}
}
$output .= '
@@ -592,8 +655,48 @@ sub print_config_box {
}
sub print_login {
- my ($dom,$confname,$phase,$settings,$rowtotal) = @_;
+ my ($position,$dom,$confname,$phase,$settings,$rowtotal) = @_;
+ my ($css_class,$datatable);
my %choices = &login_choices();
+ my $itemcount = 1;
+
+ if ($position eq 'top') {
+ my %servers = &dom_servers($dom);
+ my $choice = $choices{'disallowlogin'};
+ $css_class = ' class="LC_odd_row"';
+ $datatable .= '
'.$choices{'disallowlogin'}.' | '.
+ ''.$choices{'hostid'}.' | '.
+ ''.$choices{'serverurl'}.' | '."\n";
+ my %disallowed;
+ if (ref($settings) eq 'HASH') {
+ if (ref($settings->{'loginvia'}) eq 'HASH') {
+ %disallowed = %{$settings->{'loginvia'}};
+ }
+ }
+ foreach my $lonhost (sort(keys(%servers))) {
+ my $direct = 'selected="selected"';
+ if ($disallowed{$lonhost} eq '') {
+ $direct = '';
+ }
+ $datatable .= ''.$servers{$lonhost}.' | '.
+ ' | ';
+ }
+ $datatable .= '
|
';
+ return $datatable;
+ }
+
my %defaultchecked = (
'coursecatalog' => 'on',
'adminmail' => 'off',
@@ -728,24 +831,28 @@ sub print_login {
sub login_choices {
my %choices =
&Apache::lonlocal::texthash (
- coursecatalog => 'Display Course Catalog link?',
- adminmail => "Display Administrator's E-mail Address?",
- newuser => "Link to create a user account",
- img => "Header",
- logo => "Main Logo",
- domlogo => "Domain Logo",
- login => "Log-in Header",
- textcol => "Text color",
- bgcol => "Box color",
- bgs => "Background colors",
- links => "Link colors",
- font => "Font color",
- pgbg => "Header",
- mainbg => "Page",
- sidebg => "Login box",
- link => "Link",
- alink => "Active link",
- vlink => "Visited link",
+ coursecatalog => 'Display Course/Community Catalog link?',
+ adminmail => "Display Administrator's E-mail Address?",
+ disallowlogin => "Login page requests redirected",
+ hostid => "Server",
+ serverurl => "Redirect to log-in via:",
+ directlogin => "No redirect",
+ newuser => "Link to create a user account",
+ img => "Header",
+ logo => "Main Logo",
+ domlogo => "Domain Logo",
+ login => "Log-in Header",
+ textcol => "Text color",
+ bgcol => "Box color",
+ bgs => "Background colors",
+ links => "Link colors",
+ font => "Font color",
+ pgbg => "Header",
+ mainbg => "Page",
+ sidebg => "Login box",
+ link => "Link",
+ alink => "Active link",
+ vlink => "Visited link",
);
return %choices;
}
@@ -849,20 +956,22 @@ sub display_color_options {
' '.
'';
- $datatable .= ''.
- ''.$choices->{'fontmenu'}.' | ';
- if (!$is_custom->{'fontmenu'}) {
- $datatable .= ''.&mt('Default in use:').' '.$defaults->{'fontmenu'}.' | ';
- } else {
- $datatable .= ' | ';
+ unless ($role eq 'login') {
+ $datatable .= '
'.
+ ''.$choices->{'fontmenu'}.' | ';
+ if (!$is_custom->{'fontmenu'}) {
+ $datatable .= ''.&mt('Default in use:').' '.$defaults->{'fontmenu'}.' | ';
+ } else {
+ $datatable .= ' | ';
+ }
+ $fontlink = &color_pick($phase,$role,'fontmenu',$choices->{'fontmenu'},$designs->{'fontmenu'});
+ $datatable .= ''.
+ ' '.$fontlink.
+ ' '.
+ ' |
';
}
- $fontlink = &color_pick($phase,$role,'fontmenu',$choices->{'fontmenu'},$designs->{'fontmenu'});
- $datatable .= ''.
- ' '.$fontlink.
- ' '.
- ' | ';
my $switchserver = &check_switchserver($dom,$confname);
foreach my $img (@{$images}) {
$itemcount ++;
@@ -1218,15 +1327,15 @@ sub print_quotas {
$cell{$item} .= ' ';
+ $titles{$option}.'';
if ($option eq 'autolimit') {
- $cell{$item} .= '';
}
- $cell{$item} .= ' ';
+ $cell{$item} .= ' ';
if ($option eq 'autolimit') {
- $cell{$item} .= $titles{'unlimited'}
+ $cell{$item} .= $titles{'unlimited'};
}
}
} else {
@@ -1326,13 +1435,13 @@ sub print_quotas {
'_default" value="'.$val.'"'.$checked.' />'.
$titles{$option}.'';
if ($option eq 'autolimit') {
- $defcell{$item} .= '';
}
- $defcell{$item} .= ' ';
+ $defcell{$item} .= ' ';
if ($option eq 'autolimit') {
- $defcell{$item} .= $titles{'unlimited'}
+ $defcell{$item} .= $titles{'unlimited'};
}
}
} else {
@@ -1371,16 +1480,15 @@ sub print_quotas {
$datatable .= ''.
''.&mt('LON-CAPA Advanced Users').' ';
if ($context eq 'requestcourses') {
- $datatable .= &mt('(overrides affiliation, if set)');
- } else {
- $datatable .= &mt('(overrides affiliation, if checked)');
- }
- $datatable .= ' | '.
- '';
- if ($context eq 'requestcourses') {
- $datatable .= '';
+ $datatable .= &mt('(overrides affiliation, if set)').
+ ''.
+ ''.
+ '';
} else {
- $datatable .= ' ';
+ $datatable .= &mt('(overrides affiliation, if checked)').
+ ''.
+ ''.
+ ' ';
}
my %advcell;
foreach my $item (@usertools) {
@@ -1430,13 +1538,13 @@ sub print_quotas {
'__LC_adv" value="'.$val.'"'.$checked.' />'.
$titles{$option}.'';
if ($option eq 'autolimit') {
- $advcell{$item} .= '';
}
- $advcell{$item} .= ' ';
+ $advcell{$item} .= ' ';
if ($option eq 'autolimit') {
- $advcell{$item} .= $titles{'unlimited'}
+ $advcell{$item} .= $titles{'unlimited'};
}
}
} else {
@@ -1664,6 +1772,57 @@ sub print_autoupdate {
return $datatable;
}
+sub print_autocreate {
+ my ($dom,$settings,$rowtotal) = @_;
+ my (%createon,%createoff);
+ my $curr_dc;
+ my @types = ('xml','req');
+ if (ref($settings) eq 'HASH') {
+ foreach my $item (@types) {
+ $createoff{$item} = ' checked="checked" ';
+ $createon{$item} = ' ';
+ if (exists($settings->{$item})) {
+ if ($settings->{$item}) {
+ $createon{$item} = ' checked="checked" ';
+ $createoff{$item} = ' ';
+ }
+ }
+ }
+ $curr_dc = $settings->{'xmldc'};
+ } else {
+ foreach my $item (@types) {
+ $createoff{$item} = ' checked="checked" ';
+ $createon{$item} = ' ';
+ }
+ }
+ $$rowtotal += 2;
+ my $datatable=' | '.
+ ''.&mt('Create pending official courses from XML files').' | '.
+ ' '.
+ '';
+ my ($numdc,$dctable) = &active_dc_picker($dom,$curr_dc);
+ if ($numdc > 1) {
+ $datatable .= ' | '.
+ &mt('XML files processed as: (choose Dom. Coord.)').
+ ' | '.$dctable.' | '.
+ '';
+ $$rowtotal ++ ;
+ } else {
+ $datatable .= ' ';
+ }
+ $datatable .= ''.&mt('Create pending requests for official courses (if validated)').' | '.
+ ' '.
+ ' | '.
+ ' ';
+ return $datatable;
+}
+
sub print_directorysrch {
my ($dom,$settings,$rowtotal) = @_;
my $srchon = ' ';
@@ -1852,6 +2011,161 @@ sub print_contacts {
return $datatable;
}
+sub print_helpsettings {
+
+ my ($position,$dom,$confname,$settings,$rowtotal) = @_;
+ my ($css_class,$datatable);
+
+ my $switchserver = &check_switchserver($dom,$confname);
+
+ my $itemcount = 1;
+
+ if ($position eq 'top') {
+
+ my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles);
+
+ %choices =
+ &Apache::lonlocal::texthash (
+ submitbugs => 'Display "Submit a bug" link?',
+ );
+
+ %defaultchecked = ('submitbugs' => 'on');
+
+ @toggles = ('submitbugs',);
+
+ foreach my $item (@toggles) {
+ if ($defaultchecked{$item} eq 'on') {
+ $checkedon{$item} = ' checked="checked" ';
+ $checkedoff{$item} = ' ';
+ } elsif ($defaultchecked{$item} eq 'off') {
+ $checkedoff{$item} = ' checked="checked" ';
+ $checkedon{$item} = ' ';
+ }
+ }
+
+ if (ref($settings) eq 'HASH') {
+ foreach my $item (@toggles) {
+ if ($settings->{$item} eq '1') {
+ $checkedon{$item} = ' checked="checked" ';
+ $checkedoff{$item} = ' ';
+ } elsif ($settings->{$item} eq '0') {
+ $checkedoff{$item} = ' checked="checked" ';
+ $checkedon{$item} = ' ';
+ }
+ }
+ }
+
+ foreach my $item (@toggles) {
+ $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
+ $datatable .=
+ '
+ '.$choices{$item}.' |
+ |
+
+
+ '.
+ ' | '.
+ ' ';
+ $itemcount ++;
+ }
+
+ } else {
+
+ $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
+
+ $datatable .= '';
+
+ if (ref($settings) eq 'HASH') {
+ if ($settings->{'loginhelpurl'} ne '') {
+ my($directory, $filename) = $settings->{'loginhelpurl'} =~ m/(.*\/)(.*)$/;
+ $datatable .= ' | ';
+ $datatable .= ' | '
+ } else {
+ $datatable .= ' | ';
+ $datatable .= ' | ';
+ }
+ } else {
+ $datatable .= ' | ';
+ $datatable .= ' | ';
+ }
+
+ $datatable .= '';
+ if ($switchserver) {
+ $datatable .= &mt('Upload to library server: [_1]',$switchserver);
+ } else {
+ $datatable .= &mt('Upload Custom Login Page Help File:');
+ $datatable .='';
+ }
+ $datatable .= ' | ';
+
+ }
+
+ return $datatable;
+
+}
+
+
+sub radiobutton_prefs {
+ my ($settings,$toggles,$defaultchecked,$choices,$itemcount) = @_;
+ return unless ((ref($toggles) eq 'ARRAY') && (ref($defaultchecked) eq 'HASH') &&
+ (ref($choices) eq 'HASH'));
+
+ my (%checkedon,%checkedoff,$datatable,$css_class);
+
+ foreach my $item (@{$toggles}) {
+ if ($defaultchecked->{$item} eq 'on') {
+ $checkedon{$item} = ' checked="checked" ';
+ $checkedoff{$item} = ' ';
+ } elsif ($defaultchecked->{$item} eq 'off') {
+ $checkedoff{$item} = ' checked="checked" ';
+ $checkedon{$item} = ' ';
+ }
+ }
+ if (ref($settings) eq 'HASH') {
+ foreach my $item (@{$toggles}) {
+ if ($settings->{$item} eq '1') {
+ $checkedon{$item} = ' checked="checked" ';
+ $checkedoff{$item} = ' ';
+ } elsif ($settings->{$item} eq '0') {
+ $checkedoff{$item} = ' checked="checked" ';
+ $checkedon{$item} = ' ';
+ }
+ }
+ }
+ foreach my $item (@{$toggles}) {
+ $css_class = $itemcount%2?' class="LC_odd_row"':'';
+ $datatable .=
+ ''.$choices->{$item}.
+ ' | '.
+ ''.
+ ' '.
+ ' | '.
+ ' ';
+ $itemcount ++;
+ }
+ return ($datatable,$itemcount);
+}
+
+sub print_coursedefaults {
+ my ($dom,$settings,$rowtotal) = @_;
+ my ($css_class,$datatable);
+ my $itemcount = 1;
+ my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles);
+ %choices =
+ &Apache::lonlocal::texthash (
+ canuse_pdfforms => 'Course/Community users can create/upload PDF forms',
+ );
+ %defaultchecked = ('canuse_pdfforms' => 'off');
+ @toggles = ('canuse_pdfforms',);
+ ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
+ \%choices,$itemcount);
+ $$rowtotal += $itemcount;
+ return $datatable;
+}
+
sub contact_titles {
my %titles = &Apache::lonlocal::texthash (
'supportemail' => 'Support E-mail address',
@@ -2463,6 +2777,11 @@ sub print_coursecategories {
my $toggle_cats_dom = ' checked="checked" ';
my $can_cat_crs = ' ';
my $can_cat_dom = ' checked="checked" ';
+ my $toggle_catscomm_comm = ' ';
+ my $toggle_catscomm_dom = ' checked="checked" ';
+ my $can_catcomm_comm = ' ';
+ my $can_catcomm_dom = ' checked="checked" ';
+
if (ref($settings) eq 'HASH') {
if ($settings->{'togglecats'} eq 'crs') {
$toggle_cats_crs = $toggle_cats_dom;
@@ -2472,14 +2791,25 @@ sub print_coursecategories {
$can_cat_crs = $can_cat_dom;
$can_cat_dom = ' ';
}
+ if ($settings->{'togglecatscomm'} eq 'comm') {
+ $toggle_catscomm_comm = $toggle_catscomm_dom;
+ $toggle_catscomm_dom = ' ';
+ }
+ if ($settings->{'categorizecomm'} eq 'comm') {
+ $can_catcomm_comm = $can_catcomm_dom;
+ $can_catcomm_dom = ' ';
+ }
}
my %title = &Apache::lonlocal::texthash (
- togglecats => 'Show/Hide a course in the catalog',
- categorize => 'Assign a category to a course',
+ togglecats => 'Show/Hide a course in catalog',
+ togglecatscomm => 'Show/Hide a community in catalog',
+ categorize => 'Assign a category to a course',
+ categorizecomm => 'Assign a category to a community',
);
my %level = &Apache::lonlocal::texthash (
- dom => 'Set in "Modify Course" (Domain)',
- crs => 'Set in "Modify Parameters" (Course)',
+ dom => 'Set in Domain',
+ crs => 'Set in Course',
+ comm => 'Set in Community',
);
$datatable = ''.
''.$title{'togglecats'}.' | '.
@@ -2495,8 +2825,22 @@ sub print_coursecategories {
$can_cat_dom.' value="dom" />'.$level{'dom'}.' '.
''.
+ ' '.
+ ''.$title{'togglecatscomm'}.' | '.
+ ' '.
+ ' | '.
+ ' '.
+ ''.$title{'categorizecomm'}.' | '.
+ ''.
+ ' '.
+ ' | '.
' ';
- $$rowtotal += 2;
+ $$rowtotal += 4;
} else {
my $css_class;
my $itemcount = 1;
@@ -2518,7 +2862,15 @@ sub print_coursecategories {
if (ref($cats[0]) eq 'ARRAY') {
my $numtop = @{$cats[0]};
my $maxnum = $numtop;
- if ((!grep(/^instcode$/,@{$cats[0]})) || ($cathash->{'instcode::0'} eq '')) {
+ my %default_names = (
+ instcode => &mt('Official courses'),
+ communities => &mt('Communities'),
+ );
+
+ if ((!grep(/^instcode$/,@{$cats[0]})) ||
+ ($cathash->{'instcode::0'} eq '') ||
+ (!grep(/^communities$/,@{$cats[0]})) ||
+ ($cathash->{'communities::0'} eq '')) {
$maxnum ++;
}
my $lastidx;
@@ -2539,14 +2891,33 @@ sub print_coursecategories {
$datatable .= '';
}
$datatable .= '';
- if ($parent eq 'instcode') {
- $datatable .= ''.&mt('Official courses')
- .' ('
- .&mt('with institutional codes').') | '
- .' '
- .' | ';
+ if ($parent eq 'instcode' || $parent eq 'communities') {
+ $datatable .= ''
+ .$default_names{$parent}.'';
+ if ($parent eq 'instcode') {
+ $datatable .= ' ('
+ .&mt('with institutional codes')
+ .')';
+ } else {
+ $datatable .= '';
+ }
+ $datatable .= ' | ';
} else {
$datatable .= $parent
.'
|
|