Diff for /rat/lonpage.pm between versions 1.3 and 1.4

version 1.3, 2000/09/14 09:26:37 version 1.4, 2000/09/14 20:10:39
Line 16  use GDBM_File; Line 16  use GDBM_File;
 # -------------------------------------------------------------- Module Globals  # -------------------------------------------------------------- Module Globals
 my %hash;  my %hash;
 my @rows;  my @rows;
                     
   my %ssibody=();
   my %ssibgcolor=();
   my %ssitext=();
   my %ssilink=();
   my %ssivlink=();
   my %ssialink=();
   my %cellemb=();
   
 # ------------------------------------------------------------ Build page table  # ------------------------------------------------------------ Build page table
   
Line 28  sub tracetable { Line 36  sub tracetable {
        if (defined($hash{'is_map_'.$rid})) {         if (defined($hash{'is_map_'.$rid})) {
            if ((defined($hash{'map_start_'.$hash{'src_'.$rid}})) &&             if ((defined($hash{'map_start_'.$hash{'src_'.$rid}})) &&
                (defined($hash{'map_finish_'.$hash{'src_'.$rid}}))) {                 (defined($hash{'map_finish_'.$hash{'src_'.$rid}}))) {
                my $frid=$hash{'map_finish_'.$hash{'src_'.$rid}};                my $frid=$hash{'map_finish_'.$hash{'src_'.$rid}};
        $sofar=        $sofar=
                 &tracetable($sofar,$hash{'map_start_'.$hash{'src_'.$rid}},                  &tracetable($sofar,$hash{'map_start_'.$hash{'src_'.$rid}},
                 '&'.$frid.'&');                  '&'.$frid.'&');
                $sofar++;                $sofar++;
                 if ($hash{'src_'.$frid}) {
                my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$frid});                 my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$frid});
                if (($brepriv eq '2') || ($brepriv eq 'F')) {                 if (($brepriv eq '2') || ($brepriv eq 'F')) {
                  if (defined($rows[$sofar])) {                   if (defined($rows[$sofar])) {
Line 41  sub tracetable { Line 50  sub tracetable {
                    $rows[$sofar]=$frid;                     $rows[$sofar]=$frid;
                  }                   }
        }         }
         }
    }     }
        } else {         } else {
            $sofar++;            $sofar++;
             if ($hash{'src_'.$rid}) {
            my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$rid});             my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$rid});
            if (($brepriv eq '2') || ($brepriv eq 'F')) {             if (($brepriv eq '2') || ($brepriv eq 'F')) {
              if (defined($rows[$sofar])) {               if (defined($rows[$sofar])) {
Line 52  sub tracetable { Line 63  sub tracetable {
                $rows[$sofar]=$rid;                 $rows[$sofar]=$rid;
              }               }
    }     }
             }
        }         }
   
        if (defined($hash{'to_'.$rid})) {         if (defined($hash{'to_'.$rid})) {
Line 64  sub tracetable { Line 76  sub tracetable {
     return $further;      return $further;
 }  }
   
   sub cell {
       my ($r,$colspan,$rid)=@_;
       $r->print('<td colspan="'.$colspan.'">');
       $r->print($hash{'src_'.$rid});
       $r->print('</td>');
   }
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
   
Line 97  sub handler { Line 115  sub handler {
                   @rows=();                    @rows=();
   
                   &tracetable(0,$firstres,'&'.$lastres.'&');                    &tracetable(0,$firstres,'&'.$lastres.'&');
                   $rows[$#rows+1]=''.$lastres;                    if ($hash{'src_'.$lastres}) {
                        my $brepriv=
                           &Apache::lonnet::allowed('bre',$hash{'src_'.$lastres});
                        if (($brepriv eq '2') || ($brepriv eq 'F')) {
                           $rows[$#rows+1]=''.$lastres;
        }
     }
   
                   my $i;                    my $i;
                     my $j;
                   my $maxcols=-1;                    my $maxcols=-1;
                   my %ssibody=();  
                   my %ssibgcolor=();  
                   my %ssitext=();  
                   my %ssilink=();  
                   my %ssivlink=();  
                   my %ssialink=();  
                   my %cellemb=();  
   
 # --------------------------------------------- Get SSI output, post parameters  # --------------------------------------------- Get SSI output, post parameters
   
                   for ($i=0;$i<=$#rows;$i++) {                    for ($i=0;$i<=$#rows;$i++) {
        if ($rows[$i]) {
                       my @colcont=split(/\&/,$rows[$i]);                        my @colcont=split(/\&/,$rows[$i]);
                       $maxcols=$#colcont>$maxcols?$#colcont:$maxcols;                        $maxcols=$#colcont>$maxcols?$#colcont:$maxcols;
                       map {                        map {
Line 124  sub handler { Line 143  sub handler {
 # ---------------------------------------------------------------- End SSI cell  # ---------------------------------------------------------------- End SSI cell
                           }                            }
                       } @colcont;                        } @colcont;
                                              } 
                   }                    }
                   if ($maxcols<0) {                    if ($maxcols<0) {
                       $r->content_type('text/html');                        $r->content_type('text/html');
Line 132  sub handler { Line 151  sub handler {
                       $r->print('<html><body>Empty page.</body></html>');                        $r->print('<html><body>Empty page.</body></html>');
                   } else {                    } else {
 # ------------------------------------------------------------------ Build page  # ------------------------------------------------------------------ Build page
                         $maxcols++;
                         $r->content_type('text/html');
                         $r->send_http_header;
                         $r->print('<html><body>');
    
                         $r->print('<table cols="'.$maxcols.'" rows="'.
                                    $#rows.'" border=1>');
                         for ($i=2;$i<=$#rows;$i++) {
                             $r->print("\n<tr>");
                             my @colcont=split(/\&/,$rows[$i]);
                             my $avespan=int($maxcols/($#colcont+1));
                             my $lastspan=$maxcols-$avespan*$#colcont;
                             for ($j=0;$j<$#colcont;$j++) {
                                 &cell($r,$avespan,$colcont[$j]);
                             }
                             &cell($r,$lastspan,$colcont[$#colcont]);
                             $r->print('</tr>');
                         }
                         $r->print("\n</table>");
                         $r->print('</body></html>');
 # -------------------------------------------------------------------- End page  # -------------------------------------------------------------------- End page
                   }                                      }                  
 # ------------------------------------------------------------- End render page  # ------------------------------------------------------------- End render page

Removed from v.1.3  
changed lines
  Added in v.1.4


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