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

version 1.2, 2000/08/31 10:14:08 version 1.3, 2000/09/14 09:26:37
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,08/31 Gerd Kortemeyer  # 08/30,08/31,09/06,09/14 Gerd Kortemeyer
   
 package Apache::lonpage;  package Apache::lonpage;
   
Line 28  sub tracetable { Line 28  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}};
        $sofar=         $sofar=
                 &tracetable($sofar,$hash{'map_start_'.$hash{'src_'.$rid}},                  &tracetable($sofar,$hash{'map_start_'.$hash{'src_'.$rid}},
                 '&'.$hash{'map_finish_'.$hash{'src_'.$rid}}.'&');                  '&'.$frid.'&');
                $sofar++;                 $sofar++;
                if (defined($rows[$sofar])) {                 my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$frid});
                    $rows[$sofar].='&'.$hash{'map_finish_'.$hash{'src_'.$rid}};                 if (($brepriv eq '2') || ($brepriv eq 'F')) {
                } else {                   if (defined($rows[$sofar])) {
                    $rows[$sofar]=$hash{'map_finish_'.$hash{'src_'.$rid}};                     $rows[$sofar].='&'.$frid;
                }                   } else {
                      $rows[$sofar]=$frid;
                    }
          }
    }     }
        } else {         } else {
            $sofar++;             $sofar++;
            if (defined($rows[$sofar])) {             my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$rid});
              if (($brepriv eq '2') || ($brepriv eq 'F')) {
                if (defined($rows[$sofar])) {
                $rows[$sofar].='&'.$rid;                 $rows[$sofar].='&'.$rid;
            } else {               } else {
                $rows[$sofar]=$rid;                 $rows[$sofar]=$rid;
            }               }
      }
        }         }
   
        if (defined($hash{'to_'.$rid})) {         if (defined($hash{'to_'.$rid})) {
Line 63  sub tracetable { Line 70  sub tracetable {
 sub handler {  sub handler {
   my $r=shift;    my $r=shift;
   
 # ----------------------------------------------------------- Set document type  # ------------------------------------------- Set document type for header only
   
   if ($ENV{'browser.mathml'}) {  
     $r->content_type('text/xml');  
   } else {  
     $r->content_type('text/html');  
   }  
   $r->send_http_header;  
   
   return OK if $r->header_only;    if ($r->header_only) {
          if ($ENV{'browser.mathml'}) {
              $r->content_type('text/xml');
          } else {
              $r->content_type('text/html');
          }
          $r->send_http_header;
          return OK;
      }
   
   my $requrl=$r->uri;    my $requrl=$r->uri;
 # ----------------------------------------------------------------- Tie db file  # ----------------------------------------------------------------- Tie db file
Line 86  sub handler { Line 94  sub handler {
               if (($firstres) && ($lastres)) {                if (($firstres) && ($lastres)) {
 # ----------------------------------------------------------------- Render page  # ----------------------------------------------------------------- Render page
   
   $r->print("<h2>All is cool.</h2>");  
   
                   @rows=();                    @rows=();
   
                   &tracetable(0,$firstres,'&'.$lastres.'&');                    &tracetable(0,$firstres,'&'.$lastres.'&');
                   $rows[$#rows+1]=''.$lastres;                    $rows[$#rows+1]=''.$lastres;
   
                   my $i;                    my $i;
                     my $maxcols=-1;
                     my %ssibody=();
                     my %ssibgcolor=();
                     my %ssitext=();
                     my %ssilink=();
                     my %ssivlink=();
                     my %ssialink=();
                     my %cellemb=();
   
   # --------------------------------------------- Get SSI output, post parameters
   
                   for ($i=0;$i<=$#rows;$i++) {                    for ($i=0;$i<=$#rows;$i++) {
                       $r->print($i.' - '.$rows[$i].'<br>');                        my @colcont=split(/\&/,$rows[$i]);
                         $maxcols=$#colcont>$maxcols?$#colcont:$maxcols;
                         map {
                             my $src=$hash{'src_'.$_};
                             $src=~/\.\w+$/;
                             $cellemb{$_}=Apache::lonnet::fileembstyle($1);
                             if ($cellemb{$_} eq 'ssi') {
   # --------------------------------------------------------- This is an SSI cell
   
   # ---------------------------------------------------------------- End SSI cell
                             }
                         } @colcont;
                         
                   }                    }
                     if ($maxcols<0) {
                         $r->content_type('text/html');
                         $r->send_http_header;
                         $r->print('<html><body>Empty page.</body></html>');
                     } else {
   # ------------------------------------------------------------------ Build page
   
   # -------------------------------------------------------------------- End page
                     }                  
 # ------------------------------------------------------------- End render page  # ------------------------------------------------------------- End render page
               } else {                } else {
   $r->print("<h2>Page undefined.</h2>");                    $r->content_type('text/html');
                     $r->send_http_header;
     $r->print('<html><body>Page undefined.</body></html>');
               }                }
 # ------------------------------------------------------------------ Untie hash  # ------------------------------------------------------------------ Untie hash
               unless (untie(%hash)) {                unless (untie(%hash)) {

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


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