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

version 1.111.2.13.2.2, 2022/07/08 16:29:33 version 1.137, 2020/03/05 19:24:35
Line 102  sub tracetable { Line 102  sub tracetable {
             } else {              } else {
                 $sofar++;                  $sofar++;
                 if ($hash{'src_'.$rid}) {                  if ($hash{'src_'.$rid}) {
                     my ($mapid,$resid)=split(/\./,$rid);                      my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$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 278  sub handler { Line 276  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 372  sub handler { Line 368  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 383  ENDEXT Line 379  ENDEXT
                           } elsif ($cellemb{$_} eq 'ssi') {                            } elsif ($cellemb{$_} eq 'ssi') {
 # --------------------------------------------------------- This is an SSI cell  # --------------------------------------------------------- This is an SSI cell
       my $prefix='p_'.$_.'_';        my $prefix='p_'.$_.'_';
                               my $idprefix='p_'.join('_',($mapid,$resid,''));                                my $idprefix= 'p_'.join('_',($mapid,$resid,''));
                               my %posthash=('request.prefix' => $prefix,                                my %posthash=('request.prefix' => $prefix,
     'LONCAPA_INTERNAL_no_discussion' => 'true',      'LONCAPA_INTERNAL_no_discussion' => 'true',
     'symb' => $symb);      'symb' => $symb);
Line 421  ENDEXT Line 417  ENDEXT
       } elsif ($env{'form.'.$prefix.'markaccess'} eq 'yes') {        } elsif ($env{'form.'.$prefix.'markaccess'} eq 'yes') {
                   $posthash{'markaccess'} = $env{'form.'.$prefix.'markaccess'};                    $posthash{'markaccess'} = $env{'form.'.$prefix.'markaccess'};
               }                }
                               if ($env{'environment.remote'} eq 'on') {  
                                   $posthash{'inhibitmenu'} = 'yes';  
                               }  
                               my $output=Apache::lonnet::ssi($src,%posthash);                                my $output=Apache::lonnet::ssi($src,%posthash);
       $output=~s|//(\s*<!--)? BEGIN LON-CAPA Internal.+?// END LON-CAPA Internal\s*(-->)?\s||gs;        $output=~s|//(\s*<!--)? BEGIN LON-CAPA Internal.+?// END LON-CAPA Internal\s*(-->)?\s||gs;
                               if (($target eq 'tex') || ($target eq 'tex_answer')) {                                if (($target eq 'tex') || ($target eq 'tex_answer')) {
Line 445  ENDEXT Line 438  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 488  ENDEXT Line 480  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 658  ENDEXT Line 642  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 692  ENDEXT Line 654  ENDEXT
                       &Apache::loncommon::content_type($r,'text/html');                        &Apache::loncommon::content_type($r,'text/html');
                       $r->send_http_header;                        $r->send_http_header;
                       $r->print(&Apache::loncommon::start_page(undef,undef,                        $r->print(&Apache::loncommon::start_page(undef,undef,
        {'force_register' => 1}));         {'force_register' => 1,}));
                       $r->print(&mt('This page is either empty or it only contains resources that are currently hidden').'. ');                        $r->print(&mt('This page is either empty or it only contains resources that are currently hidden').'. ');
                       $r->print('<br /><br />'.&mt('Please use the LON-CAPA navigation arrows to move to another item in the course').                        $r->print('<br /><br />'.&mt('Please use the LON-CAPA navigation arrows to move to another item in the course').
  &Apache::loncommon::end_page());   &Apache::loncommon::end_page());
Line 745  ENDEXT Line 707  ENDEXT
                                       $uniquetimes{$item} = 1;                                        $uniquetimes{$item} = 1;
                                   }                                    }
                               }                                }
                               if (scalar(keys(%uniquetimes)) == 1) {                                 if (scalar(keys(%uniquetimes)) == 1) {
                                   my (%uniquedisplays,%uniquedones,$currdisp,$donebuttontime,                                    my (%uniquedisplays,%uniquedones,$currdisp,$donebuttontime,
                                       $donebuttonextras);                                        $donebuttonextras);
                                   if (keys(%countdowndisp)) {                                    if (keys(%countdowndisp)) {
Line 798  ENDEXT Line 760  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 1000  sub get_buttons { Line 947  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 {
         my $shownsymb = $symb;          $aname = &escape($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'}) {
Line 1160  sub add_countdown_timer { Line 1102  sub add_countdown_timer {
             $donebuttontext = &mt('Done');              $donebuttontext = &mt('Done');
             $type = 'map';              $type = 'map';
         }          }
         $donebutton =          $donebutton = 
             &Apache::lonmenu::done_button_js($type,'','',$proctor,$donebuttontext);              &Apache::lonmenu::done_button_js($type,'','',$proctor,$donebuttontext);
     }      }
     unless ($env{'environment.icons'} eq 'iconsonly') {      unless ($env{'environment.icons'} eq 'iconsonly') {

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


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