Diff for /rat/lonambiguous.pm between versions 1.17 and 1.26

version 1.17, 2006/02/07 19:46:08 version 1.26, 2014/12/11 01:13:24
Line 26 Line 26
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
   
   
   
 package Apache::lonambiguous;  package Apache::lonambiguous;
   
 use strict;  use strict;
Line 54  sub getlost { Line 56  sub getlost {
     $errmsg=&mt($errmsg);      $errmsg=&mt($errmsg);
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
     $r->print(      $r->print(&Apache::loncommon::start_page('Could not handle ambiguous resource reference').
  '<head><title>Unknown Error</title></head>'.        '<div class="LC_warning">'.$errmsg.'</div>'.
   &Apache::loncommon::bodytag('Could not handle ambiguous resource reference').        &Apache::loncommon::end_page());
   $errmsg.  
  '</body></html>');  
 }  }
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
Line 87  sub handler { Line 87  sub handler {
        my $envkey;         my $envkey;
        if (tie(%bighash,'GDBM_File',$env{'request.course.fn'}.'.db',         if (tie(%bighash,'GDBM_File',$env{'request.course.fn'}.'.db',
                     &GDBM_READER(),0640)) {                      &GDBM_READER(),0640)) {
           foreach $envkey (keys %env) {            foreach $envkey (keys(%env)) {
              if ($envkey=~/^form\.(\d+)\.(\d+)$/) {               if ($envkey=~/^form\.(\d+)\.(\d+)$/) {
 # ---------------------------------------------------- Update symb and redirect  # ---------------------------------------------------- Update symb and redirect
          my $mapid=$1;           my $mapid=$1;
Line 97  sub handler { Line 97  sub handler {
            $resurl => [$resurl,$resid]);             $resurl => [$resurl,$resid]);
                  untie(%bighash);                   untie(%bighash);
                  $r->header_out(Location =>                    $r->header_out(Location => 
                                 'http://'.$ENV{'HTTP_HOST'}.$resurl);   &Apache::lonnet::absolute_url().$resurl);
                  return REDIRECT;                   return REDIRECT;
              }               }
   }    }
Line 136  sub handler { Line 136  sub handler {
 # ----------------------------------- Okay, this should have appeared on a page  # ----------------------------------- Okay, this should have appeared on a page
    &Apache::loncommon::content_type($r,'text/html');     &Apache::loncommon::content_type($r,'text/html');
            $r->header_out(Location =>              $r->header_out(Location => 
   'http://'.$ENV{'HTTP_HOST'}.    &Apache::lonnet::absolute_url().
   &Apache::lonnet::clutter($page));    &Apache::lonnet::clutter($page));
            return REDIRECT;             return REDIRECT;
        } else {         } else {
Line 148  sub handler { Line 148  sub handler {
 # ------------------------------------Encrypted requests go straight to navmaps  # ------------------------------------Encrypted requests go straight to navmaps
    if ($env{'request.enc'}) {     if ($env{'request.enc'}) {
        &Apache::loncommon::content_type($r,'text/html');         &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;         return REDIRECT;
    }     }
 # ------------------------------------------------ Would be standalone resource  # ------------------------------------------------ Would be standalone resource
Line 180  sub handler { Line 181  sub handler {
  my $mapurl=$bighash{'map_id_'.(split(/\./,$id))[0]};   my $mapurl=$bighash{'map_id_'.(split(/\./,$id))[0]};
  my $symb=&make_symb($id);   my $symb=&make_symb($id);
  &Apache::loncommon::content_type($r,'text/html');   &Apache::loncommon::content_type($r,'text/html');
  &Apache::lonnet::logthis('http://'.$ENV{'HTTP_HOST'}.$resurl.'?symb='.$symb);  
  $r->header_out(Location =>    $r->header_out(Location => 
    'http://'.$ENV{'HTTP_HOST'}.$resurl.'?symb='.$symb);         &Apache::lonnet::absolute_url().
          $resurl.'?symb='.$symb);
  return REDIRECT;   return REDIRECT;
     }      }
             if ($#possibilities>0) {              if ($#possibilities>0) {
 # ----------------------------------------------- Okay, really multiple choices  # ----------------------------------------------- Okay, really multiple choices
        &Apache::loncommon::content_type($r,'text/html');         &Apache::loncommon::content_type($r,'text/html');
                $r->send_http_header;                 $r->send_http_header;
                my $bodytag=                 my $start_page=
                       &Apache::loncommon::bodytag('Pick Instance of Resource');     &Apache::loncommon::start_page('Pick Instance of Resource');
                $r->print(<<ENDSTART);                 $r->print(
 <head><title>Choose Location</title></head>                     $start_page
 $bodytag                    .'<p class="LC_warning">'
 The resource you had been accessing appears more than once in this course,                    .&mt('The resource you had been accessing appears more than'
 and LON-CAPA has insufficient session information to determine which instance                        .' once in this course, and LON-CAPA has insufficient'
 of the resource you meant.                        .' session information to determine which instance'
 <p>                        .' of the resource you meant.')
 Please click on the instance of the resource you intended to access:                    .'</p>'
 </p>                    .'<p>'
 <table border="2">                    .&mt('Please click on the instance of the resource you'
 <tr><th>Title</th><th>Part of ...</th></tr>                        .' intended to access:')
 ENDSTART                    .'</p>'
                  );
                  $r->print(
                      &Apache::loncommon::start_data_table()
                     .&Apache::loncommon::start_data_table_header_row()
                     .'<th>'.&mt('Title').'</th>'
                     .'<th>'.&mt('Part of ...').'</th>'
                     .&Apache::loncommon::end_data_table_header_row()
                     .&Apache::loncommon::start_data_table_row()
                  );
                map {                 map {
    my $resurl=$bighash{'src_'.$_};                     my $resurl=$bighash{'src_'.$_};
                    my $mapurl=$bighash{'map_id_'.(split(/\./,$_))[0]};                     my $mapurl=$bighash{'map_id_'.(split(/\./,$_))[0]};
    my $symb=&make_symb($_);                     my $symb=&make_symb($_);
    $r->print('<tr><td><a href="'.$resurl.'?symb='.$symb.'">'.                     $r->print(
      &Apache::lonnet::gettitle($symb).                         &Apache::loncommon::start_data_table_row()
      '</a></td><td>'.                        .'<td><a href="'.$resurl.'?symb='.$symb.'">'
      &Apache::lonnet::gettitle($mapurl).'&nbsp;'.                        .&Apache::lonnet::gettitle($symb)
      '</td></tr>');                        .'</a></td>'
                         .'<td>'.&Apache::lonnet::gettitle($mapurl).'&nbsp;</td>'
                         .&Apache::loncommon::end_data_table_row()
                      );
                } @possibilities;                 } @possibilities;
                $r->print('</table></body></html>');                 $r->print(
        untie(%bighash);                     &Apache::loncommon::end_data_table()
                     .&Apache::loncommon::end_page()
                  );
                  untie(%bighash);
                return OK;                 return OK;
             }              }
          }           }
Line 232  __END__ Line 248  __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
   
   
   

Removed from v.1.17  
changed lines
  Added in v.1.26


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>