--- rat/lonuserstate.pm 2007/08/28 01:09:14 1.121 +++ rat/lonuserstate.pm 2007/08/28 01:13:19 1.122 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Construct and maintain state and binary representation of course for user # -# $Id: lonuserstate.pm,v 1.121 2007/08/28 01:09:14 albertel Exp $ +# $Id: lonuserstate.pm,v 1.122 2007/08/28 01:13:19 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -336,6 +336,7 @@ sub parse_mapalias_param { return if (!exists($hash{'src_'.$referid})); if ($token->[2]->{'name'}=~/^parameter_(0_)*mapalias$/) { + &count_mapalias($token->[2]->{'value'},$referid); $hash{'mapalias_'.$token->[2]->{'value'}}=$referid; } } @@ -599,6 +600,7 @@ sub readmap { %parmhash=(); $errtext=''; $pc=0; + &clear_mapalias_count(); &processversionfile(%cenv); my $furi=&Apache::lonnet::clutter($uri); $hash{'src_0.0'}=&versiontrack($furi); @@ -615,6 +617,7 @@ sub readmap { &accinit($uri,$short,$fn); &hiddenurls(); } + $errtext .= &get_mapalias_errors(); # ------------------------------------------------------- Put versions into src foreach my $key (keys(%hash)) { if ($key=~/^src_/) { @@ -746,6 +749,43 @@ sub evalstate { return $state; } +{ + my %mapalias_cache; + sub count_mapalias { + my ($value,$resid) = @_; + push(@{ $mapalias_cache{$value} }, $resid); + } + + sub get_mapalias_errors { + my $error_text; + foreach my $mapalias (sort(keys(%mapalias_cache))) { + next if (scalar(@{ $mapalias_cache{$mapalias} } ) == 1); + my $count; + my $which = + join('