--- loncom/interface/coursecatalog.pm 2009/11/23 21:45:18 1.57 +++ loncom/interface/coursecatalog.pm 2009/11/23 22:02:50 1.58 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler for displaying the course catalog interface # -# $Id: coursecatalog.pm,v 1.57 2009/11/23 21:45:18 raeburn Exp $ +# $Id: coursecatalog.pm,v 1.58 2009/11/23 22:02:50 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -334,78 +334,68 @@ sub category_breadcrumbs { my $currcat_str = ''. ''; - my $catlinks = ''.&mt('Catalog:').''; + my $catlinks = ''; return ($catlinks,$has_subcats,$selitem); } +sub main_category_selector { + my (@cats) = @_; + my $maincatlinks = ''."\n"; + } + return $maincatlinks; +} + sub get_depth_values { my $currdepth = 0; my $deeper = 0;
'.&mt('Catalog:').''; - } - } - if ($deeper == 0) { - $catlinks .= ''; + } + } + } else { + $catlinks .= &mt('Official courses (with institutional codes)'); + $env{'form.currcat_0'} = 'instcode::0'; + $currcat_str .= ''; + } + if ($deeper) { + for (my $i=1; $i<=$deeper; $i++) { + my $shallower = $i-1; + next if ($shallower == 0); + my ($cat,$container,$depth) = map { &unescape($_); } split(/:/,$env{'form.currcat_'.$shallower}); + if ($cat ne '') { + $catlinks .= '
'; my $has_subcats; my $selitem; - for (my $i=0; $i<$deeper; $i++) { - $currcat_str .= ''; - my ($cattitle,$shallower); - if ($i == 0) { - if (ref($cats[0]) eq 'ARRAY') { - if (@{$cats[0]} > 1) { - $cattitle = &mt('Main Categories'); - } + if (ref($cats[0]) eq 'ARRAY') { + if (@{$cats[0]} == 0) { + $catlinks .= &mt('No categories defined in this domain'); + } elsif (@{$cats[0]} == 1) { + if ($cats[0][0] eq 'instcode') { + $catlinks .= &mt('Official courses (with institutional codes)'); + $env{'form.currcat_0'} = 'instcode::0'; + } elsif ($cats[0][0] eq 'communities') { + $catlinks .= &mt('Communities'); + $env{'form.currcat_0'} = 'communities::0'; + } else { + my $name = $cats[0][0]; + my $item = &escape($name).'::0'; + $catlinks .= $name; + $env{'form.currcat_0'} = $item; } + $currcat_str .= ''; } else { - $shallower = $i-1; - my ($cat,$container,$depth) = map { &unescape($_); } split(/:/,$env{'form.currcat_'.$shallower}); - $cattitle = $cat; - } - if ($cattitle ne '') { - $catlinks .= ''.$cattitle.''.$crumbsymbol.''; - if (ref($cats[0]) eq 'ARRAY') { - if ((@{$cats[0]} == 1) && (@cats == 1)) { - if ($cats[0][0] eq 'instcode') { - $catlinks .= &mt('Official courses (with institutional codes)'). - ''; - $env{'form.currcat_0'} = 'instcode::0'; - } elsif ($cats[0][0] eq 'communities') { - $catlinks .= &mt('Communities'). - ''; - $env{'form.currcat_0'} = 'communities::0'; - } else { - my $name = $cats[0][0]; - my $item = &escape($name).'::0'; - $catlinks .= $name. - ''; - $env{'form.currcat_0'} = $item; - } + $catlinks .= &main_category_selector(@cats); + if (($env{'form.currcat_0'} ne '') && + ($env{'form.currcat_0'} ne 'instcode::0')) { + $catlinks .= $crumbsymbol; } else { - $has_subcats = 1; - my $buttontext = &mt('Show subcategories'); - $selitem = 'currcat_0'; - $catlinks .= ''. + ''."\n". - ' '; + $catlinks .= ''; } - } else { - $catlinks .= &mt('Official courses (with institutional codes)'). - ''; - $env{'form.currcat_0'} = 'instcode::0'; + unless ($i == $deeper) { + $catlinks .= $crumbsymbol; + } } - } else { my ($cat,$container,$depth); if ($env{'form.currcat_'.$currdepth} eq '') { my $shallower = $currdepth - 1; @@ -413,40 +403,66 @@ sub category_breadcrumbs { } else { ($cat,$container,$depth) = map { &unescape($_); } split(/:/,$env{'form.currcat_'.$currdepth}); } - my $deeper = $depth +1; - my $currcat = $cat; - if ($cat eq 'instcode') { - $currcat = &mt('Official courses (with institutional codes)'); - } elsif ($cat eq 'communities') { - $currcat = &mt('Communities'); - } - $catlinks .= ''.$currcat.''; - if (ref($cats[$deeper]{$cat}) eq 'ARRAY') { + my $deeperlevel = $depth +1; + if (ref($cats[$deeperlevel]{$cat}) eq 'ARRAY') { $has_subcats = 1; my $buttontext = &mt('Show subcategories'); - $selitem = 'currcat_'.$deeper; - $catlinks .= ': '; + if (@{$cats[$deeperlevel]{$cat}}) { $catlinks .= ''; - $buttontext = &mt('Pick subcategory'); + &mt('Subcategory ...').''; } - for (my $k=0; $k<@{$cats[$deeper]{$cat}}; $k++) { - my $name = $cats[$deeper]{$cat}[$k]; - my $item = &escape($name).':'.&escape($cat).':'.$deeper; + for (my $k=0; $k<@{$cats[$deeperlevel]{$cat}}; $k++) { + my $name = $cats[$deeperlevel]{$cat}[$k]; + my $item = &escape($name).':'.&escape($cat).':'.$deeperlevel; $catlinks .= ''."\n"; } - $catlinks .= ''."\n". - ' '; + $catlinks .= ''."\n"; } elsif ($cat ne 'instcode') { $catlinks .= ' '.&mt('(No subcategories)'); } + } else { + $selitem = 'currcat_0'; } $catlinks .= $currcat_str.'