--- loncom/xml/londefdef.pm 2003/02/19 14:30:10 1.118 +++ loncom/xml/londefdef.pm 2003/02/20 17:07:14 1.119 @@ -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 @@ sub start_html { } #-- 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 @@ sub start_html { } } 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). ''; } } @@ -1673,7 +1676,13 @@ sub start_table { } } 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 @@ sub start_table { } return $currentstring; } + sub end_img { my ($target,$token) = @_; my $currentstring = ''; @@ -1696,20 +1706,26 @@ sub start_table { #-- 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 @@ sub start_table { } return $currentstring; } + sub end_applet { my ($target,$token) = @_; my $currentstring = ''; @@ -1732,18 +1749,18 @@ sub end_applet { #-- 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 @@ sub start_embed { } return $currentstring; } + sub end_embed { my ($target,$token) = @_; my $currentstring = ''; @@ -1766,13 +1784,16 @@ sub start_embed { #-- 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 @@ sub start_embed { #-- 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') {