[LON-CAPA-cvs] cvs: rat(version_2_11_X) / lonpageflip.pm

raeburn raeburn at source.lon-capa.org
Sat Mar 14 18:29:25 EDT 2015


raeburn		Sat Mar 14 22:29:25 2015 EDT

  Modified files:              (Branch: version_2_11_X)
    /rat	lonpageflip.pm 
  Log:
  - For 2.11
    Backport 1.86, 1.87, 1.88.
  
  
Index: rat/lonpageflip.pm
diff -u rat/lonpageflip.pm:1.80.8.6 rat/lonpageflip.pm:1.80.8.7
--- rat/lonpageflip.pm:1.80.8.6	Thu Jun 26 18:28:25 2014
+++ rat/lonpageflip.pm	Sat Mar 14 22:29:25 2015
@@ -2,7 +2,7 @@
 #
 # Page flip handler
 #
-# $Id: lonpageflip.pm,v 1.80.8.6 2014/06/26 18:28:25 raeburn Exp $
+# $Id: lonpageflip.pm,v 1.80.8.7 2015/03/14 22:29:25 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -36,6 +36,7 @@
 use Apache::Constants qw(:common :http REDIRECT);
 use Apache::lonnet;
 use Apache::loncommon();
+use Apache::lonuserstate;
 use Apache::lonlocal;
 use HTML::TokeParser;
 use GDBM_File;
@@ -268,9 +269,30 @@
   my @possibilities=();
    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['postdata']);
   if (($env{'form.postdata'})&&($env{'request.course.fn'})) {
-      $env{'form.postdata'}=~/(\w+)\:(.*)/;
-      my $direction=$1;
-      my $currenturl=$2;
+      my ($direction,$currenturl) = ($env{'form.postdata'}=~/(\w+)\:(.*)/);
+
+      if ($env{'request.course.id'}) {
+          # Check if course needs to be re-initialized
+          my $loncaparev = $r->dir_config('lonVersion');
+          my ($result, at reinit) = &Apache::loncommon::needs_coursereinit($loncaparev);
+          if ($result eq 'switch') {
+              &Apache::loncommon::content_type($r,'text/html');
+              $r->send_http_header;
+              $r->print(&Apache::loncommon::check_release_result(@reinit));
+              return OK;
+          } elsif ($result eq 'update') {
+              my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+              my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+              my ($furl,$ferr) = &Apache::lonuserstate::readmap("$cdom/$cnum");
+              if ($ferr) {
+                  my $requrl = $r->uri;
+                  $env{'user.error.msg'}="$requrl:bre:0:0:Course not initialized";
+                  $env{'user.reinit'} = 1;
+                  return HTTP_NOT_ACCEPTABLE;
+              }
+          }
+      }
+
       if ($currenturl=~m|^/enc/|) {
 	  $currenturl=&Apache::lonenc::unencrypted($currenturl);
       }
@@ -390,7 +412,7 @@
 	      untie(%hash);
 # --------------------------------------------------------- Store position info
               $cachehash{$startoutmap}{'last_direction'}=[$direction,'notasymb'];
-              foreach my $thismap (keys %cachehash) {
+              foreach my $thismap (keys(%cachehash)) {
 		  my $mapnum=$cachehash{$thismap}->{'mapnum'};
 		  delete($cachehash{$thismap}->{'mapnum'});
 		  &Apache::lonnet::symblist($thismap,




More information about the LON-CAPA-cvs mailing list