';
return ($catlinks,$has_subcats,$selitem);
}
+sub main_category_selector {
+ my (@cats) = @_;
+ my $maincatlinks = ''."\n";
+ if (ref($cats[0]) eq 'ARRAY') {
+ if (@{$cats[0]} > 1) {
+ my $selected = '';
+ if ($env{'form.currcat_0'} eq '') {
+ $selected = ' selected="selected"';
+ }
+ $maincatlinks .=
+ ''."\n";
+ }
+ for (my $i=0; $i<@{$cats[0]}; $i++) {
+ my $name = $cats[0][$i];
+ my $item = &escape($name).'::0';
+ my $selected;
+ if ($env{'form.currcat_0'} eq $item) {
+ $selected = ' selected="selected"';
+ }
+ $maincatlinks .= ''."\n";
+ }
+ $maincatlinks .= ''."\n";
+ }
+ return $maincatlinks;
+}
+
sub get_depth_values {
my $currdepth = 0;
my $deeper = 0;
@@ -475,10 +528,15 @@ sub additional_filters {
if ($env{'form.showselfenroll'}) {
$show_selfenroll_status = 'checked="checked" ';
}
+ my $selfenroll_text;
+ if ($env{'form.currcat_0'} eq 'communities::0') {
+ $selfenroll_text = &mt('Only show communities which allow self-enrollment');
+ } else {
+ $selfenroll_text = &mt('Only show courses which allow self-enrollment');
+ }
$output .= '
'.
'
';
if (&user_is_dc($codedom)) {
my $showdetails_status;
@@ -490,14 +548,20 @@ sub additional_filters {
$showhidden_status = 'checked="checked" ';
}
my $dc_title = &Apache::lonnet::plaintext('dc');
+ my ($details_text,$hidden_text);
+ if ($env{'form.currcat_0'} eq 'communities::0') {
+ $details_text = &mt('Show full details for each community ([_1] only)',$dc_title);
+ $hidden_text = &mt('Include communities set to be hidden from catalog ([_1] only)',$dc_title);
+ } else {
+ $details_text = &mt('Show full details for each course ([_1] only)',$dc_title);
+ $hidden_text = &mt('Include courses set to be hidden from catalog ([_1] only)',$dc_title);
+ }
$output .= '
'."\n".
''."\n".'
'.
''."\n".'
';
}
$output .= '
';
@@ -518,8 +582,8 @@ sub user_is_dc {
}
sub search_official_courselist {
- my ($domain,$numtitles) = @_;
- my $instcode = &Apache::courseclassifier::instcode_search_str($domain,$numtitles);
+ my ($domain,$numtitles,$codetitles) = @_;
+ my $instcode = &Apache::courseclassifier::instcode_search_str($domain,$numtitles,$codetitles);
my $showhidden;
if (&user_is_dc($domain)) {
$showhidden = $env{'form.showhidden'};
@@ -558,20 +622,25 @@ sub search_courselist {
} else {
$filterstr = $filter;
}
- my $showhidden;
+ my ($showhidden,$typefilter);
if (&user_is_dc($domain)) {
$showhidden = $env{'form.showhidden'};
}
+ if ($env{'form.currcat_0'} eq 'communities::0') {
+ $typefilter = 'Community';
+ } else {
+ $typefilter = '.';
+ }
%courses =
&Apache::lonnet::courseiddump($domain,'.',1,'.','.','.',undef,undef,
- '.',1,$env{'form.showselfenroll'},
+ $typefilter,1,$env{'form.showselfenroll'},
$filterstr,$showhidden,'coursecatalog');
}
return %courses;
}
sub print_course_listing {
- my ($domain,$numtitles,$trails,$allitems,$subcats) = @_;
+ my ($domain,$numtitles,$trails,$allitems,$subcats,$codetitles) = @_;
my $output;
my %courses;
my $knownuser = &user_is_known();
@@ -586,17 +655,25 @@ sub print_course_listing {
$env{'form.coursenum'},
undef,undef,'.',1);
if (keys(%courses) == 0) {
- $output .= &mt('The courseID provided does not match a course in this domain.');
+ if ($env{'form.currcat_0'} eq 'communities::0') {
+ $output .= &mt('The courseID provided does not match a community in this domain.');
+ } else {
+ $output .= &mt('The courseID provided does not match a course in this domain.');
+ }
return $output;
}
} else {
if ($env{'form.currcat_0'} eq 'instcode::0') {
- %courses = &search_official_courselist($domain,$numtitles);
+ %courses = &search_official_courselist($domain,$numtitles,$codetitles);
} else {
%courses = &search_courselist($domain,$subcats);
}
if (keys(%courses) == 0) {
- $output = &mt('No courses match the criteria you selected.');
+ if ($env{'form.currcat_0'} eq 'communities::0') {
+ $output = &mt('No communities match the criteria you selected.');
+ } else {
+ $output = &mt('No courses match the criteria you selected.');
+ }
return $output;
}
if (($knownuser) && (!$env{'form.showdetails'}) && (!&user_is_dc($domain))) {
@@ -651,10 +728,14 @@ sub construct_data_table {
}
if ($knownuser) {
if ($details) {
- $output .=
- '