--- loncom/interface/courseclassifier.pm 2009/07/29 22:32:44 1.8 +++ loncom/interface/courseclassifier.pm 2010/07/08 23:19:19 1.9 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Utilities for classifying courses based on institutional code # -# $Id: courseclassifier.pm,v 1.8 2009/07/29 22:32:44 raeburn Exp $ +# $Id: courseclassifier.pm,v 1.9 2010/07/08 23:19:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -545,6 +545,7 @@ function setElements() { sub build_instcode_selectors { my ($numtitles,$lasttitle,$cat_items,$codetitles,$cat_titles,$cat_order) = @_; my $output; + my @standardnames = &get_standard_codeitems(); if ($numtitles > 0) { $output .= ''; for (my $k=0; $k<$lasttitle-1; $k++) { @@ -562,8 +563,8 @@ sub build_instcode_selectors { @longitems = @items; } $output .= ''; } $output .= '
'.$codetitles->[$k].'
'."\n". - ''."\n".''."\n"; for (my $i=0; $i<@items; $i++) { if ($longitems[$i] eq '') { $longitems[$i] = $items[$i]; @@ -573,13 +574,13 @@ sub build_instcode_selectors { $output .= '
'.$codetitles->[$lasttitle-1].'
'."\n". - ''."\n". ''."\n".''."\n". '
'."\n"; if ($numtitles > 4) { $output .= '

'.$codetitles->[$numtitles-1].'
'."\n". - '
'."\n"; } $output .= '
'; @@ -811,7 +812,7 @@ END } sub instcode_search_str { - my ($domain,$numtitles) = @_; + my ($domain,$numtitles,$codetitles) = @_; my $instcode; if (defined($numtitles) && $numtitles == 0) { $instcode = '.+'; @@ -820,13 +821,25 @@ sub instcode_search_str { my $defaults_result = &Apache::lonnet::auto_instcode_defaults($domain,\%codedefaults, \@code_order); + my @standardnames = &get_standard_codeitems(); + my %local_to_standard; + if (ref($codetitles) eq 'ARRAY') { + for (my $i=0; $i<@{$codetitles}; $i++) { + $local_to_standard{$codetitles->[$i]} = $standardnames[$i]; + } + } if ($defaults_result eq 'ok') { $instcode ='^'; - foreach my $item (@code_order) { - if ($env{'form.'.$item} eq '0' ) { - $instcode .= $codedefaults{$item}; + foreach my $loctitle (@code_order) { + my $item = $local_to_standard{$loctitle}; + if ($item ne '') { + if ($env{'form.'.$item} eq '0' ) { + $instcode .= $codedefaults{$item}; + } else { + $instcode .= $env{'form.'.$item}; + } } else { - $instcode .= $env{'form.'.$item}; + $instcode .= '.+'; } } $instcode .= '$'; @@ -837,5 +850,9 @@ sub instcode_search_str { return $instcode; } +sub get_standard_codeitems { + return ('Year','Semester','Department','Number'); +} + 1;