--- rat/lonpage.pm 2020/02/18 22:28:41 1.133 +++ rat/lonpage.pm 2020/03/03 01:16:31 1.134 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Page Handler # -# $Id: lonpage.pm,v 1.133 2020/02/18 22:28:41 raeburn Exp $ +# $Id: lonpage.pm,v 1.134 2020/03/03 01:16:31 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -304,22 +304,38 @@ sub handler { foreach (@colcont) { my $src=$hash{'src_'.$_}; my $plainsrc = $src; + if ($hash{'ext_'.$_} eq 'true:') { + $cellexternal{$_}=($hash{'ext_'.$_} eq 'true:'); + $src =~ s{^/ext/}{http://}; + $src =~ s{http://https://}{https://}; + } my ($extension)=($src=~/\.(\w+)$/); - $cellexternal{$_}=($hash{'ext_'.$_} eq 'true:'); if ($hash{'encrypted_'.$_}) { $src=&Apache::lonenc::encrypted($src); } my ($mapid,$resid)=split(/\./,$_); - my $symb=&Apache::lonnet::encode_symb($hash{'map_id_'.$mapid},$resid,$src); + my $symb=&Apache::lonnet::encode_symb($hash{'map_id_'.$mapid},$resid,$plainsrc); unless ($env{'request.role.adv'}) { $buttonshide{$symb} = &Apache::lonnet::EXT("resource.0.buttonshide",$symb); } $cellemb{$_}= &Apache::loncommon::fileembstyle($extension); if ($cellexternal{$_}) { - unless (($target eq 'tex') || ($target eq 'tex_answer')) { + if (($target eq 'tex') || ($target eq 'tex_answer')) { + my $shown = $src; + if ($hash{'encrypted_'.$_}) { + $shown = &mt('URL not shown (encrypted)'); + } + my $title=&Apache::lonnet::gettitle($symb); + $title = &Apache::lonxml::latex_special_symbols($title); + $ssibody{$_} = ' \strut \\\\ \textit{'.$title.'} \strut \\\\ '.$shown.'\\\\'; + } else { + my $showsrc = $src; + if (($hash{'encrypted_'.$_}) && ($symb)) { + $showsrc .= '?symb='.&Apache::lonenc::encrypted($symb); + } $ssibody{$_} = <No iframe support! + ENDEXT } } elsif ($cellemb{$_} eq 'ssi') { @@ -903,15 +919,14 @@ sub get_buttons { ? "/$env{'request.course.sec'}" : ''); if ($hash->{'encrypted_'.$rid}) { - $symb=&Apache::lonenc::encrypted($symb); $esrc=&Apache::lonenc::encrypted($esrc); } if ($hash->{'src_'.$rid} !~ m-^/uploaded/- - && $hash->{'src_'.$rid} !~ m{^https?://} + && $hash->{'src_'.$rid} !~ m{^/ext/} && !$env{'request.enc'} && ($env{'request.role.adv'} || !$hash->{'encrypted_'.$rid})) { - $metainfo .=''. + $metainfo .=''. ''. ''.&mt('Show Metadata').''; } if (($hash->{'src_'.$rid} !~ m{^/uploaded/}) && - ($hash->{'src_'.$rid} !~ m{^https?://})) { + ($hash->{'src_'.$rid} !~ m{^/ext/})) { $metainfo .= ''.