Diff for /loncom/lonnet/perl/lonnet.pm between versions 1.1301 and 1.1302

version 1.1301, 2016/03/02 14:14:14 version 1.1302, 2016/03/02 18:23:17
Line 10341  sub resdata { Line 10341  sub resdata {
         if ($item->[1] eq 'course') {          if ($item->[1] eq 'course') {
             if ((ref($recurseup) eq 'ARRAY') && (ref($recursed) eq 'SCALAR')) {              if ((ref($recurseup) eq 'ARRAY') && (ref($recursed) eq 'SCALAR')) {
                 unless ($$recursed) {                  unless ($$recursed) {
                     @{$recurseup} = &get_map_hierarchy($mapp);                      @{$recurseup} = &get_map_hierarchy($mapp,$courseid);
                     $$recursed = 1;                      $$recursed = 1;
                 }                  }
                 foreach my $item (@${recurseup}) {                  foreach my $item (@${recurseup}) {
Line 10402  sub get_numsuppfiles { Line 10402  sub get_numsuppfiles {
 # EXT resource caching routines  # EXT resource caching routines
 #  #
   
   {
   # Cache (5 seconds) of map hierarchy for speedup of navmaps display
   #
   # The course for which we cache
   my $cachedmapkey='';
   # The cached recursive maps for this course
   my %cachedmaps=();
   # When this was last done
   my $cachedmaptime='';
   
 sub clear_EXT_cache_status {  sub clear_EXT_cache_status {
     &delenv('cache.EXT.');      &delenv('cache.EXT.');
 }  }
Line 10592  sub EXT { Line 10602  sub EXT {
 # ----------------------------------------------------- Cascading lookup scheme  # ----------------------------------------------------- Cascading lookup scheme
     my $symbp=$symbparm;      my $symbp=$symbparm;
     $mapp=&deversion((&decode_symb($symbp))[0]);      $mapp=&deversion((&decode_symb($symbp))[0]);
             @recurseup=();  
     my $symbparm=$symbp.'.'.$spacequalifierrest;      my $symbparm=$symbp.'.'.$spacequalifierrest;
             my $recurseparm=$mapp.'___(rec).'.$spacequalifierrest;              my $recurseparm=$mapp.'___(rec).'.$spacequalifierrest;
     my $mapparm=$mapp.'___(all).'.$spacequalifierrest;      my $mapparm=$mapp.'___(all).'.$spacequalifierrest;
Line 10764  sub check_group_parms { Line 10773  sub check_group_parms {
 }  }
   
 sub get_map_hierarchy {  sub get_map_hierarchy {
     my ($mapname) = @_;      my ($mapname,$courseid) = @_;
     my @recurseup = ();       my @recurseup = ();
     if ($mapname) {      if ($mapname) {
           if (($cachedmapkey eq $courseid) &&
               (abs($cachedmaptime-time)<5)) {
               if (ref($cachedmaps{$mapname}) eq 'ARRAY') {
                   return @{$cachedmaps{$mapname}};
               }
           }
         my $navmap = Apache::lonnavmaps::navmap->new();          my $navmap = Apache::lonnavmaps::navmap->new();
         if (ref($navmap)) {          if (ref($navmap)) {
             @recurseup = $navmap->recurseup_maps($mapname);              @recurseup = $navmap->recurseup_maps($mapname);
             undef($navmap);              undef($navmap);
               $cachedmaps{$mapname} = \@recurseup;
               $cachedmaptime=time;
               $cachedmapkey=$courseid;
         }          }
     }      }
     return @recurseup;      return @recurseup;
 }  }
   
   }
   
 sub sort_course_groups { # Sort groups based on defined rankings. Default is sort().  sub sort_course_groups { # Sort groups based on defined rankings. Default is sort().
     my ($courseid,@groups) = @_;      my ($courseid,@groups) = @_;
     @groups = sort(@groups);      @groups = sort(@groups);

Removed from v.1.1301  
changed lines
  Added in v.1.1302


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