Diff for /rat/lonpage.pm between versions 1.1 and 1.2

version 1.1, 2000/08/30 11:10:23 version 1.2, 2000/08/31 10:14:08
Line 4 Line 4
 # (TeX Content Handler  # (TeX Content Handler
 #  #
 # 05/29/00,05/30 Gerd Kortemeyer)  # 05/29/00,05/30 Gerd Kortemeyer)
 # 08/30 Gerd Kortemeyer  # 08/30,08/31 Gerd Kortemeyer
   
 package Apache::lonpage;  package Apache::lonpage;
   
Line 13  use Apache::Constants qw(:common :http); Line 13  use Apache::Constants qw(:common :http);
 use Apache::lonnet();  use Apache::lonnet();
 use GDBM_File;  use GDBM_File;
   
   # -------------------------------------------------------------- Module Globals
   my %hash;
   my @rows;
   
   # ------------------------------------------------------------ Build page table
   
   sub tracetable {
       my ($sofar,$rid,$beenhere)=@_;
       my $further=$sofar;
       unless ($beenhere=~/\&$rid\&/) {
          $beenhere.=$rid.'&';  
   
          if (defined($hash{'is_map_'.$rid})) {
              if ((defined($hash{'map_start_'.$hash{'src_'.$rid}})) &&
                  (defined($hash{'map_finish_'.$hash{'src_'.$rid}}))) {
          $sofar=
                   &tracetable($sofar,$hash{'map_start_'.$hash{'src_'.$rid}},
                   '&'.$hash{'map_finish_'.$hash{'src_'.$rid}}.'&');
                  $sofar++;
                  if (defined($rows[$sofar])) {
                      $rows[$sofar].='&'.$hash{'map_finish_'.$hash{'src_'.$rid}};
                  } else {
                      $rows[$sofar]=$hash{'map_finish_'.$hash{'src_'.$rid}};
                  }
      }
          } else {
              $sofar++;
              if (defined($rows[$sofar])) {
                  $rows[$sofar].='&'.$rid;
              } else {
                  $rows[$sofar]=$rid;
              }
          }
   
          if (defined($hash{'to_'.$rid})) {
             map {
                 my $now=&tracetable($sofar,$hash{'goesto_'.$_},$beenhere);
                 if ($now>$further) { $further=$now; }
             } split(/\,/,$hash{'to_'.$rid});
          }
       }
       return $further;
   }
   
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
   
 sub handler {  sub handler {
Line 34  sub handler { Line 79  sub handler {
   if ($ENV{'request.course.fn'}) {    if ($ENV{'request.course.fn'}) {
       my $fn=$ENV{'request.course.fn'};        my $fn=$ENV{'request.course.fn'};
       if (-e "$fn.db") {        if (-e "$fn.db") {
           my %hash;  
           if (tie(%hash,'GDBM_File',"$fn.db",&GDBM_WRCREAT,0640)) {            if (tie(%hash,'GDBM_File',"$fn.db",&GDBM_WRCREAT,0640)) {
 # ------------------------------------------------------------------- Hash tied  # ------------------------------------------------------------------- Hash tied
               my $firstres=$hash{'map_start_'.$requrl};                my $firstres=$hash{'map_start_'.$requrl};
Line 44  sub handler { Line 88  sub handler {
   
   $r->print("<h2>All is cool.</h2>");    $r->print("<h2>All is cool.</h2>");
   
                     @rows=();
                     &tracetable(0,$firstres,'&'.$lastres.'&');
                     $rows[$#rows+1]=''.$lastres;
   
                     my $i;
                     for ($i=0;$i<=$#rows;$i++) {
                         $r->print($i.' - '.$rows[$i].'<br>');
                     }
   
 # ------------------------------------------------------------- End render page  # ------------------------------------------------------------- End render page
               } else {                } else {
   $r->print("<h2>Page undefined.</h2>");    $r->print("<h2>Page undefined.</h2>");

Removed from v.1.1  
changed lines
  Added in v.1.2


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