Diff for /loncom/interface/lonnavmaps.pm between versions 1.546 and 1.552

version 1.546, 2019/01/16 20:23:37 version 1.552, 2021/07/14 03:58:17
Line 592  sub getLinkForResource { Line 592  sub getLinkForResource {
     my $anchor;      my $anchor;
     if ($res->is_page()) {      if ($res->is_page()) {
  foreach my $item (@$stack) { if (defined($item)) { $anchor = $item; }  }   foreach my $item (@$stack) { if (defined($item)) { $anchor = $item; }  }
  $anchor=&escape($anchor->shown_symb());   if ($anchor->encrypted() && !&advancedUser()) {
       $anchor='LC_'.$anchor->id();
    } else {
       $anchor=&escape($anchor->shown_symb());
    }
  return ($res->link(),$res->shown_symb(),$anchor);   return ($res->link(),$res->shown_symb(),$anchor);
     }      }
             # in case folder was skipped over as "only sequence"              # in case folder was skipped over as "only sequence"
Line 1831  END Line 1835  END
                     }                      }
                 } else {                  } else {
                     my $deeplink = $navmap->get_mapparam(undef,$mapname,"0.deeplink");                      my $deeplink = $navmap->get_mapparam(undef,$mapname,"0.deeplink");
                     if (($deeplink eq 'absent') || ($deeplink eq 'grades')) {                      if ($deeplink =~ /^(absent|grades),/) {
                         if ($userCanSeeHidden) {                          if ($userCanSeeHidden) {
                             $args->{'mapUnlisted'} = 1;                              $args->{'mapUnlisted'} = 1;
                         } else {                          } else {
Line 1902  END Line 1906  END
             }              }
         }          }
         # If deep-link parameter is set (and is not set to full) suppress link          # If deep-link parameter is set (and is not set to full) suppress link
         # unless priviliged user, or calling context is sequence, and parameter          # unless privileged user, or calling context is sequence, and parameter
         # set at map level          # set at map level
         if ((!$curRes->deeplink($args->{'caller'})) ||          if ((!$curRes->deeplink($args->{'caller'})) ||
             ($curRes->deeplink($args->{'caller'}) eq 'full') || &advancedUser()) {              ($curRes->deeplink($args->{'caller'}) =~ /^full,/) || &advancedUser()) {
             $args->{'resource_nolink'} = 0;              $args->{'resource_nolink'} = 0;
         } else {          } else {
             $args->{'resource_nolink'} = 1;              $args->{'resource_nolink'} = 1;
Line 1936  END Line 1940  END
             if ($env{'request.course.id'}) {              if ($env{'request.course.id'}) {
                 if (($is_ssl) && ($src =~ m{^\Q/public/$cdom/$cnum/syllabus\E($|\?)}) &&                  if (($is_ssl) && ($src =~ m{^\Q/public/$cdom/$cnum/syllabus\E($|\?)}) &&
                     ($env{'course.'.$env{'request.course.id'}.'.externalsyllabus'} =~ m{^http://})) {                      ($env{'course.'.$env{'request.course.id'}.'.externalsyllabus'} =~ m{^http://})) {
                     unless (&Apache::lonnet::uses_sts()) {                      unless ((&Apache::lonnet::uses_sts()) || (&Apache::lonnet::waf_allssl($hostname))) {
                         if ($hostname ne '') {                          if ($hostname ne '') {
                             $src = 'http://'.$hostname.$src;                              $src = 'http://'.$hostname.$src;
                         }                          }
Line 1944  END Line 1948  END
                         $srcHasQuestion = 1;                          $srcHasQuestion = 1;
                     }                      }
                 } elsif (($is_ssl) && ($src =~ m{^\Q/adm/wrapper/ext/\E(?!https:)})) {                  } elsif (($is_ssl) && ($src =~ m{^\Q/adm/wrapper/ext/\E(?!https:)})) {
                     unless (&Apache::lonnet::uses_sts()) {                      unless ((&Apache::lonnet::uses_sts()) || (&Apache::lonnet::waf_allssl($hostname))) {
                         if ($hostname ne '') {                          if ($hostname ne '') {
                             $src = 'http://'.$hostname.$src;                              $src = 'http://'.$hostname.$src;
                         }                          }
Line 1988  END Line 1992  END
                     $currentJumpDelta) {                      $currentJumpDelta) {
                     # Jam the anchor after the <td> tag;                      # Jam the anchor after the <td> tag;
                     # necessary for valid HTML (which Mozilla requires)                      # necessary for valid HTML (which Mozilla requires)
                     $colHTML =~ s/\>/\>\<a name="curloc" \/\>/;                      $colHTML =~ s/\>/\>\<a name="curloc" \>\<\/a\>/;
                     $displayedJumpMarker = 1;                      $displayedJumpMarker = 1;
                 }                  }
                 $result .= $colHTML . "\n";                  $result .= $colHTML . "\n";
Line 3239  sub get_mapparam { Line 3243  sub get_mapparam {
  if (defined($$courseopt{$courselevelm})) {   if (defined($$courseopt{$courselevelm})) {
     return $$courseopt{$courselevelm};      return $$courseopt{$courselevelm};
  }   }
           if (defined($$courseopt{$courseleveli})) {
               return $$courseopt{$courseleveli};
           }
         unless ($recursed) {          unless ($recursed) {
             @recurseup = $self->recurseup_maps($mapname);              @recurseup = $self->recurseup_maps($mapname);
             $recursed = 1;              $recursed = 1;
Line 4017  sub next { Line 4024  sub next {
     # That ends the main iterator logic. Now, do we want to recurse      # That ends the main iterator logic. Now, do we want to recurse
     # down this map (if this resource is a map)?      # down this map (if this resource is a map)?
     if ( ($self->{HERE}->is_sequence() || (!$closeAllPages && $self->{HERE}->is_page())) &&      if ( ($self->{HERE}->is_sequence() || (!$closeAllPages && $self->{HERE}->is_page())) &&
         (defined($self->{FILTER}->{$self->{HERE}->map_pc()}) xor $self->{CONDITION})) {          (defined($self->{FILTER}->{$self->{HERE}->map_pc()}) xor $self->{CONDITION}) &&
           ($env{'request.role.adv'} || !$self->{HERE}->randomout())) {
         $self->{RECURSIVE_ITERATOR_FLAG} = 1;          $self->{RECURSIVE_ITERATOR_FLAG} = 1;
         my $firstResource = $self->{HERE}->map_start();          my $firstResource = $self->{HERE}->map_start();
         my $finishResource = $self->{HERE}->map_finish();          my $finishResource = $self->{HERE}->map_finish();
Line 5149  sub slot_control { Line 5157  sub slot_control {
 }  }
 sub deeplink {  sub deeplink {
     my ($self,$caller) = @_;      my ($self,$caller) = @_;
     if ($caller eq 'sequence') {      my $value = $self->parmval("deeplink");
         my @deeplink = $self->parmval("deeplink");      if ($value) {
         if ($deeplink[1] eq 'resource') {          my @deeplink = split(/,/,$value);
             return $deeplink[0];          if ($caller eq 'sequence') {
               if ($deeplink[1] ne 'res') {
                   return;
               }
         }          }
     } else {          return $deeplink[0];
         return $self->parmval("deeplink");  
     }      }
       return;
 }  }
   
 # Multiple things need this  # Multiple things need this

Removed from v.1.546  
changed lines
  Added in v.1.552


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.