--- rat/lonuserstate.pm 2002/08/31 00:43:13 1.39 +++ rat/lonuserstate.pm 2002/10/10 19:05:32 1.46 @@ -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.39 2002/08/31 00:43:13 www Exp $ +# $Id: lonuserstate.pm,v 1.46 2002/10/10 19:05:32 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -68,6 +68,11 @@ 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 %actualversion; # version of resource as loaded now +my %setversion; # forced version of resource +my %lastversion; # version when CC came in last +my $versionmode; # how versioning is handled in this course + # --------------------------------------------------------- Loads map from disk sub loadmap { @@ -118,12 +123,18 @@ sub loadmap { unless ($ispage) { $turi=~/\.(\w+)$/; my $embstyle=&Apache::loncommon::fileembstyle($1); - if ($token->[2]->{'external'} eq 'true') { + if ($token->[2]->{'external'} eq 'true') { # external $turi=~s/^http\:\/\//\/adm\/wrapper\/ext\//; - } else { - my $embstyle=&Apache::loncommon::fileembstyle($1); + } elsif ($turi=~/^\/*uploaded\//) { # uploaded + if (($embstyle eq 'img') || ($embstyle eq 'emb') + || ($embstyle eq 'ssi')) { + $turi='/adm/wrapper'.$turi; + } elsif ($turi!~/\.(sequence|page)$/) { + $turi='/adm/coursedocs/showdoc'.$turi; + } + } else { # normal internal resource if (($embstyle eq 'img') || ($embstyle eq 'emb') - || ($turi=~/\/syllabus$/) || ($turi=~/\/aboutme$/)) { + || ($turi=~/\/(syllabus|aboutme|navmaps|smppg|bulletinboard)$/)) { $turi='/adm/wrapper'.$turi; } } @@ -474,6 +485,10 @@ sub readmap { &accinit($uri,$short,$fn); &pickrandom(); } +# ------------------------------------------------------------ Version tracking + if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) { + &Apache::lonnet::logthis('Will be version tracking'); + } unless ((untie(%hash)) && (untie(%parmhash))) { &Apache::lonnet::logthis("WARNING: ". "Could not untie coursemap $fn for $uri."); @@ -492,6 +507,17 @@ sub readmap { "Could not tie coursemap $fn for $uri."); } &Apache::lonmsg::author_res_msg($ENV{'request.course.uri'},$errtext); +# ------------------------------------------------- Check for critical messages + + my @what=&Apache::lonnet::dump('critical',$ENV{'user.domain'}, + $ENV{'user.name'}); + if ($what[0]) { + if (($what[0] ne 'con_lost') && ($what[0]!~/^error\:/)) { + $retfurl='/adm/email?critical=display'; + } + } + + return ($retfurl,$errtext); }