Diff for /rat/lonpageflip.pm between versions 1.21 and 1.22

version 1.21, 2002/04/11 18:19:46 version 1.22, 2002/04/11 19:21:52
Line 203  sub handler { Line 203  sub handler {
       my $position;        my $position;
       if ($position=Apache::lonnet::symbread($currenturl)) {        if ($position=Apache::lonnet::symbread($currenturl)) {
 # ------------------------------------------------------------------------- Yes  # ------------------------------------------------------------------------- Yes
   my ($mapurl,$mapnum,$thisurl)=split(/\_\_\_/,$position);    my ($startoutmap,$mapnum,$thisurl)=split(/\_\_\_/,$position);
           $cachehash{$mapurl}{$thisurl}=$mapnum;            $cachehash{$startoutmap}{$thisurl}=$mapnum;
           $cachehash{$mapurl}{'last_known'}=&Apache::lonnet::declutter($currenturl);            $cachehash{$startoutmap}{'last_known'}=&Apache::lonnet::declutter($currenturl);
           my $startoutmap=$mapurl;  
   
 # ============================================================ Tie the big hash  # ============================================================ Tie the big hash
           if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'.db',            if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'.db',
                         &GDBM_READER,0640)) {                          &GDBM_READER,0640)) {
               my $rid=$hash{'map_pc_/res/'.$mapurl}.'.'.$mapnum;                my $rid=$hash{'map_pc_/res/'.$startoutmap}.'.'.$mapnum;
   
 # ------------------------------------------------- Move forward, backward, etc  # ------------------------------------------------- Move forward, backward, etc
                 my $endupmap;
               ($next,$mapurl)=&move($rid,$mapurl,$direction);                ($next,$endupmap)=&move($rid,$startoutmap,$direction);
 # -------------------------------------- Do we have one and only one empty URL?  # -------------------------------------- Do we have one and only one empty URL?
               my $safecount=0;                my $safecount=0;
               while (($next) && ($next!~/\,/) && (!$hash{'src_'.$next})                while (($next) && ($next!~/\,/) && (!$hash{'src_'.$next})
                      && ($safecount<25)) {                       && ($safecount<25)) {
                   ($next,$mapurl)=&move($next,$mapurl,$direction);                    ($next,$endupmap)=&move($next,$endupmap,$direction);
                   $safecount++;                    $safecount++;
               }                }
   # We are now at at least one non-empty URL
 # ----------------------------------------------------- Check out possibilities  # ----------------------------------------------------- Check out possibilities
               if ($next) {                if ($next) {
                   @possibilities=split(/\,/,$next);                    @possibilities=split(/\,/,$next);
                   if ($#possibilities==0) {                    if ($#possibilities==0) {
 # ---------------------------------------------- Only one possibility, redirect  # ---------------------------------------------- Only one possibility, redirect
               $redirecturl=$hash{'src_'.$next};                $redirecturl=$hash{'src_'.$next};
                       $cachehash{$mapurl}                        $cachehash{$endupmap}
                                 {&Apache::lonnet::declutter($redirecturl)}                                  {&Apache::lonnet::declutter($redirecturl)}
                                  =(split(/\./,$next))[1];                                   =(split(/\./,$next))[1];
                   } else {                    } else {
Line 239  sub handler { Line 239  sub handler {
   $multichoicehash{'src_'.$_}=$hash{'src_'.$_};    $multichoicehash{'src_'.$_}=$hash{'src_'.$_};
                           $multichoicehash{'title_'.$_}=$hash{'title_'.$_};                            $multichoicehash{'title_'.$_}=$hash{'title_'.$_};
                           $multichoicehash{'type_'.$_}=$hash{'type_'.$_};                            $multichoicehash{'type_'.$_}=$hash{'type_'.$_};
                           $cachehash{$mapurl}                            my ($choicemap,$choiceres)=split(/\./,$_);
                             {&Apache::lonnet::declutter(                            $cachehash
    {&Apache::lonnet::declutter($hash{'src_'.$choicemap})}
                            {&Apache::lonnet::declutter(
       $multichoicehash        $multichoicehash
                                                          {'src_'.$_}                                                           {'src_'.$_}
                                                        )}                                                         )}
                                  =(split(/\./,$_))[1];                                   =$choiceres;
                       } @possibilities;                        } @possibilities;
                   }                    }
       } else {        } else {
Line 254  sub handler { Line 256  sub handler {
 # ----------------- The program must come past this point to untie the big hash  # ----------------- The program must come past this point to untie the big hash
       untie(%hash);        untie(%hash);
 # --------------------------------------------------------- Store position info  # --------------------------------------------------------- Store position info
               $cachehash{$mapurl}{'last_direction'}=$direction;                $cachehash{$startoutmap}{'last_direction'}=$direction;
               foreach my $thismap (keys %cachehash) {                foreach my $thismap (keys %cachehash) {
                  &Apache::lonnet::symblist($thismap,%{$cachehash{$thismap}});                   &Apache::lonnet::symblist($thismap,%{$cachehash{$thismap}});
       }        }

Removed from v.1.21  
changed lines
  Added in v.1.22


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>