Diff for /rat/lonpage.pm between versions 1.111.2.10.2.3 and 1.136

version 1.111.2.10.2.3, 2020/11/13 02:46:48 version 1.136, 2020/03/05 16:45:32
Line 202  sub handler { Line 202  sub handler {
                   my ($pagesymb,$courseid,$domain,$name)=&Apache::lonnet::whichuser();                    my ($pagesymb,$courseid,$domain,$name)=&Apache::lonnet::whichuser();
                   unless ($pagesymb) {                    unless ($pagesymb) {
                       $pagesymb=&Apache::lonnet::symbread($requrl);                        $pagesymb=&Apache::lonnet::symbread($requrl);
                   }                                      }
                   if ($pagesymb && ($courseid ne '') && ($domain ne '') && ($name ne '')) {                    if ($pagesymb && ($courseid ne '') && ($domain ne '') && ($name ne '')) {
                       my %times=&Apache::lonnet::get('firstaccesstimes',                        my %times=&Apache::lonnet::get('firstaccesstimes',
                                                      [$courseid."\0".$pagesymb],                                                       [$courseid."\0".$pagesymb],
Line 276  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 370  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 381  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 419  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 443  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 486  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 656  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 690  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 796  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 998  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 1023  sub get_buttons { Line 967  sub get_buttons {
  && !$env{'request.enc'}   && !$env{'request.enc'}
  && ($env{'request.role.adv'}   && ($env{'request.role.adv'}
     || !$hash->{'encrypted_'.$rid})) {       || !$hash->{'encrypted_'.$rid})) { 
  $metainfo .= '<a href="'.$hash->{'src_'.$rid}.'.meta'.'" '.   $metainfo .='<a name="'.&escape($symb).'"></a>'.
     'target="LONcatInfo">'.      '<a href="'.$hash->{'src_'.$rid}.'.meta'.'" target="LONcatInfo">'.
             '<img src="/res/adm/pages/catalog.png" class="LC_icon"'.              '<img src="/res/adm/pages/catalog.png" class="LC_icon"'.
             ' alt="'.&mt('Show Metadata').'"'.              ' alt="'.&mt('Show Metadata').'"'.
             ' title="'.&mt('Show Metadata').'" />'.              ' title="'.&mt('Show Metadata').'" />'.
Line 1043  sub get_buttons { Line 987  sub get_buttons {
     if (($hash->{'src_'.$rid}=~/$LONCAPA::assess_re/) &&      if (($hash->{'src_'.$rid}=~/$LONCAPA::assess_re/) &&
  ($hash->{'src_'.$rid} !~ m-^/uploaded/-)) {   ($hash->{'src_'.$rid} !~ m-^/uploaded/-)) {
   
         if ((&Apache::lonnet::allowed('mgr',$crs_sec)) ||   if ((&Apache::lonnet::allowed('mgr',$crs_sec)) ||
             (&Apache::lonnet::allowed('vgr',$crs_sec))) {              (&Apache::lonnet::allowed('vgr',$crs_sec))) {
     $metainfo.=      $metainfo.=
  '<a href="/adm/grades?symb='.&escape($symb).   '<a href="/adm/grades?symb='.&escape($symb).
Line 1056  sub get_buttons { Line 1000  sub get_buttons {
         }          }
         if (&Apache::lonnet::allowed('mgr',$crs_sec)) {          if (&Apache::lonnet::allowed('mgr',$crs_sec)) {
             $metainfo.=              $metainfo.=
                 '<a href="/adm/grades?symb='.&escape($symb).   '<a href="/adm/grades?symb='.&escape($symb).
 #               '&command=gradingmenu" target="LONcatInfo">'.  #               '&command=gradingmenu" target="LONcatInfo">'.
  '&command=gradingmenu">'.   '&command=gradingmenu">'.
                 '<img src="/res/adm/pages/pgrd.png" class="LC_icon"'.                  '<img src="/res/adm/pages/pgrd.png" class="LC_icon"'.
                 ' alt="'.&mt('Content Grades').'"'.                  ' alt="'.&mt('Content Grades').'"'.
                 ' title="'.&mt('Content Grades').'" />'.                  ' title="'.&mt('Content Grades').'" />'.
                 '</a>';   '</a>';
         }   }
         if ((&Apache::lonnet::allowed('opa',$crs_sec)) ||   if ((&Apache::lonnet::allowed('opa',$crs_sec)) ||
             (&Apache::lonnet::allowed('vpa',$crs_sec))) {              (&Apache::lonnet::allowed('vpa',$crs_sec))) {
     $metainfo.=      $metainfo.=
  '<a href="/adm/parmset?symb='.&escape($symb).   '<a href="/adm/parmset?symb='.&escape($symb).
Line 1158  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.10.2.3  
changed lines
  Added in v.1.136


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