--- loncom/lontrans.pm 2018/01/12 13:34:08 1.18 +++ loncom/lontrans.pm 2018/04/17 14:02:56 1.21 @@ -1,7 +1,7 @@ # The LearningOnline Network # URL translation for User Files # -# $Id: lontrans.pm,v 1.18 2018/01/12 13:34:08 raeburn Exp $ +# $Id: lontrans.pm,v 1.21 2018/04/17 14:02:56 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -44,16 +44,43 @@ sub handler { my $handle = &Apache::lonnet::check_for_valid_session($r,undef,\%user); if (($handle ne '') && ($user{'lti'})) { if ($realuri =~ m{^uploaded/$match_domain/$match_courseid/(default|supplemental)(|_\d+)\.(?:sequence|page)___\d+___.+$}) { + if ($user{'ltiuri'} ne $realuri) { + &Apache::lonnet::appenv({'request.lti.uri' => $realuri}); + } + my ($map,$resid,$url) = split(/___/,$realuri); + $realuri = &Apache::lonnet::clutter($url).'?symb='.$realuri; + } elsif ($realuri =~ m{^res/$match_domain/$match_username/.+\.(?:sequence|page)___\d+___.+$}) { + if ($user{'ltiuri'} ne $realuri) { + &Apache::lonnet::appenv({'request.lti.uri' => $realuri}); + } my ($map,$resid,$url) = split(/___/,$realuri); $realuri = &Apache::lonnet::clutter($url).'?symb='.$realuri; } elsif ($realuri =~ m{^tiny/$match_domain/\w+$}) { - $realuri = '/'.$realuri; + $realuri = '/'.$realuri; + if ($user{'ltiuri'} ne $realuri) { + &Apache::lonnet::appenv({'request.lti.uri' => $realuri}); + } } elsif ($realuri =~ m{($match_domain)/($match_courseid)$}) { $realuri = '/adm/navmaps'; + if ($user{'ltiuri'} ne '') { + &Apache::lonnet::delenv('request.lti.uri'); + } } else { $realuri = '/'.$realuri; if ($realuri =~ m{/default_\d+\.sequence$}) { + if ($user{'ltiuri'} ne $realuri) { + &Apache::lonnet::appenv({'request.lti.uri' => $realuri}); + } $realuri .= (($realuri =~/\?/)?'&':'?').'navmap=1'; + } elsif ($realuri =~ m{^/res/.+\.sequence$}) { + if ($user{'ltiuri'} ne $realuri) { + &Apache::lonnet::appenv({'request.lti.uri' => $realuri}); + } + $realuri .= (($realuri =~/\?/)?'&':'?').'navmap=1'; + } elsif ($realuri =~ m{\.page$}) { + if ($user{'ltiuri'} ne $realuri) { + &Apache::lonnet::appenv({'request.lti.uri' => $realuri}); + } } } my $host = $r->headers_in->get('Host'); @@ -103,10 +130,21 @@ sub handler { } if ((&Apache::lonnet::EXT('resource.0.encrypturl',$symb) =~ /^yes$/i) && (!$env{'request.role.adv'})) { - $realuri = &Apache::lonenc::encrypted(&Apache::lonnet::clutter($url)). - '?symb='.&Apache::lonenc::encrypted($symb); + $realuri = &Apache::lonenc::encrypted(&Apache::lonnet::clutter($url)); + if (($url =~ /\.sequence$/) && + ($env{'course.'.$env{'request.course.id'}.'.type'} ne 'Placement')) { + $realuri .= '?navmap=1'; + } else { + $realuri .= '?symb='.&Apache::lonenc::encrypted($symb); + } } else { - $realuri = &Apache::lonnet::clutter($url).'?symb='.$symb; + $realuri = &Apache::lonnet::clutter($url); + if (($url =~ /\.sequence$/) && + ($env{'course.'.$env{'request.course.id'}.'.type'} ne 'Placement')) { + $realuri .= '?navmap=1'; + } else { + $realuri .= '?symb='.$symb; + } } my $host = $r->headers_in->get('Host'); if ($host) {