Diff for /rat/lonpageflip.pm between versions 1.80.8.10 and 1.80.8.11.2.1

version 1.80.8.10, 2018/09/10 19:17:39 version 1.80.8.11.2.1, 2020/09/08 04:37:22
Line 255  sub first_accessible_resource { Line 255  sub first_accessible_resource {
     }      }
 }  }
   
   sub check_http_req {
       my ($srcref) = @_;
       return unless (ref($srcref) eq 'SCALAR');
       my $usehttp;
       if ($env{'request.course.id'}) {
           my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
           my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
           if (($$srcref =~ m{^\Q/public/$cdom/$cnum/syllabus\E($|\?)}) &&
               ($ENV{'SERVER_PORT'} == 443) &&
               ($env{'course.'.$env{'request.course.id'}.'.externalsyllabus'} =~ m{^http://})) {
               unless (&Apache::lonnet::uses_sts()) {
                   $$srcref .= (($$srcref =~/\?/)? '&':'?') . 'usehttp=1';
                   $usehttp = 1;
               }
           } elsif (($$srcref =~ m{^\Q/adm/wrapper/ext/\E(?!https:)}) &&
                    ($ENV{'SERVER_PORT'} == 443)) {
               unless (&Apache::lonnet::uses_sts()) {
                   my ($url,$anchor) = ($$srcref =~ /^([^\#]+)(?:|(\#[^\#]+))$/);
                   $$srcref = $url . (($$srcref =~/\?/)? '&':'?') . 'usehttp=1' .$anchor;
                   $usehttp = 1;
               }
           }
       }
       return $usehttp;
   }
   
 sub reinited_js {  sub reinited_js {
     my ($url,$cid,$timeout) = @_;      my ($url,$cid,$timeout) = @_;
     if (!$timeout) {      if (!$timeout) {
Line 296  sub handler { Line 322  sub handler {
   my %prog_state=();     my %prog_state=(); 
   my ($redirecturl,$redirectsymb,$enc,$anchor);    my ($redirecturl,$redirectsymb,$enc,$anchor);
   my $next='';    my $next='';
     my $hostname = $r->hostname();
   my @possibilities=();    my @possibilities=();
    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['postdata']);     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['postdata']);
   if (($env{'form.postdata'})&&($env{'request.course.fn'})) {    if (($env{'form.postdata'})&&($env{'request.course.fn'})) {
Line 364  sub handler { Line 391  sub handler {
       }        }
       if ($direction eq 'firstres') {        if ($direction eq 'firstres') {
   my $furl=&first_accessible_resource();    my $furl=&first_accessible_resource();
           $furl=&Apache::lonnet::absolute_url().$furl;            my $usehttp = &check_http_req(\$furl);
             if (($usehttp) && ($hostname ne '')) {
                 $furl='http://'.$hostname.$furl;
             } else {
                 $furl=&Apache::lonnet::absolute_url().$furl;
             }
           if ($reinitcheck eq 'update') {            if ($reinitcheck eq 'update') {
               &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);                &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
               $r->print(&reinited_js($furl,$env{'request.course.id'},100));                $r->print(&reinited_js($furl,$env{'request.course.id'},100));
Line 376  sub handler { Line 408  sub handler {
       return REDIRECT;        return REDIRECT;
           }            }
       }        }
       if ($direction eq 'return') {         if ($direction eq 'return') {
 # -------------------------------------------------------- Return to last known  # -------------------------------------------------------- Return to last known
          my $newloc;           my ($newloc,$usehttp);
          if (($last) && (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'.db',           if (($last) && (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'.db',
                         &GDBM_READER(),0640))) {                          &GDBM_READER(),0640))) {
             my ($murl,$id,$fn)=&Apache::lonnet::decode_symb($last);              my ($murl,$id,$fn)=&Apache::lonnet::decode_symb($last);
     $id=$hash{'map_pc_'.&Apache::lonnet::clutter($murl)}.'.'.$id;      $id=$hash{'map_pc_'.&Apache::lonnet::clutter($murl)}.'.'.$id;
     $newloc=$hash{'src_'.$id};      $newloc=$hash{'src_'.$id};
     if ($newloc) {      if ($newloc) {
  if ($hash{'encrypted_'.$id}) { $newloc=&Apache::lonenc::encrypted($newloc); }                  $usehttp = &check_http_req(\$newloc);
                   if ($hash{'encrypted_'.$id}) {
                       $newloc=&Apache::lonenc::encrypted($newloc);
                   }
                   if ($newloc =~ m{^(/adm/wrapper/ext/[^\#]+)(?:|(\#[^\#]+))$}) {
                       my ($url,$anchor) = ($1,$2);
                       if ($anchor) {
                           $newloc = $url.(($url=~/\?/)?'&':'?').'symb='.&escape($last).$anchor;
                       }
                   }
     } else {      } else {
  $newloc='/adm/navmaps';   $newloc='/adm/navmaps';
     }      }
Line 393  sub handler { Line 434  sub handler {
          } else {           } else {
     $newloc='/adm/navmaps';      $newloc='/adm/navmaps';
          }           }
          $newloc=&Apache::lonnet::absolute_url().$newloc;           if (($usehttp) && ($hostname ne '')) {
                $newloc='http://'.$hostname.$newloc;
            } else {
                $newloc=&Apache::lonnet::absolute_url().$newloc
            }
          if ($reinitcheck eq 'update') {           if ($reinitcheck eq 'update') {
              $r->print(&reinited_js($newloc,$env{'request.course.id'},100));               $r->print(&reinited_js($newloc,$env{'request.course.id'},100));
              $r->print(&Apache::loncommon::end_page());               $r->print(&Apache::loncommon::end_page());
Line 509  sub handler { Line 554  sub handler {
                      &Apache::lonnet::linklog($redirecturl,$currenturl);                       &Apache::lonnet::linklog($redirecturl,$currenturl);
   }    }
 # ------------------------------------- Check for and display critical messages  # ------------------------------------- Check for and display critical messages
                   my ($redirect, $url) = &Apache::loncommon::critical_redirect(300);                    my ($redirect, $url) = &Apache::loncommon::critical_redirect(300,'flip');
                   unless ($redirect) {                    unless ($redirect) {
                       $url=&Apache::lonnet::absolute_url().$redirecturl;                        my $usehttp = &check_http_req(\$redirecturl);
                         if (($usehttp) && ($hostname ne '')) {
                             $url='http://'.$hostname.$redirecturl;
                         } else {
                             $url=&Apache::lonnet::absolute_url().$redirecturl;
                         }
                       my $addanchor;                        my $addanchor;
                       if (($anchor ne '') && (!$enc || $env{'request.role.adv'})) {                        if (($anchor ne '') && (!$enc || $env{'request.role.adv'})) {
                           $addanchor = 1;                            $addanchor = 1;
Line 566  $lt{'pick'}: Line 616  $lt{'pick'}:
 <tr><th>$lt{'titleheader'}</th><th>$lt{'type'}</th></tr>  <tr><th>$lt{'titleheader'}</th><th>$lt{'type'}</th></tr>
 ENDSTART  ENDSTART
                      foreach my $id (@possibilities) {                       foreach my $id (@possibilities) {
                           my $src = $multichoicehash{'src_'.$id};
                           my $usehttp = &check_http_req(\$src);
                           if (($usehttp) && ($hostname ne '')) {
                               $src = 'http://'.$hostname.$src;
                           }
                         $r->print(                          $r->print(
                               '<tr><td><a href="'.                                '<tr><td><a href="'.
   &add_get_param($multichoicehash{'src_'.$id},    &add_get_param($src,
  {'symb' =>   {'symb' =>
       $multichoicehash{'symb_'.$id},        $multichoicehash{'symb_'.$id},
   }).'">'.    }).'">'.

Removed from v.1.80.8.10  
changed lines
  Added in v.1.80.8.11.2.1


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