--- loncom/xml/londefdef.pm 2003/02/18 22:19:30 1.117 +++ loncom/xml/londefdef.pm 2003/02/28 21:06:42 1.120 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.117 2003/02/18 22:19:30 www Exp $ +# $Id: londefdef.pm,v 1.120 2003/02/28 21:06:42 albertel Exp $ # # # Copyright Michigan State University Board of Trustees @@ -44,13 +44,13 @@ package Apache::londefdef; -use Apache::lonnet; +use Apache::lonnet(); use strict; -use Apache::lonxml; +use Apache::lonxml(); use Apache::File(); use Image::Magick; -use Apache::lonmenu; -#use Apache::lonmeta; +use Apache::lonmenu(); +use Apache::lonmeta(); BEGIN { @@ -123,6 +123,7 @@ sub start_tthoption { &tth::tthoptions($inside); } } + return $result; } sub end_tthoption { @@ -324,7 +325,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 +337,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 +1677,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 +1693,7 @@ sub start_table { } return $currentstring; } + sub end_img { my ($target,$token) = @_; my $currentstring = ''; @@ -1696,20 +1707,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 +1735,7 @@ sub start_table { } return $currentstring; } + sub end_applet { my ($target,$token) = @_; my $currentstring = ''; @@ -1732,18 +1750,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 +1770,7 @@ sub start_embed { } return $currentstring; } + sub end_embed { my ($target,$token) = @_; my $currentstring = ''; @@ -1766,13 +1785,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,9 +1816,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') { @@ -2612,15 +2634,17 @@ sub end_allow { sub image_replication { my $src = shift; - if (not -e '/home/httpd/html'.$src) { + if (not -e $src) { #replicates image itself - &Apache::lonnet::repcopy('/home/httpd/html'.$src); + &Apache::lonnet::repcopy($src); #replicates eps or ps my $newsrc = $src; - $newsrc =~ s/\.(gif|jpg|png)$/.eps/; - if (not-e $newsrc && &Apache::lonnet::repcopy('/home/httpd/html'.$newsrc) ne 'OK') { - $newsrc =~ s/\.eps$/\.ps/; - &Apache::lonnet::repcopy('/home/httpd/html'.$newsrc); + $newsrc =~ s/\.(gif|jpg|jpeg|png)$/.eps/i; + if (not -e $newsrc) { + if (&Apache::lonnet::repcopy($newsrc) ne 'OK') { + $newsrc =~ s/\.eps$/\.ps/; + &Apache::lonnet::repcopy($newsrc); + } } } return '';