--- rat/lonambiguous.pm 2006/03/19 23:06:00 1.18
+++ rat/lonambiguous.pm 2013/11/12 04:47:38 1.25
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to resolve ambiguous file locations
#
-# $Id: lonambiguous.pm,v 1.18 2006/03/19 23:06:00 albertel Exp $
+# $Id: lonambiguous.pm,v 1.25 2013/11/12 04:47:38 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -26,6 +26,8 @@
# http://www.lon-capa.org/
#
+
+
package Apache::lonambiguous;
use strict;
@@ -55,8 +57,8 @@ sub getlost {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
$r->print(&Apache::loncommon::start_page('Could not handle ambiguous resource reference').
- $errmsg.
- (&Apache::loncommon::end_page());
+ '
'.$errmsg.'
'.
+ &Apache::loncommon::end_page());
}
# ================================================================ Main Handler
@@ -95,7 +97,7 @@ sub handler {
$resurl => [$resurl,$resid]);
untie(%bighash);
$r->header_out(Location =>
- 'http://'.$ENV{'HTTP_HOST'}.$resurl);
+ &Apache::lonnet::absolute_url().$resurl);
return REDIRECT;
}
}
@@ -134,7 +136,7 @@ sub handler {
# ----------------------------------- Okay, this should have appeared on a page
&Apache::loncommon::content_type($r,'text/html');
$r->header_out(Location =>
- 'http://'.$ENV{'HTTP_HOST'}.
+ &Apache::lonnet::absolute_url().
&Apache::lonnet::clutter($page));
return REDIRECT;
} else {
@@ -146,7 +148,8 @@ sub handler {
# ------------------------------------Encrypted requests go straight to navmaps
if ($env{'request.enc'}) {
&Apache::loncommon::content_type($r,'text/html');
- $r->header_out(Location => 'http://'.$ENV{'HTTP_HOST'}.'/adm/navmaps');
+ $r->header_out(Location =>
+ &Apache::lonnet::absolute_url().'/adm/navmaps');
return REDIRECT;
}
# ------------------------------------------------ Would be standalone resource
@@ -178,9 +181,9 @@ sub handler {
my $mapurl=$bighash{'map_id_'.(split(/\./,$id))[0]};
my $symb=&make_symb($id);
&Apache::loncommon::content_type($r,'text/html');
- &Apache::lonnet::logthis('http://'.$ENV{'HTTP_HOST'}.$resurl.'?symb='.$symb);
$r->header_out(Location =>
- 'http://'.$ENV{'HTTP_HOST'}.$resurl.'?symb='.$symb);
+ &Apache::lonnet::absolute_url().
+ $resurl.'?symb='.$symb);
return REDIRECT;
}
if ($#possibilities>0) {
@@ -189,29 +192,45 @@ sub handler {
$r->send_http_header;
my $start_page=
&Apache::loncommon::start_page('Pick Instance of Resource');
- $r->print(<
-Please click on the instance of the resource you intended to access:
-
-
-Title | Part of ... |
-ENDSTART
+ $r->print(
+ $start_page
+ .''
+ .&mt('The resource you had been accessing appears more than'
+ .' once in this course, and LON-CAPA has insufficient'
+ .' session information to determine which instance'
+ .' of the resource you meant.')
+ .'
'
+ .''
+ .&mt('Please click on the instance of the resource you'
+ .' intended to access:')
+ .'
'
+ );
+ $r->print(
+ &Apache::loncommon::start_data_table()
+ .&Apache::loncommon::start_data_table_header_row()
+ .''.&mt('Title').' | '
+ .''.&mt('Part of ...').' | '
+ .&Apache::loncommon::end_data_table_header_row()
+ .&Apache::loncommon::start_data_table_row()
+ );
map {
- my $resurl=$bighash{'src_'.$_};
+ my $resurl=$bighash{'src_'.$_};
my $mapurl=$bighash{'map_id_'.(split(/\./,$_))[0]};
- my $symb=&make_symb($_);
- $r->print(''.
- &Apache::lonnet::gettitle($symb).
- ' | '.
- &Apache::lonnet::gettitle($mapurl).' '.
- ' |
');
+ my $symb=&make_symb($_);
+ $r->print(
+ &Apache::loncommon::start_data_table_row()
+ .''
+ .&Apache::lonnet::gettitle($symb)
+ .' | '
+ .''.&Apache::lonnet::gettitle($mapurl).' | '
+ .&Apache::loncommon::end_data_table_row()
+ );
} @possibilities;
- $r->print('
'.&Apache::loncommon::end_page());
- untie(%bighash);
+ $r->print(
+ &Apache::loncommon::end_data_table()
+ .&Apache::loncommon::end_page()
+ );
+ untie(%bighash);
return OK;
}
}
@@ -229,6 +248,40 @@ __END__
+=head1 NAME
+
+Apache::lonambiguous
+
+=head1 SYNOPSIS
+
+Handler to resolve ambiguous file locations.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 HANDLER SUBROUTINE
+
+make_symb()
+
+and
+
+handler()
+
+=head1 OTHER SUBROUTINES
+
+=over
+
+=item *
+
+cleanup()
+
+=item *
+
+getlost()
+
+=back
+
+=cut