Diff for /rat/lonpageflip.pm between versions 1.6 and 1.12

version 1.6, 2000/10/11 21:16:29 version 1.12, 2000/11/14 19:14:03
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 131  sub handler { Line 167  sub handler {
               $redirecturl=$hash{'src_'.$next};                $redirecturl=$hash{'src_'.$next};
                       $cachehash{&Apache::lonnet::declutter($redirecturl)}                        $cachehash{&Apache::lonnet::declutter($redirecturl)}
                                  =(split(/\./,$next))[1];                                   =(split(/\./,$next))[1];
         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});
                         }
                   } else {                    } else {
 # ------------------------ There are multiple possibilities for a next resource  # ------------------------ There are multiple possibilities for a next resource
                       $multichoice=1;                        $multichoice=1;
Line 144  sub handler { Line 188  sub handler {
                                                          {'src_'.$_}                                                           {'src_'.$_}
                                                        )}                                                         )}
                                  =(split(/\./,$_))[1];                                   =(split(/\./,$_))[1];
                             if ($hash{'param_'.$_}) {
               my ($mapid,$resid)=split(/\./,$_);
                                &Apache::lonnet::appendparms(
                              &Apache::lonnet::declutter($hash{'map_id_'.$mapid}).
                              '___'.$resid.'___'.
                              &Apache::lonnet::declutter($hash{'src_'.$_}),
                                $hash{'param_'.$_});
     }
                       } @possibilities;                        } @possibilities;
                   }                    }
       } else {        } else {
Line 154  sub handler { Line 206  sub handler {
       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 164  sub handler { Line 217  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";

Removed from v.1.6  
changed lines
  Added in v.1.12


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