--- rat/lonpageflip.pm 2006/03/06 23:35:43 1.65 +++ rat/lonpageflip.pm 2008/12/21 05:00:52 1.75.2.1 @@ -2,7 +2,7 @@ # # Page flip handler # -# $Id: lonpageflip.pm,v 1.65 2006/03/06 23:35:43 www Exp $ +# $Id: lonpageflip.pm,v 1.75.2.1 2008/12/21 05:00:52 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -30,8 +30,10 @@ package Apache::lonpageflip; use strict; +use LONCAPA; use Apache::Constants qw(:common :http REDIRECT); use Apache::lonnet; +use Apache::loncommon(); use HTML::TokeParser; use GDBM_File; @@ -85,6 +87,39 @@ sub hash_src { } sub move { + my ($next,$endupmap,$direction) = @_; + my $safecount=0; + my $allowed=0; + do { + ($next,$endupmap)=&get_next_possible_move($next,$endupmap,$direction); + + my $url = $hash{'src_'.$next}; + my ($mapid,$resid)=split(/\./,$next); + my $symb = &Apache::lonnet::encode_symb($hash{'map_id_'.$mapid}, + $resid,$url); + if ($url eq '' || $symb eq '') { + $allowed = 0; + } else { + my $priv = &Apache::lonnet::allowed('bre',$url,$symb); + $allowed = (($priv eq 'F') || ($priv eq '2')); + } + $safecount++; + } while ( ($next) + && ($next!~/\,/) + && ( + (!$hash{'src_'.$next}) + || ( + (!$env{'request.role.adv'}) + && $hash{'randomout_'.$next} + ) + || (!$allowed) + ) + && ($safecount<10000)); + + return ($next,$endupmap); +} + +sub get_next_possible_move { my ($rid,$mapurl,$direction)=@_; my $startoutrid=$rid; @@ -185,10 +220,7 @@ sub navlaunch { &Apache::loncommon::content_type($r,'text/html'); &Apache::loncommon::no_cache($r); $r->send_http_header; - my $html=&Apache::lonxml::xmlbegin(); - $r->print("$html
\n"); - $r->print(''. - &Apache::loncommon::bodytag('Launched')); + $r->print(&Apache::loncommon::start_page('Launched')); $r->print(<