Diff for /rat/lonpageflip.pm between versions 1.97 and 1.98

version 1.97, 2017/11/16 13:42:01 version 1.98, 2018/11/13 03:59:17
Line 102  sub move { Line 102  sub move {
     my ($next,$endupmap,$direction) = @_;      my ($next,$endupmap,$direction) = @_;
     my $safecount=0;      my $safecount=0;
     my $allowed=0;      my $allowed=0;
       my $deeplinkonly=0;
       my $prev=$next;
       my ($prevmapid)=split(/\./,$next);
     do {      do {
  ($next,$endupmap)=&get_next_possible_move($next,$endupmap,$direction);   ($next,$endupmap)=&get_next_possible_move($next,$endupmap,$direction);
   
Line 115  sub move { Line 118  sub move {
     my $priv = &Apache::lonnet::allowed('bre',$url,$symb);      my $priv = &Apache::lonnet::allowed('bre',$url,$symb);
     $allowed = (($priv eq 'F') || ($priv eq '2'));      $allowed = (($priv eq 'F') || ($priv eq '2'));
  }   }
           $deeplinkonly = 0;
           if ($hash{'deeplinkonly_'.$next}) {
               my ($value,$level) = split(/:/,$hash{'deeplinkonly_'.$next});
               if ($level eq 'resource') {
                   $deeplinkonly = 1;
               } elsif ($level eq 'map') {
                   if ($mapid != $prevmapid) {
                       $deeplinkonly = 1;
                   }
               }
           } elsif ($hash{'deeplinkonly_'.$prev}) {
               my ($value,$level) = split(/:/,$hash{'deeplinkonly_'.$prev});
               if ($level eq 'resource') {
                   $deeplinkonly = 1;
               } elsif ($level eq 'map') {
                   if ($mapid != $prevmapid) {
                       $deeplinkonly = 1;
                   }
               }
           }
  $safecount++;   $safecount++;
     } while (   ($next)      } while (   ($next)
      && ($next!~/\,/)       && ($next!~/\,/)
      && (       && (
     (!$hash{'src_'.$next})      (!$hash{'src_'.$next})
  || (   || (
         (!$env{'request.role.adv'})                          (!$env{'request.role.adv'})
      &&  $hash{'randomout_'.$next}                       && (($hash{'randomout_'.$next})
                        ||  ($deeplinkonly))
     )      )
  || (!$allowed)   || (!$allowed)
  )   )
Line 338  sub handler { Line 362  sub handler {
   my $multichoice=0;    my $multichoice=0;
   my %multichoicehash=();    my %multichoicehash=();
   my %prog_state=();    my %prog_state=();
   my ($redirecturl,$redirectsymb,$enc,$anchor);    my ($redirecturl,$redirectsymb,$enc,$anchor,$deeplinklevel);
   my $next='';    my $next='';
   my $hostname = $r->hostname();    my $hostname = $r->hostname();
   my @possibilities=();    my @possibilities=();
Line 564  sub handler { Line 588  sub handler {
       } else {        } else {
 # -------------------------------------------------------------- No place to go  # -------------------------------------------------------------- No place to go
                   $multichoice=-1;                    $multichoice=-1;
                     if ($hash{'deeplinkonly_'.$rid}) {
                         (my $value,$deeplinklevel) = split(/:/,$hash{'deeplinkonly_'.$rid});
                     }
               }                }
 # ----------------- 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);
Line 618  sub handler { Line 645  sub handler {
                   &Apache::loncommon::content_type($r,'text/html');                    &Apache::loncommon::content_type($r,'text/html');
                   $r->send_http_header;                    $r->send_http_header;
   my %lt=&Apache::lonlocal::texthash('title' => 'End of Sequence',    my %lt=&Apache::lonlocal::texthash('title' => 'End of Sequence',
                                                        'deeplink' => 'No link available',
                                                        'deeplinkres' =>
                                                        'Navigation to other content is unavailable when accessing content via deep-linking',
                                                        'deeplinkmap' =>
                                                        'You have reached the end of the sequence of available materials for access via deep-linking',
      'explain' =>       'explain' =>
      'You have reached the end of the sequence of materials.',       'You have reached the end of the sequence of materials.',
      'back' => 'Go Back',       'back' => 'Go Back',
Line 685  ENDSTART Line 717  ENDSTART
                               } else {                                } else {
                                   $r->print(&Apache::lonplacementtest::showresult(1));                                    $r->print(&Apache::lonplacementtest::showresult(1));
                               }                                }
                           } else {                              } else {
                               $r->print(                                $r->print(
                                   &Apache::loncommon::start_page('No Resource')                                    &Apache::loncommon::start_page('No Resource'));
                                  .'<h2>'.$lt{'title'}.'</h2>'                                if ($deeplinklevel eq 'resource') {
                                  .'<p>'.$lt{'explain'}.'</p>');                                    $r->print('<h2>'.$lt{'deeplink'}.'</h2>'
                                              .'<p>'.$lt{'deeplinkres'}.'</p>');
                                 } elsif ($deeplinklevel eq 'map') {
                                     $r->print('<h2>'.$lt{'title'}.'</h2>'
                                              .'<p>'.$lt{'deeplinkmap'}.'</p>');
                                 } else {
                                     $r->print('<h2>'.$lt{'title'}.'</h2>'
                                              .'<p>'.$lt{'explain'}.'</p>');
                                 }
                           }                            }
                       }                        }
   }    }
                   unless (($env{'course.'.$env{'request.course.id'}.'.type'} eq 'Placement') ||                    unless (($env{'course.'.$env{'request.course.id'}.'.type'} eq 'Placement') ||
                           ($env{'request.role.adv'})) {                            ($env{'request.role.adv'})) {
                       if ((!@possibilities) && ($reinitcheck))  {                        if ($deeplinklevel) {
                             $r->print(
                                 &Apache::lonhtmlcommon::actionbox(
                                     ['<a href="/adm/flip?postdata=return:">'.$lt{'back'}.'</a>']));
                         } elsif ((!@possibilities) && ($reinitcheck))  {
                           $r->print(                            $r->print(
                               &Apache::lonhtmlcommon::actionbox(                                &Apache::lonhtmlcommon::actionbox(
                                   ['<a href="/adm/navmaps">'.$lt{'nav'}.'</a></li>'                                    ['<a href="/adm/navmaps">'.$lt{'nav'}.'</a></li>'

Removed from v.1.97  
changed lines
  Added in v.1.98


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