[LON-CAPA-cvs] cvs: loncom /xml londefdef.pm

www lon-capa-cvs@mail.lon-capa.org
Thu, 20 Feb 2003 17:07:15 -0000


www		Thu Feb 20 12:07:15 2003 EDT

  Modified files:              
    /loncom/xml	londefdef.pm 
  Log:
  Attempts to address the following earlier changes:
  
  * switching the parser from HTML to XML mode. Parameters can now be lower-
  and uppercase. Switching over to calling lonxml-routine rather than
  $token->[2]->{'something'}
  
  * switching of file references from always forcing absolute references 
  ('/res/...') to allow relative URLs ('../stuff.gif')
  
  Probably still a long ways to go to adapt all of this. 
  
  
Index: loncom/xml/londefdef.pm
diff -u loncom/xml/londefdef.pm:1.118 loncom/xml/londefdef.pm:1.119
--- loncom/xml/londefdef.pm:1.118	Wed Feb 19 09:30:10 2003
+++ loncom/xml/londefdef.pm	Thu Feb 20 12:07:14 2003
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Tags Default Definition Module 
 #
-# $Id: londefdef.pm,v 1.118 2003/02/19 14:30:10 www Exp $
+# $Id: londefdef.pm,v 1.119 2003/02/20 17:07:14 www Exp $
 # 
 #
 # Copyright Michigan State University Board of Trustees
@@ -324,7 +324,7 @@
 	}
 #-- <meta> tag
       sub start_meta {
-	    my ($target,$token,$tagstack,$parstack,$parser) = @_;
+	    my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
             my $currentstring = '';
             if ($target eq 'web') {
 	      my $args='';
@@ -336,13 +336,16 @@
 	      }
 	    }
             if ($target eq 'meta') {
-		unless ($token->[2]->{'http-equiv'}) {
+		unless (&Apache::lonxml::get_param
+                         ('http-equiv',$parstack,$safeeval,undef,1)) {
 		    my $name=$token->[2]->{'name'};
                     $name=~tr/A-Z/a-z/;
-                    $name=~s/\s/\_/g;
+                    $name=~s/\s/\_/gs;
+                    $name=~s/\W//gs;
                     if ($name) {
                        $currentstring='<'.$name.'>'.
-                                         $token->[2]->{'content'}.
+                                         &Apache::lonxml::get_param
+                               ('content',$parstack,$safeeval,undef,1).
 			              '</'.$name.'>';
 		    }
                 }
@@ -1673,7 +1676,13 @@
 		  }
 	      } else {
 		  #original image file doesn't exist so check the alt attribute
-		  my $alt = &Apache::lonxml::get_param('alt',$parstack,$safeeval,undef,1);
+		  my $alt = 
+                 &Apache::lonxml::get_param('alt',$parstack,$safeeval,undef,1);
+                  unless ($alt) {
+		    $alt=&Apache::lonmeta::alttag
+                                   ($Apache::lonxml::pwd[-1],$src);
+                  }
+
                   if ($alt) {
 		      $currentstring .= ' '.$alt.' ';
 		  } else {
@@ -1683,6 +1692,7 @@
 	    }
 	    return $currentstring;
 	}
+
         sub end_img {
 	    my ($target,$token) = @_;
             my $currentstring = '';
@@ -1696,20 +1706,26 @@
 #-- <applet> tag
 
         sub start_applet {
-	    my ($target,$token) = @_;
-              $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=   
-                                        $token->[2]->{'code'};
-              $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
-                                        $token->[2]->{'archive'};
+	    my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
+
+	    my $code=&Apache::lonxml::get_param
+                                 ('code',$parstack,$safeeval,undef,1);
+            $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$code;
+
+	    my $archive=&Apache::lonxml::get_param
+                                 ('archive',$parstack,$safeeval,undef,1);
+            $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$archive;
+
             my $currentstring = '';
             if ($target eq 'web') {
               if ($ENV{'browser.appletsuppress'} ne 'on') {
                  $currentstring = $token->[4];
 	      } else {
-		  my $alttag=$token->[2]->{'alt'};
+		  my $alttag= &Apache::lonxml::get_param
+                               ('alt',$parstack,$safeeval,undef,1);
                   unless ($alttag) {
-                     $alttag=&Apache::lonmeta::alttag($ENV{'REQUEST_URI'},
-                                                      $token->[2]->{'code'});
+                     $alttag=&Apache::lonmeta::alttag($Apache::lonxml::pwd[-1],
+                                                      $code);
                   }
                   $currentstring='[APPLET: '.$alttag.']';
 	      }
@@ -1718,6 +1734,7 @@
 	    } 
 	   return $currentstring;
 	}
+
 sub end_applet {
     my ($target,$token) = @_;
     my $currentstring = '';
@@ -1732,18 +1749,18 @@
 #-- <embed> tag
 
 sub start_embed {    
-    my ($target,$token) = @_;
-    $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
-	$token->[2]->{'src'};
+    my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
+    my $src=&Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
+    $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src;
     my $currentstring = '';
     if ($target eq 'web') {
        if ($ENV{'browser.embedsuppress'} ne 'on') {
           $currentstring = $token->[4];
        } else {
-	  my $alttag=$token->[2]->{'alt'};
+	  my $alttag=&Apache::lonxml::get_param
+                               ('alt',$parstack,$safeeval,undef,1);
           unless ($alttag) {
-             $alttag=&Apache::lonmeta::alttag($ENV{'REQUEST_URI'},
-                                              $token->[2]->{'src'});
+             $alttag=&Apache::lonmeta::alttag($Apache::lonxml::pwd[-1],$src);
           }
           $currentstring='[EMBED: '.$alttag.']';
       }
@@ -1752,6 +1769,7 @@
     } 
     return $currentstring;
 }
+
         sub end_embed {
 	    my ($target,$token) = @_;
             my $currentstring = '';
@@ -1766,13 +1784,16 @@
 #-- <param> tag
 
         sub start_param {
-	    my ($target,$token) = @_;
-	    if ($token->[2]->{'name'} eq 'cabbase') {
+	    my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
+	    if (&Apache::lonxml::get_param
+                ('name',$parstack,$safeeval,undef,1)=~/^cabbase$/i) {
                       $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
-					     $token->[2]->{'value'};
+			&Apache::lonxml::get_param
+                               ('value',$parstack,$safeeval,undef,1);
             }   
             $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=   
-                                        $token->[2]->{'src'};
+                                      &Apache::lonxml::get_param
+                               ('src',$parstack,$safeeval,undef,1);
             my $currentstring = '';
             if ($target eq 'web') {
               $currentstring = $token->[4];     
@@ -1794,10 +1815,9 @@
 #-- <allow> tag
 sub start_allow {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
-    $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
-	$token->[2]->{'src'};
     my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
     $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
+    $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src;
     &image_replication($src);
     my $result;
     if ($target eq 'edit') {