Diff for /rat/lonpage.pm between versions 1.11 and 1.12

version 1.11, 2000/10/10 20:34:09 version 1.12, 2000/10/16 09:46:23
Line 5 Line 5
 #  #
 # 05/29/00,05/30 Gerd Kortemeyer)  # 05/29/00,05/30 Gerd Kortemeyer)
 # 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,10/10 Gerd Kortemeyer  # 10/02,10/10,10/14,10/16 Gerd Kortemeyer
   
 package Apache::lonpage;  package Apache::lonpage;
   
Line 205  sub handler { Line 205  sub handler {
                               my $output=Apache::lonnet::ssi($src,%posthash);                                my $output=Apache::lonnet::ssi($src,%posthash);
                               my $parser=HTML::TokeParser->new(\$output);                                my $parser=HTML::TokeParser->new(\$output);
                               my $token;                                my $token;
                                 my $thisdir=$src;
                               my $bodydef=0;                                my $bodydef=0;
                               my $thisxml=0;                                my $thisxml=0;
                                 my @rlinks=();
                               if ($output=~/\?xml/) {                                if ($output=~/\?xml/) {
                                  $isxml=1;                                   $isxml=1;
                                  $thisxml=1;                                   $thisxml=1;
Line 214  sub handler { Line 216  sub handler {
          /((?:\<(?:\?xml|\!DOC|html)[^\>]*(?:\>|\>\]\>)\s*)+)\<body[^\>]*\>/si;           /((?:\<(?:\?xml|\!DOC|html)[^\>]*(?:\>|\>\]\>)\s*)+)\<body[^\>]*\>/si;
                                  $xmlheader=$1;                                   $xmlheader=$1;
       }        }
                               while (($bodydef==0) &&                                while ($token=$parser->get_token) {
                                      ($token=$parser->get_token)) {   if ($token->[0] eq 'S') {
   if ($token->[1] eq 'body') {                                    if ($token->[1] eq 'a') {
         if ($token->[2]->{'href'}) {
                                            $rlinks[$#rlinks+1]=
        $token->[2]->{'href'};
         }
     } elsif ($token->[1] eq 'img') {
                                            $rlinks[$#rlinks+1]=
        $token->[2]->{'src'};
     } elsif ($token->[1] eq 'embed') {
                                            $rlinks[$#rlinks+1]=
        $token->[2]->{'src'};
     } elsif ($token->[1] eq 'base') {
         $thisdir=$token->[2]->{'href'};
     } elsif ($token->[1] eq 'body') {
       $bodydef=1;        $bodydef=1;
                                       $ssibgcolor{$_}=$token->[2]->{'bgcolor'};                                        $ssibgcolor{$_}=$token->[2]->{'bgcolor'};
                                       $ssitext{$_}=$token->[2]->{'text'};                                        $ssitext{$_}=$token->[2]->{'text'};
Line 226  sub handler { Line 241  sub handler {
                                       if ($thisxml) {                                        if ($thisxml) {
   $xmlbody=$token->[4];    $xmlbody=$token->[4];
                                       }                                        }
                                   }                                    } elsif ($token->[1] eq 'meta') {
                                   if ($token->[1] eq 'meta') {  
       $allmeta.="\n".$token->[4].'</meta>';        $allmeta.="\n".$token->[4].'</meta>';
                                   }                                    } elsif (($token->[1] eq 'script') &&
                                   if ($token->[1] eq 'script') {                                             ($bodydef==0)) {
       $allscript.="\n\n"        $allscript.="\n\n"
                                                 .$parser->get_text('/script');                                                  .$parser->get_text('/script');
                                   }                                    }
                               }          }
         }
                               if ($output=~/\<body[^\>]*\>(.*)/si) {                                if ($output=~/\<body[^\>]*\>(.*)/si) {
                                  $output=$1;                                    $output=$1; 
                               }                                }
Line 244  sub handler { Line 259  sub handler {
                                   $output=~s/\<form[^\>]*\>//gsi;                                    $output=~s/\<form[^\>]*\>//gsi;
                                   $output=~s/\<\/form[^\>]*\>//gsi;                                    $output=~s/\<\/form[^\>]*\>//gsi;
                               }                                }
                                 $thisdir=~s/\/[^\/]*$//;
         map {
     unless (($_=~/^http:\/\//i) ||
                                             ($_=~/^\//)) {
         my $newlocation=
       &Apache::lonnet::hreflocation($thisdir,$_);
                        $output=~s/(\"|\'|\=\s*)$_(\"|\'|\s|\>)/$1$newlocation$2/;
     }
         } @rlinks;
                        $output=~s/\<\s*applet/\<applet codebase=\"$thisdir\" /gi;
       $ssibody{$_}=$output;        $ssibody{$_}=$output;
   
 # ---------------------------------------------------------------- End SSI cell  # ---------------------------------------------------------------- End SSI cell

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


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