--- loncom/interface/lonnavmaps.pm 2017/07/10 13:01:39 1.532
+++ loncom/interface/lonnavmaps.pm 2017/08/21 21:29:56 1.533
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.532 2017/07/10 13:01:39 raeburn Exp $
+# $Id: lonnavmaps.pm,v 1.533 2017/08/21 21:29:56 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1007,9 +1007,12 @@ sub render_resource {
# Don't allow users to manipulate folder
$icon = "navmap.$folderType." . ($nowOpen ? 'closed' : 'open') . '.gif';
$icon = ""."";
-
- $linkopen = "";
- $linkclose = "";
+ if ($params->{'caller'} eq 'sequence') {
+ $linkopen = "";
+ } else {
+ $linkopen = "";
+ $linkclose = "";
+ }
}
if (((&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) ||
(&Apache::lonnet::allowed('cev',$env{'request.course.id'}))) &&
@@ -1372,10 +1375,11 @@ sub render {
my $currenturl = $env{'form.postdata'};
#$currenturl=~s/^http\:\/\///;
#$currenturl=~s/^[^\/]+//;
-
- $here = $jump = &Apache::lonnet::symbread($currenturl);
+ unless ($args->{'caller'} eq 'sequence') {
+ $here = $jump = &Apache::lonnet::symbread($currenturl);
+ }
}
- if ($here eq '') {
+ if (($here eq '') && ($args->{'caller'} ne 'sequence')) {
my $last;
if (tie(my %hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db',
&GDBM_READER(),0640)) {
@@ -1866,9 +1870,13 @@ END
}
}
if (defined($anchor)) { $anchor='#'.$anchor; }
- $args->{"resourceLink"} = $src.
- ($srcHasQuestion?'&':'?') .
- 'symb=' . &escape($symb).$anchor;
+ if (($args->{'caller'} eq 'sequence') && ($curRes->is_map())) {
+ $args->{"resourceLink"} = $src.($srcHasQuestion?'&':'?') .'navmap=1';
+ } else {
+ $args->{"resourceLink"} = $src.
+ ($srcHasQuestion?'&':'?') .
+ 'symb=' . &escape($symb).$anchor;
+ }
}
# Now, we've decided what parts to show. Loop through them and
# show them.
@@ -2873,6 +2881,42 @@ sub recurseup_maps {
return @recurseup;
}
+sub recursed_crumbs {
+ my ($self,$mapurl) = @_;
+ my (@revmapinfo,@revmapres);
+ my $mapres = $self->getResourceByUrl($mapurl);
+ if (ref($mapres)) {
+ @revmapres = map { $self->getByMapPc($_); } split(/,/,$mapres->map_hierarchy());
+ shift(@revmapres);
+ push(@revmapres,$mapres);
+ }
+ my %toplevel;
+ foreach my $map (@revmapres) {
+ my $pc = $map->map_pc();
+ next if ((!$pc) || ($pc == 1));
+ my $func = sub { return ($_[0]->src() ne $map->src); };
+ my @resources = $self->retrieveResources($map->src,$func,0);
+ my $count = 0;
+ my $notmap = 0;
+ foreach my $res (@resources) {
+ next unless (ref($res));
+ my $symb = $res->symb();
+ unless ($toplevel{$symb}) {
+ $toplevel{$symb} = $res->src;
+ $count ++;
+ unless ($res->is_map()) {
+ $notmap ++;
+ }
+ }
+ }
+ if (($count > 1) || ($count && $notmap)) {
+ push(@revmapinfo,{'href' => $map->link().'?navmap=1','text' => $map->title(),'no_mt' => 1,});
+ }
+ }
+ return @revmapinfo;
+}
+
+
#
# Determines the open/close dates for printing a map that
# encloses a resource.