--- rat/lonpageflip.pm 2002/04/12 13:47:21 1.23 +++ rat/lonpageflip.pm 2002/05/23 15:07:55 1.25 @@ -2,7 +2,7 @@ # # Page flip handler # -# $Id: lonpageflip.pm,v 1.23 2002/04/12 13:47:21 www Exp $ +# $Id: lonpageflip.pm,v 1.25 2002/05/23 15:07:55 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -63,6 +63,16 @@ sub addrid { return $current; } +sub fullmove { + my ($rid,$mapurl,$direction)=@_; + if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'.db', + &GDBM_READER,0640)) { + ($rid,$mapurl)=&move($rid,$mapurl,$direction); + untie(%hash); + } + return($rid,$mapurl); +} + sub move { my ($rid,$mapurl,$direction)=@_; my $startoutrid=$rid; @@ -132,11 +142,16 @@ sub move { } } split(/\,/,$posnext); if ($hash{'is_map_'.$next}) { +# This jumps to the end of a new map (going down one level) if ( $hash{'map_type_'.$hash{'map_pc_'.$hash{'src_'.$next}}} eq 'sequence') { $mapurl=$hash{'src_'.$next}; $next=$hash{'map_finish_'.$hash{'src_'.$next}}; } + } elsif + ((split(/\./,$startoutrid))[0]!=(split(/\./,$next))[0]) { +# This comes back up from a map (going up one level); + $mapurl=$hash{'map_id_'.(split(/\./,$next))[0]}; } } return ($next,$mapurl);