--- loncom/interface/lonsyllabus.pm 2020/04/07 18:42:25 1.138.2.3.4.1
+++ loncom/interface/lonsyllabus.pm 2022/01/01 21:06:33 1.138.2.8
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Syllabus
#
-# $Id: lonsyllabus.pm,v 1.138.2.3.4.1 2020/04/07 18:42:25 raeburn Exp $
+# $Id: lonsyllabus.pm,v 1.138.2.8 2022/01/01 21:06:33 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -177,14 +177,22 @@ sub handler {
$brcrum =
&Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1);
}
- $r->print(&Apache::lonwrapper::wrapper($item,$brcrum,$env{'request.use_absolute'},
- undef,$is_pdf,'','','',&mt('Syllabus')));
+ $r->print(&Apache::lonwrapper::wrapper($r,$item,$brcrum,$env{'request.use_absolute'},
+ undef,$is_pdf,&mt('Syllabus')));
}
}
return OK;
}
} elsif ($external=~/\w/) {
unless ($allowed && $forceedit) {
+ if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public') &&
+ ($ENV{'SERVER_PORT'} == 443) && ($external =~ m{^http://}) && !($env{'form.usehttp'})) {
+ my $hostname = $r->hostname();
+ unless ((&Apache::lonnet::uses_sts()) || (&Apache::lonnet::waf_allssl($hostname))) {
+ &redirect_to_http($r);
+ return OK;
+ }
+ }
if ($target eq 'tex') {
$r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}).
' \strut \\\\ \textbf{'.&mt('Syllabus').'} \strut \\\\ '.$external.' '.
@@ -204,8 +212,8 @@ sub handler {
$brcrum =
&Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1);
}
- $r->print(&Apache::lonwrapper::wrapper($external,$brcrum,$env{'request.use_absolute'},
- $is_ext,$is_pdf,'','','',&mt('Syllabus')));
+ $r->print(&Apache::lonwrapper::wrapper($r,$external,$brcrum,$env{'request.use_absolute'},
+ $is_ext,$is_pdf,&mt('Syllabus')));
}
return OK;
}
@@ -306,9 +314,12 @@ sub handler {
if ($allowed) {
#---------------------------------- Print External URL Syllabus Info if editing
if ($target ne 'tex') {
+ my $hostname = &Apache::lonnet::hostname($homeserver);
my $protocol = $Apache::lonnet::protocol{$homeserver};
$protocol = 'http' if ($protocol ne 'https');
- my $link = $protocol.'://'.&Apache::lonnet::hostname($homeserver).$r->uri;
+ my $alias = &Apache::lonnet::use_proxy_alias($r,$homeserver);
+ $hostname = $alias if ($alias ne '');
+ my $link = $protocol.'://'.$hostname.$r->uri;
$r->print('
'
.''
.''
@@ -317,7 +328,7 @@ sub handler {
.''
.'
'."\n");
my $lonhost = $r->dir_config('lonHostID');
- $r->print(&chooser($external,$uploaded,$minimal,$cdom,$cnum,$lonhost,
+ $r->print(&chooser($r,$external,$uploaded,$minimal,$cdom,$cnum,$lonhost,
\%syllabusfields,\%syllabus));
}
} else {
@@ -744,6 +755,7 @@ ENDSCRIPT
if ($env{'form.only_body'}) {
$args->{'only_body'} = 1;
}
+ $args->{'hostname'} = $r->hostname();
my $start_page =
&Apache::loncommon::start_page("Syllabus", $rss_link.$js,$args);
if ($start_page) {
@@ -779,7 +791,7 @@ sub get_breadcrumbs{
}
sub chooser {
- my ($external,$uploaded,$minimal,$cdom,$cnum,$lonhost,$fields,$values) = @_;
+ my ($r,$external,$uploaded,$minimal,$cdom,$cnum,$lonhost,$fields,$values) = @_;
my %lt = &Apache::lonlocal::texthash(
'type' => 'Syllabus Type',
'url' => 'External URL',
@@ -844,7 +856,7 @@ sub chooser {
''."\n".
'