Diff for /rat/lonpage.pm between versions 1.137 and 1.140

version 1.137, 2020/03/05 19:24:35 version 1.140, 2022/06/29 17:51:10
Line 102  sub tracetable { Line 102  sub tracetable {
             } else {              } else {
                 $sofar++;                  $sofar++;
                 if ($hash{'src_'.$rid}) {                  if ($hash{'src_'.$rid}) {
                     my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$rid});                      my ($mapid,$resid)=split(/\./,$rid);
                       my $symb = &Apache::lonnet::encode_symb($hash{'map_id_'.$mapid},$resid,$hash{'src_'.$rid});
                       my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$rid},$symb);
                     if (($brepriv eq '2') || ($brepriv eq 'F')) {                      if (($brepriv eq '2') || ($brepriv eq 'F')) {
                         if (defined($rows[$sofar])) {                          if (defined($rows[$sofar])) {
                             $rows[$sofar].='&'.$rid;                              $rows[$sofar].='&'.$rid;
Line 276  sub handler { Line 278  sub handler {
                   my %ssilink=();                    my %ssilink=();
                   my %ssivlink=();                    my %ssivlink=();
                   my %ssialink=();                    my %ssialink=();
                     my %cssrefs=();
                     my %httpref=();
             
                   my %cellemb=();                    my %cellemb=();
                   my %cellexternal=();                    my %cellexternal=();
Line 368  sub handler { Line 372  sub handler {
                                           if (($hash{'encrypted_'.$_}) && ($symb) && (!$env{'request.role.adv'})) {                                            if (($hash{'encrypted_'.$_}) && ($symb) && (!$env{'request.role.adv'})) {
                                               $showsrc .= '?symb='.&Apache::lonenc::encrypted($symb);                                                $showsrc .= '?symb='.&Apache::lonenc::encrypted($symb);
                                           } elsif ($anchor) {                                            } elsif ($anchor) {
                                               $showsrc .= $anchor                                                $showsrc .= $anchor;
                                           }                                            }
                                           $ssibody{$_} = <<ENDEXT;                                            $ssibody{$_} = <<ENDEXT;
 <iframe src="$showsrc" width="100%" height="300px">No iframe support!</iframe>  <iframe src="$showsrc" width="100%" height="300px">No iframe support!</iframe>
Line 438  ENDEXT Line 442  ENDEXT
                               my $bodydef=0;                                my $bodydef=0;
                               my $thisxml=0;                                my $thisxml=0;
                               my @rlinks=();                                my @rlinks=();
                                 my @css_hrefs=();
                               if ($output=~/\?xml/) {                                if ($output=~/\?xml/) {
                                  $isxml=1;                                   $isxml=1;
                                  $thisxml=1;                                   $thisxml=1;
Line 480  ENDEXT Line 485  ENDEXT
                                            ($bodydef==0)) {                                             ($bodydef==0)) {
       $allscript.="\n\n"        $allscript.="\n\n"
                                                 .$parser->get_text('/script');                                                  .$parser->get_text('/script');
                                     } elsif (($token->[1] eq 'link') &&
                                              ($bodydef==0)) {
                                         if (($token->[2]->{'href'} !~ m{^/adm/}) &&
                                             ($token->[2]->{'rel'} eq 'stylesheet')) {
                                                 $css_hrefs[$#css_hrefs+1]=
                                                     $token->[2]->{'href'};
   
                                         }
                                   }                                    }
         }          }
       }        }
Line 642  ENDEXT Line 655  ENDEXT
                      $output=~s/(\"|\'|\=\s*)$_(\"|\'|\s|\>)/$1$newlocation$2/;                       $output=~s/(\"|\'|\=\s*)$_(\"|\'|\s|\>)/$1$newlocation$2/;
   }    }
       }        }
                                 foreach my $css_href (@css_hrefs) {
                                     next if ($css_href eq '');
                                     unless ($css_href =~ m{https?://}) {
                                         my $proburl = &Apache::lonnet::clutter($plainsrc);
                                         unless ($css_href =~ m{^/}) {
                                             my $probdir = $proburl;
                                             $probdir=~s/\/[^\/]*$//;
                                             $css_href = &Apache::lonnet::hreflocation($probdir,$css_href);
                                         }
                                         if ($css_href =~ m{^/(res|uploaded)/}) {
                                             unless (($env{'httpref.'.$css_href}) ||
                                                     ($httpref{'httpref.'.$css_href}) ||
                                                     (&Apache::lonnet::is_on_map($css_href))) {
                                                 if ($env{'httpref.'.$proburl}) {
                                                     $proburl = $env{'httpref.'.$proburl};
                                                 }
                                                 $httpref{'httpref.'.$css_href} = $proburl;
                                             }
                                         }
                                     }
                                     $cssrefs{$css_href} = 1;
                                 }
 # -------------------------------------------------- Deal with Applet codebases  # -------------------------------------------------- Deal with Applet codebases
   $output=~s/(\<applet[^\>]+)(codebase\=[^\S\>]+)*([^\>]*)\>/$1.($2?$2:' codebase="'.$thisdir.'"').$3.'>'/gei;    $output=~s/(\<applet[^\>]+)(codebase\=[^\S\>]+)*([^\>]*)\>/$1.($2?$2:' codebase="'.$thisdir.'"').$3.'>'/gei;
       $ssibody{$_}=$output;        $ssibody{$_}=$output;
Line 760  ENDEXT Line 795  ENDEXT
                                   }                                    }
                               }                                }
                           }                            }
                             if (keys(%cssrefs)) {
                                 my $links;
                                 if (keys(%cssrefs)) {
                                     foreach my $css_href (keys(%cssrefs)) {
                                         next unless ($css_href =~ m{^(/res/|/uploaded/|https?://)});
                                         $links .= '<link rel="stylesheet" type="text/css" href="'.$css_href.'" />'."\n";
                                     }
                                 }
                                 if ($links) {
                                     if (keys(%httpref)) {
                                         &Apache::lonnet::appenv(\%httpref);
                                     }
                                     $allscript .= "\n$links";
                                 }
                             }
 # ------------------------------------------------------------------ Start body  # ------------------------------------------------------------------ Start body
   $r->print(&Apache::loncommon::start_page(undef,$allscript,    $r->print(&Apache::loncommon::start_page(undef,$allscript,
    {'force_register' => 1,     {'force_register' => 1,
Line 947  sub get_buttons { Line 997  sub get_buttons {
     if (($hash->{'encrypted_'.$rid}) && (!$env{'request.role.adv'})) {      if (($hash->{'encrypted_'.$rid}) && (!$env{'request.role.adv'})) {
         $aname = 'LC_'.$rid;          $aname = 'LC_'.$rid;
     } else {      } else {
         $aname = &escape($symb);          my $shownsymb = $symb;
           if ($symb =~ /\#([^\#]+)$/) {
               my $escan = &escape('#');
               $shownsymb =~ s/#([^\#]+)$/$escan$1/;
           }
           $aname = &escape($shownsymb);
     }      }
     my $metainfo = '<a name="'.$aname.'"></a>';      my $metainfo = '<a name="'.$aname.'"></a>';
     unless ($env{'request.role.adv'}) {      unless ($env{'request.role.adv'}) {

Removed from v.1.137  
changed lines
  Added in v.1.140


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.