Diff for /loncom/xml/londefdef.pm between versions 1.447 and 1.453

version 1.447, 2013/09/26 22:03:36 version 1.453, 2014/08/24 23:38:30
Line 585  sub start_body { Line 585  sub start_body {
         # FIXME Where are we?          # FIXME Where are we?
     }      }
   
           my $args = {'add_entries'    => $token->[2],
                       'force_register' => 1,};
           if ($target eq 'web') {
               $args->{'print_suppress'} = 1;
               if ($env{'request.use_absolute'}) {
                   $args->{'use_absolute'} = $env{'request.use_absolute'};
               }
           }
  $currentstring =    $currentstring = 
     &Apache::loncommon::start_page($Apache::londefdef::title,      &Apache::loncommon::start_page($Apache::londefdef::title,
    $Apache::londefdef::head     $Apache::londefdef::head
       .$extra_head,        .$extra_head,$args);
    {'add_entries'    => $token->[2],  
 #    'no_title'       => 1,  
     'force_register' => 1});  
   
         my $header = '';          my $header = '';
         if ($env{'request.state'} ne 'published' &&          if ($env{'request.state'} ne 'published' &&
             $env{'request.state'} ne 'construct') {              $env{'request.state'} ne 'construct') {
Line 1732  sub start_a { Line 1736  sub start_a {
                             my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};                              my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
                             my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};                              my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
                             if ($linkurl =~ m{^([^/]|/uploaded/$cdom/$cnum/docs/)}) {                              if ($linkurl =~ m{^([^/]|/uploaded/$cdom/$cnum/docs/)}) {
                                 my $cleanhref = &Apache::londefdef::clean_docs_httpref($linkurl,$url,$cdom,$cnum);                                  my $cleanhref = &clean_docs_httpref($linkurl,$url,$cdom,$cnum);
                                 if ($cleanhref) {                                  if ($cleanhref) {
                                     &Apache::lonxml::extlink($cleanhref);                                      &Apache::lonxml::extlink($cleanhref);
                                 }                                  }
Line 2749  sub start_img { Line 2753  sub start_img {
  my $inside = &Apache::lonxml::get_all_text("/img",$parser,$style);   my $inside = &Apache::lonxml::get_all_text("/img",$parser,$style);
  return '';   return '';
     }      }
     &Apache::lonxml::extlink($src);      unless ($src =~ m{^data\:image/gif;base64,}) {
           &Apache::lonxml::extlink($src);
       }
     my $currentstring = '';      my $currentstring = '';
     my $scaling = .3;      my $scaling = .3;
   
Line 2759  sub start_img { Line 2765  sub start_img {
         my $enc = ('yes' eq           my $enc = ('yes' eq 
                    lc(&Apache::lonxml::get_param('encrypturl',$parstack,                     lc(&Apache::lonxml::get_param('encrypturl',$parstack,
                       $safeeval)));                        $safeeval)));
         $currentstring.=&Apache::lonenc::encrypt_ref($token,{'src'=>$src},          unless ($src =~ m{^data\:image/gif;base64,}) {
                          $enc);              $currentstring.=&Apache::lonenc::encrypt_ref($token,{'src'=>$src},
                               $enc);
           }
   
     # and render unto TeX that which is LaTeX      # and render unto TeX that which is LaTeX
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
Line 3615  sub start_iframe { Line 3623  sub start_iframe {
                         }                          }
                     }                      }
                     $currentstring =~ s/\s+$//;                      $currentstring =~ s/\s+$//;
                     $currentstring .= '>';                      if ($token->[4] =~ m{/>$}) {
                           $currentstring .= ' />';
                       } else {
                           $currentstring .= '>';
                       }
                 } else {                  } else {
                     $currentstring = $token->[4];                      $currentstring = $token->[4];
                 }                  }
                 if (($url !~ m{^https?://}) && ($env{'request.course.id'})) {              }
                     my $docuri = &Apache::lonnet::hreflocation('',$env{'request.filename'});              if (($url !~ m{^https?://}) && ($env{'request.course.id'})) {
                     my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};                  my $docuri = &Apache::lonnet::hreflocation('',$env{'request.filename'});
                     my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};                  my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
                     if ($url =~ m{^([^/]|/uploaded/)}) {                  my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
                         my $cleanhref = &Apache::londefdef::clean_docs_httpref($url,$docuri,$cdom,$cnum);                  if ($url =~ m{^([^/]|/uploaded/)}) {
                         if ($cleanhref) {                      my $cleanhref = &clean_docs_httpref($url,$docuri,$cdom,$cnum);
                             &Apache::lonxml::extlink($cleanhref);                      if ($cleanhref) {
                         }                          &Apache::lonxml::extlink($cleanhref);
                     } elsif (($url =~ m{/res/$LONCAPA::domain_re/}) && ($docuri =~ m{^\Q/uploaded/$cdom/$cnum/docs/\E})) {                      }
                         if (!&Apache::lonnet::allowed('bre',$url)) {                  } elsif (($url =~ m{/res/$LONCAPA::domain_re/}) && ($docuri =~ m{^\Q/uploaded/$cdom/$cnum/docs/\E})) {
                             if (&Apache::lonnet::is_on_map($url)) {                      if (!&Apache::lonnet::allowed('bre',$url)) {
                                 &Apache::lonxml::extlink($url);                          if (&Apache::lonnet::is_on_map($url)) {
                             }                              &Apache::lonxml::extlink($url);
                         }                          }
                     }                      }
                 }                  }
Line 4591  sub latex_header { Line 4603  sub latex_header {
 sub clean_docs_httpref {  sub clean_docs_httpref {
     my ($href,$docuri,$cdom,$cnum) = @_;      my ($href,$docuri,$cdom,$cnum) = @_;
     if ($docuri eq '') {      if ($docuri eq '') {
         &Apache::lonnet::hreflocation('',$env{'request.filename'});          $docuri = &Apache::lonnet::hreflocation('',$env{'request.filename'});
     }      }
     if ($cdom eq '') {      if ($cdom eq '') {
         $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};          $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
Line 4612  sub clean_docs_httpref { Line 4624  sub clean_docs_httpref {
                 return $cleanhref;                  return $cleanhref;
             }              }
         } else {          } else {
             (my $path,$fname) = ($href =~ m{^(.+)/([^/]*)$});              if ($href =~ m{/}) {  
             $hrefpath = $relpath.$path;                  (my $path,$fname) = ($href =~ m{^(.*)/([^/]*)$});
                   $hrefpath = $relpath.$path;
                   if ($path eq '') {
                       $hrefpath =~ s{/$}{};
                   }
               } else {
                   $fname = $href;
                   $hrefpath = $relpath;
                   $hrefpath =~ s{/$}{};
               }
         }          }
         if ($fname ne '') {          if ($fname ne '') {
             my $cleanrelpath;              my $cleanrelpath;
Line 4625  sub clean_docs_httpref { Line 4646  sub clean_docs_httpref {
                     $cleanrelpath .= $dir.'/';                      $cleanrelpath .= $dir.'/';
                 }                  }
             }              }
             $cleanrelpath =~ s{/$}{};  
             if ($cleanrelpath ne '') {              if ($cleanrelpath ne '') {
                 $cleanhref = $prefix.'/'.$cleanrelpath.'/'.$fname;                  $cleanhref = $prefix.$cleanrelpath.$fname;
             } else {              } else {
                 $cleanhref = $prefix.'/'.$fname;                  $cleanhref = $prefix.$fname;
             }              }
         }          }
     }      }

Removed from v.1.447  
changed lines
  Added in v.1.453


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