--- loncom/interface/lonnavmaps.pm 2017/02/18 23:39:16 1.527 +++ loncom/interface/lonnavmaps.pm 2017/07/07 17:04:40 1.531 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.527 2017/02/18 23:39:16 raeburn Exp $ +# $Id: lonnavmaps.pm,v 1.531 2017/07/07 17:04:40 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1688,9 +1688,14 @@ END # it contains a syllabus which uses an external URL # which points at an http site. - my ($is_ssl,$cdom,$cnum); + my ($is_ssl,$cdom,$cnum,$hostname); if ($ENV{'SERVER_PORT'} == 443) { $is_ssl = 1; + if ($r) { + $hostname = $r->hostname(); + } else { + $hostname = $ENV{'SERVER_NAME'}; + } } if ($env{'request.course.id'}) { $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; @@ -1831,10 +1836,17 @@ END ($src,$symb,$anchor)=getLinkForResource($stack); my $srcHasQuestion = $src =~ /\?/; if ($env{'request.course.id'}) { - if (($src =~ m{^\Q/public/$cdom/$cnum/syllabus\E($|\?)}) && ($is_ssl) && + if (($is_ssl) && ($src =~ m{^\Q/public/$cdom/$cnum/syllabus\E($|\?)}) && ($env{'course.'.$env{'request.course.id'}.'.externalsyllabus'} =~ m{^http://})) { + if ($hostname ne '') { + $src = 'http://'.$hostname.$src; + } $src .= ($srcHasQuestion? '&' : '?') . 'usehttp=1'; $srcHasQuestion = 1; + } elsif (($is_ssl) && ($src =~ m{^\Q/adm/wrapper/ext/\E(?!https:)})) { + if ($hostname ne '') { + $src = 'http://'.$hostname.$src; + } } } if (defined($anchor)) { $anchor='#'.$anchor; } @@ -5094,7 +5106,7 @@ sub extractParts { my %parts; # Retrieve part count, if this is a problem - if ($self->is_problem()) { + if ($self->is_raw_problem()) { my $partorder = &Apache::lonnet::metadata($self->src(), 'partorder'); my $metadata = &Apache::lonnet::metadata($self->src(), 'packages');