--- rat/lonambiguous.pm 2006/02/07 19:46:08 1.17 +++ rat/lonambiguous.pm 2014/12/11 01:13:24 1.26 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to resolve ambiguous file locations # -# $Id: lonambiguous.pm,v 1.17 2006/02/07 19:46:08 albertel Exp $ +# $Id: lonambiguous.pm,v 1.26 2014/12/11 01:13:24 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -26,6 +26,8 @@ # http://www.lon-capa.org/ # + + package Apache::lonambiguous; use strict; @@ -54,11 +56,9 @@ sub getlost { $errmsg=&mt($errmsg); &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; - $r->print( - 'Unknown Error'. - &Apache::loncommon::bodytag('Could not handle ambiguous resource reference'). - $errmsg. - ''); + $r->print(&Apache::loncommon::start_page('Could not handle ambiguous resource reference'). + '
'.$errmsg.'
'. + &Apache::loncommon::end_page()); } # ================================================================ Main Handler @@ -87,7 +87,7 @@ sub handler { my $envkey; if (tie(%bighash,'GDBM_File',$env{'request.course.fn'}.'.db', &GDBM_READER(),0640)) { - foreach $envkey (keys %env) { + foreach $envkey (keys(%env)) { if ($envkey=~/^form\.(\d+)\.(\d+)$/) { # ---------------------------------------------------- Update symb and redirect my $mapid=$1; @@ -97,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; } } @@ -136,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 { @@ -148,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 @@ -180,41 +181,56 @@ 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) { # ----------------------------------------------- Okay, really multiple choices &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; - my $bodytag= - &Apache::loncommon::bodytag('Pick Instance of Resource'); - $r->print(<Choose Location -$bodytag -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. -

-Please click on the instance of the resource you intended to access: -

- - -ENDSTART + my $start_page= + &Apache::loncommon::start_page('Pick Instance of Resource'); + $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() + .'' + .'' + .&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(''); + my $symb=&make_symb($_); + $r->print( + &Apache::loncommon::start_data_table_row() + .'' + .'' + .&Apache::loncommon::end_data_table_row() + ); } @possibilities; - $r->print('
TitlePart of ...
'.&mt('Title').''.&mt('Part of ...').'
'. - &Apache::lonnet::gettitle($symb). - ''. - &Apache::lonnet::gettitle($mapurl).' '. - '
' + .&Apache::lonnet::gettitle($symb) + .''.&Apache::lonnet::gettitle($mapurl).' 
'); - untie(%bighash); + $r->print( + &Apache::loncommon::end_data_table() + .&Apache::loncommon::end_page() + ); + untie(%bighash); return OK; } } @@ -232,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