--- rat/lonuserstate.pm 2003/02/21 23:01:48 1.50 +++ rat/lonuserstate.pm 2003/03/02 01:43:01 1.55 @@ -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.50 2003/02/21 23:01:48 albertel Exp $ +# $Id: lonuserstate.pm,v 1.55 2003/03/02 01:43:01 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -67,6 +67,7 @@ my @cond; # Array with all of the con my $errtext; # variable with all errors my $retfurl; # variable with the very first URL in the course my %randompick; # randomly picked resources +my %randompickseed; # optional seed for randomly picking resources my %actualversion; # version of resource as loaded now my %setversion; # forced version of resource my %lastversion; # version when CC came in last @@ -138,19 +139,24 @@ sub loadmap { $turi='/adm/coursedocs/showdoc'.$turi; } } else { # normal internal resource - if (($embstyle eq 'img') || ($embstyle eq 'emb') - || ($turi=~/\/(syllabus|aboutme|navmaps|smppg|bulletinboard)$/)) { + if (($embstyle eq 'img') || ($embstyle eq 'emb')) { $turi='/adm/wrapper'.$turi; } } } - $hash{'src_'.$rid}=$turi; if (defined($hash{'ids_'.$turi})) { $hash{'ids_'.$turi}.=','.$rid; } else { $hash{'ids_'.$turi}=''.$rid; } + + if + ($turi=~/\/(syllabus|aboutme|navmaps|smppg|bulletinboard)$/) { + $turi.='?register=1'; + } + + $hash{'src_'.$rid}=$turi; if ($token->[2]->{'external'} eq 'true') { $hash{'ext_'.$rid}='true:'; @@ -239,6 +245,9 @@ sub loadmap { if ($token->[2]->{'name'} eq 'parameter_randompick') { $randompick{$referid}=$token->[2]->{'value'}; } + if ($token->[2]->{'name'} eq 'parameter_randompickseed') { + $randompick{$referid}=$token->[2]->{'value'}; + } } } @@ -368,11 +377,11 @@ sub accinit { my $resid=$_; my $uri=$hash{'src_'.$resid}; $uri=~s/^\/adm\/wrapper//; + $uri=&Apache::lonnet::declutter($uri); my @uriparts=split(/\//,$uri); my $urifile=$uriparts[$#uriparts]; $#uriparts--; my $uripath=join('/',@uriparts); - $uripath=~s/^\/res\///; if ($uripath) { my $uricond='0'; if (defined($hash{'conditions_'.$resid})) { @@ -432,6 +441,7 @@ sub pickrandom { next if ($#currentrids<$rndpick); # -------------------------------- randomly eliminate the ones that should stay my (undef,$id)=split(/\./,$rid); + if ($randompickseed{$rid}) { $id=$randompickseed{$rid}; } my $rndseed=&Apache::lonnet::rndseed($id); # use id instead of symb &Math::Random::random_set_seed_from_phrase($rndseed); my @whichids=&Math::Random::random_permuted_index($#currentrids+1);