Diff for /rat/lonpageflip.pm between versions 1.5 and 1.11

version 1.5, 2000/10/11 18:31:00 version 1.11, 2000/11/14 18:15:01
Line 10 Line 10
 # 08/30,08/31,09/06,09/14,09/15,09/16,09/19,09/20,09/21,09/23,  # 08/30,08/31,09/06,09/14,09/15,09/16,09/19,09/20,09/21,09/23,
 # 10/02 Gerd Kortemeyer)  # 10/02 Gerd Kortemeyer)
 #  #
 # 10/03,10/05,10/06,10/07,10/09,10/10,10/11 Gerd Kortemeyer  # 10/03,10/05,10/06,10/07,10/09,10/10,10/11,10/16,10/17,11/14 Gerd Kortemeyer
   
 package Apache::lonpageflip;  package Apache::lonpageflip;
   
Line 61  sub handler { Line 61  sub handler {
       $ENV{'form.postdata'}=~/(\w+)\:(.*)/;        $ENV{'form.postdata'}=~/(\w+)\:(.*)/;
       my $direction=$1;        my $direction=$1;
       my $currenturl=$2;        my $currenturl=$2;
         if ($direction eq 'return') {
   # -------------------------------------------------------- Return to last known
            my $last;
            if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db',
                       &GDBM_READER,0640)) {
        $last=$hash{'last_known'};
                untie(%hash);
            }
            my $newloc;
            if ($last) {
               $newloc='/res/'.(split(/\_\_\_/,$last))[1];
            } else {
       $newloc='/adm/noidea.html';
            }  
    $r->content_type('text/html');
            $r->header_out(Location => 
    'http://'.$ENV{'HTTP_HOST'}.$newloc);
                                  
            return REDIRECT;
         }
       $currenturl=~s/^http\:\/\///;        $currenturl=~s/^http\:\/\///;
       $currenturl=~s/^[^\/]+//;        $currenturl=~s/^[^\/]+//;
         unless ($currenturl=~/\/res\//) {
    my $last;
            if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db',
                       &GDBM_READER,0640)) {
        $last=$hash{'last_known'};
                untie(%hash);
            }
            if ($last) {
        $currenturl='/res/'.(split(/\_\_\_/,$last))[1];
    } else {
        $r->content_type('text/html');
                $r->header_out(Location => 
                                  'http://'.$ENV{'HTTP_HOST'}.'/adm/noidea.html');
                return REDIRECT;
            }
         }
 # ------------------------------------------- Do we have any idea where we are?  # ------------------------------------------- Do we have any idea where we are?
       my $position;        my $position;
       if ($position=Apache::lonnet::symbread($currenturl)) {        if ($position=Apache::lonnet::symbread($currenturl)) {
Line 122  sub handler { Line 158  sub handler {
 # -------------------------------------------------------------------------- Up  # -------------------------------------------------------------------------- Up
               } elsif ($direction eq 'down') {                } elsif ($direction eq 'down') {
 # ------------------------------------------------------------------------ Down  # ------------------------------------------------------------------------ Down
               }        }
 # ----------------------------------------------------- Check out possibilities  # ----------------------------------------------------- Check out possibilities
               if ($next) {                if ($next) {
                   @possibilities=split(/\,/,$next);                    @possibilities=split(/\,/,$next);
Line 137  sub handler { Line 173  sub handler {
                       map {                        map {
   $multichoicehash{'src_'.$_}=$hash{'src_'.$_};    $multichoicehash{'src_'.$_}=$hash{'src_'.$_};
                           $multichoicehash{'title_'.$_}=$hash{'title_'.$_};                            $multichoicehash{'title_'.$_}=$hash{'title_'.$_};
                             $multichoicehash{'type_'.$_}=$hash{'type_'.$_};
                           $cachehash                            $cachehash
                             {&Apache::lonnet::declutter(                              {&Apache::lonnet::declutter(
       $multichoicehash        $multichoicehash
Line 149  sub handler { Line 186  sub handler {
 # -------------------------------------------------------------- No place to go  # -------------------------------------------------------------- No place to go
                   $multichoice=-1;                    $multichoice=-1;
               }                }
   # ------------------------------------------------------ Set parameters, if any
                 if ($redirecturl) {
     if ($hash{'param_'.$next}) {
        my ($mapid,$resid)=split(/\./,$next);
                        &Apache::lonnet::appendparms(
                        &Apache::lonnet::declutter($hash{'map_id_'.$mapid}).
                         '___'.$resid.'___'.
                        &Apache::lonnet::declutter($redirecturl),
                        $hash{'param_'.$next});
                     }
                 }
 # ----------------- The program must come past this point to untie the big hash  # ----------------- The program must come past this point to untie the big hash
       untie(%hash);        untie(%hash);
 # --------------------------------------------------------- Store position info  # --------------------------------------------------------- Store position info
               $cachehash{'last_direction'}=$direction;                $cachehash{'last_direction'}=$direction;
                 $cachehash{'last_known'}=&Apache::lonnet::declutter($currenturl);
               &Apache::lonnet::symblist($mapurl,%cachehash);                &Apache::lonnet::symblist($mapurl,%cachehash);
 # ============================================== Do not return before this line  # ============================================== Do not return before this line
               if ($redirecturl) {                if ($redirecturl) {
Line 163  sub handler { Line 212  sub handler {
                   return REDIRECT;                    return REDIRECT;
       } else {        } else {
 # --------------------------------------------------------- There was a problem  # --------------------------------------------------------- There was a problem
               }                    $r->content_type('text/html');
                     $r->send_http_header;
                     if ($#possibilities>0) {
                        $r->print(<<ENDSTART);
   <head><title>Choose Next Location</title></head>
   <body bgcolor="#FFFFFF">
   <h1>LON-CAPA</h1>
   There are several possibilities of where to go next.
   <p>
   Please click on the the resource you intend to access:
   <p>
   <table border=2>
   <tr><th>Title</th><th>Type</th></tr>
   ENDSTART
                        map {
                           $r->print(
                                 '<tr><td><a href="'.
                                 $multichoicehash{'src_'.$_}.'">'.
                                 $multichoicehash{'title_'.$_}.
                                 '</a></td><td>'.$multichoicehash{'type_'.$_}.
         '</td></tr>');
                        } @possibilities;
                        $r->print('</table></body></html>');
        return OK;
                     } else {
                        $r->print(<<ENDNONE);
   <head><title>Choose Next Location</title></head>
   <body bgcolor="#FFFFFF">
   <img src="/adm/lonKaputt/lonlogo_broken.gif" align=left>
   <h1>Sorry!</h1>
   <h2>Next resource could not be identified.</h2>
   </body>
   </html>
   ENDNONE
                        return OK;
            }
        }
   } else {    } else {
 # ------------------------------------------------- Problem, could not tie hash  # ------------------------------------------------- Problem, could not tie hash
               $ENV{'user.error.msg'}="/adm/flip:bre:0:1:Course Data Missing";                $ENV{'user.error.msg'}="/adm/flip:bre:0:1:Course Data Missing";
Line 171  sub handler { Line 256  sub handler {
           }            }
       } else {        } else {
 # ---------------------------------------- No, could not determine where we are  # ---------------------------------------- No, could not determine where we are
            $r->internal_redirect('/adm/ambiguous');
       }        }
   } else {    } else {
 # -------------------------- Class was not initialized or page fliped strangely  # -------------------------- Class was not initialized or page fliped strangely

Removed from v.1.5  
changed lines
  Added in v.1.11


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