Diff for /rat/lonpageflip.pm between versions 1.23 and 1.30

version 1.23, 2002/04/12 13:47:21 version 1.30, 2002/09/07 02:55:38
Line 53  my %hash; Line 53  my %hash;
 sub addrid {  sub addrid {
     my ($current,$new,$condid)=@_;      my ($current,$new,$condid)=@_;
     unless ($condid) { $condid=0; }      unless ($condid) { $condid=0; }
     if (&Apache::lonnet::allowed('bre',$hash{'src_'.$new})) {  
  if ($current) {   if ($current) {
     $current.=','.$new;      $current.=','.$new;
         } else {          } else {
             $current=''.$new;              $current=''.$new;
         }          }
     }  
     return $current;      return $current;
 }  }
   
   sub fullmove {
       my ($rid,$mapurl,$direction)=@_;
       if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'.db',
                           &GDBM_READER(),0640)) {
    ($rid,$mapurl)=&move($rid,$mapurl,$direction);
           untie(%hash);
       }
       return($rid,$mapurl);
   }
   
 sub move {  sub move {
     my ($rid,$mapurl,$direction)=@_;      my ($rid,$mapurl,$direction)=@_;
     my $startoutrid=$rid;      my $startoutrid=$rid;
Line 74  sub move { Line 84  sub move {
               if ($direction eq 'forward') {                if ($direction eq 'forward') {
 # --------------------------------------------------------------------- Forward  # --------------------------------------------------------------------- Forward
                   if ($hash{'type_'.$rid} eq 'finish') {                    if ($hash{'type_'.$rid} eq 'finish') {
              $rid=$hash{'ids_/res/'.$mapurl};                $rid=$hash{'ids_'.&Apache::lonnet::clutter($mapurl)}; 
                   }                    }
                   map {                    map {
                       my $thiscond=                        my $thiscond=
Line 110  sub move { Line 120  sub move {
               } elsif ($direction eq 'back') {                } elsif ($direction eq 'back') {
 # ------------------------------------------------------------------- Backwards  # ------------------------------------------------------------------- Backwards
                   if ($hash{'type_'.$rid} eq 'start') {                    if ($hash{'type_'.$rid} eq 'start') {
              $rid=$hash{'ids_/res/'.$mapurl};               $rid=$hash{'ids_'.&Apache::lonnet::clutter($mapurl)};
                   }                    }
                   map {                    map {
                       my $thiscond=                        my $thiscond=
Line 132  sub move { Line 142  sub move {
                       }                        }
                   } split(/\,/,$posnext);                    } split(/\,/,$posnext);
                   if ($hash{'is_map_'.$next}) {                    if ($hash{'is_map_'.$next}) {
   # This jumps to the end of a new map (going down one level)
                       if (                        if (
       $hash{'map_type_'.$hash{'map_pc_'.$hash{'src_'.$next}}} eq 'sequence') {        $hash{'map_type_'.$hash{'map_pc_'.$hash{'src_'.$next}}} eq 'sequence') {
   $mapurl=$hash{'src_'.$next};    $mapurl=$hash{'src_'.$next};
   $next=$hash{'map_finish_'.$hash{'src_'.$next}};    $next=$hash{'map_finish_'.$hash{'src_'.$next}};
                      }                       }
                     } elsif 
                       ((split(/\./,$startoutrid))[0]!=(split(/\./,$next))[0]) {
   # This comes back up from a map (going up one level);
         $mapurl=$hash{'map_id_'.(split(/\./,$next))[0]};
                   }                    }
       }        }
               return ($next,$mapurl);                return ($next,$mapurl);
Line 169  sub handler { Line 184  sub handler {
 # -------------------------------------------------------- Return to last known  # -------------------------------------------------------- Return to last known
          my $last;           my $last;
          if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db',           if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db',
                     &GDBM_READER,0640)) {                      &GDBM_READER(),0640)) {
      $last=$hash{'last_known'};       $last=$hash{'last_known'};
              untie(%hash);               untie(%hash);
          }           }
          my $newloc;           my $newloc;
          if ($last) {           if ($last) {
             $newloc='/res/'.(split(/\_\_\_/,$last))[1];              $newloc=&Apache::lonnet::clutter((split(/\_\_\_/,$last))[1]);
          } else {           } else {
     $newloc='/adm/noidea.html';      $newloc='/adm/noidea.html';
          }             }  
Line 187  sub handler { Line 202  sub handler {
       }        }
       $currenturl=~s/^http\:\/\///;        $currenturl=~s/^http\:\/\///;
       $currenturl=~s/^[^\/]+//;        $currenturl=~s/^[^\/]+//;
       unless (($currenturl=~/^\/res\//) ||         unless ($currenturl=~/^\/(res|adm\/wrapper|public|adm\/coursedocs)\//) {
               ($currenturl=~/^\/adm\/wrapper\//))  {  
  my $last;   my $last;
          if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db',           if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db',
                     &GDBM_READER,0640)) {                      &GDBM_READER(),0640)) {
      $last=$hash{'last_known'};       $last=$hash{'last_known'};
              untie(%hash);               untie(%hash);
          }           }
          if ($last) {           if ($last) {
      $currenturl='/res/'.(split(/\_\_\_/,$last))[1];       $currenturl=&Apache::lonnet::clutter((split(/\_\_\_/,$last))[1]);
  } else {   } else {
      $r->content_type('text/html');       $r->content_type('text/html');
              $r->header_out(Location =>                $r->header_out(Location => 
Line 215  sub handler { Line 229  sub handler {
   
 # ============================================================ Tie the big hash  # ============================================================ Tie the big hash
           if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'.db',            if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'.db',
                         &GDBM_READER,0640)) {                          &GDBM_READER(),0640)) {
               my $rid=$hash{'map_pc_/res/'.$startoutmap}.'.'.$mapnum;                my $rid=$hash{'map_pc_'.&Apache::lonnet::clutter($startoutmap)}.
                         '.'.$mapnum;
   
 # ------------------------------------------------- Move forward, backward, etc  # ------------------------------------------------- Move forward, backward, etc
               my $endupmap;                my $endupmap;
               ($next,$endupmap)=&move($rid,$startoutmap,$direction);                ($next,$endupmap)=&move($rid,$startoutmap,$direction);
 # -------------------------------------- Do we have one and only one empty URL?  # -------------------------------------- Do we have one and only one empty URL?
               my $safecount=0;                my $safecount=0;
               while (($next) && ($next!~/\,/) && (!$hash{'src_'.$next})                while (($next) && ($next!~/\,/) && 
                      && ($safecount<25)) {                       ((!$hash{'src_'.$next}) || ($hash{'randomout_'.$next}))
                        && ($safecount<10000)) {
                   ($next,$endupmap)=&move($next,$endupmap,$direction);                    ($next,$endupmap)=&move($next,$endupmap,$direction);
                   $safecount++;                    $safecount++;
               }                }
Line 289  Please click on the the resource you int Line 305  Please click on the the resource you int
 <table border=2>  <table border=2>
 <tr><th>Title</th><th>Type</th></tr>  <tr><th>Title</th><th>Type</th></tr>
 ENDSTART  ENDSTART
                      map {                       foreach (@possibilities) {
                         $r->print(                          $r->print(
                               '<tr><td><a href="'.                                '<tr><td><a href="'.
                               $multichoicehash{'src_'.$_}.'">'.                                $multichoicehash{'src_'.$_}.'">'.
                               $multichoicehash{'title_'.$_}.                                $multichoicehash{'title_'.$_}.
                               '</a></td><td>'.$multichoicehash{'type_'.$_}.                                '</a></td><td>'.$multichoicehash{'type_'.$_}.
       '</td></tr>');        '</td></tr>');
                      } @possibilities;                       }
                      $r->print('</table></body></html>');                       $r->print('</table></body></html>');
      return OK;       return OK;
                   } else {                    } else {

Removed from v.1.23  
changed lines
  Added in v.1.30


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.