--- rat/lonsequence.pm 2020/09/03 12:49:17 1.48.2.2 +++ rat/lonsequence.pm 2020/09/03 12:14:30 1.52 @@ -2,7 +2,7 @@ # # Sequence Handler # -# $Id: lonsequence.pm,v 1.48.2.2 2020/09/03 12:49:17 raeburn Exp $ +# $Id: lonsequence.pm,v 1.52 2020/09/03 12:14:30 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -36,6 +36,7 @@ use Apache::lonnet; use Apache::Constants qw(:common :http REDIRECT); use GDBM_File; use LONCAPA::map(); +use LONCAPA::ltiutils; use LONCAPA; use Apache::lonpageflip(); use Apache::loncommon(); @@ -260,20 +261,32 @@ sub handler { if (ref($navmap)) { # renderer call if (&Apache::lonnet::is_on_map($requrl)) { - @crumbs = ({text => $crstype.' Contents', - href => "javascript:gopost('/adm/navmaps','')"}); - my $res = $navmap->getResourceByUrl($mapurl); - if (ref($res)) { - my $symb = $res->symb(); - if ($symb) { - my ($parent) = &Apache::lonnet::decode_symb($res->symb()); - if ($parent ne $env{'course.'.$env{'request.course.id'}.'.url'}) { - my @mapcrumbs = $navmap->recursed_crumbs($parent); - if (@mapcrumbs) { - push(@crumbs,@mapcrumbs); + my ($ltiscope,$ltiuri); + if (($env{'request.lti.login'}) && ($env{'request.lti.uri'})) { + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + ($ltiscope,$ltiuri) = &LONCAPA::ltiutils::lti_provider_scope($env{'request.lti.uri'},$cdom,$cnum); + } + @crumbs = (); + unless ($ltiscope eq 'resource') { + unless ($ltiscope eq 'map') { + @crumbs = ({text => $crstype.' Contents', + href => "javascript:gopost('/adm/navmaps','')"}); + } + my $res = $navmap->getResourceByUrl($mapurl); + if (ref($res)) { + my $symb = $res->symb(); + if ($symb) { + my ($parent) = &Apache::lonnet::decode_symb($res->symb()); + if (($parent ne $env{'course.'.$env{'request.course.id'}.'.url'}) && + !(($ltiscope eq 'map') && ($requrl eq $ltiuri))) { + my @mapcrumbs = $navmap->recursed_crumbs($parent); + if (@mapcrumbs) { + push(@crumbs,@mapcrumbs); + } } + $env{'request.symb'} = $symb; } - $env{'request.symb'} = $symb; } } push(@crumbs,{text => $maptitle, no_mt => 1}); @@ -404,7 +417,7 @@ sub handler { if ($is_encrypted) { $showdisurl = &Apache::lonenc::encrypted($disurl); } - if ($disurl =~ m{^/adm/navmaps(\?|$)}) { + if ($disurl =~ m{/adm/navmaps(\?|$)}) { &Apache::lonnet::symblist($requrl,$disurl => [$disurl,$dismapid]); } else { &Apache::lonnet::symblist($requrl,$disurl => [$disurl,$dismapid],