--- loncom/xml/londefdef.pm 2002/04/16 14:37:24 1.53 +++ loncom/xml/londefdef.pm 2002/05/09 18:55:47 1.58 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.53 2002/04/16 14:37:24 sakharuk Exp $ +# $Id: londefdef.pm,v 1.58 2002/05/09 18:55:47 sakharuk Exp $ # # # Copyright Michigan State University Board of Trustees @@ -45,8 +45,10 @@ package Apache::londefdef; +use Apache::lonnet; use strict; use Apache::lonxml; +use Apache::File(); BEGIN { @@ -335,7 +337,8 @@ sub end_m { delete($token->[2]->{$key}); } } - $token->[2]->{'onLoad'}=$onLoad.&Apache::lonxml::loadevents(); + $token->[2]->{'onLoad'}=&Apache::lonxml::loadevents(). + ';'.$onLoad; my $onUnload=''; foreach my $key (keys(%{$token->[2]})) { if ($key =~ /^onunload$/i) { @@ -343,8 +346,8 @@ sub end_m { delete($token->[2]->{$key}); } } - $token->[2]->{'onUnload'}=$onUnload. - &Apache::lonxml::unloadevents(); + $token->[2]->{'onUnload'}=&Apache::lonxml::unloadevents(). + ';'.$onUnload; $currentstring .= '<'.$token->[1]; foreach (keys %{$token->[2]}) { @@ -1381,33 +1384,49 @@ EDITBUTTON $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= $token->[2]->{'src'}; my $currentstring = ''; + my $width_param = ''; if ($target eq 'web') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { + my $TeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval); + my $TeXheight = &Apache::lonxml::get_param('TeXheight',$parstack,$safeeval); + my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval); + if ($TeXwidth ne '') { + $width_param = $TeXwidth; + } elsif ($TeXheight ne '') { + $width_param = $TeXheight; + } else { + if ($width ne '') { + $width_param = $width*.3; + if ($width_param <= 900) { + $width_param = '[width='.$width_param.'mm]'; + } else { + $width_param = '[width= 9.0 cm]'; + } + } + } my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval); + $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); my $file; - my $path; + my $path; if ($src =~ m!(.*)/([^/]*)$!) { - $file = $2; - $path = $1; - if ($path=~m:^/:) { - $path = '/home/httpd/html'.$path; - } elsif ($path =~ /^\./) { - $path = $Apache::lonxml::pwd[-1].'/'.$path; - } else { - #else it is a full url don't print - $path = undef; - } - } else { - $path = $Apache::lonxml::pwd[-1]; - $file = $src; + $file = $2; + $path = $1.'/'; } - $file=~s/(\.gif|\.jpg)$/\.eps/; - if ($path) { - $currentstring = '\graphicspath{{'.$path.'/}}\fbox{\includegraphics{'.$file.'}}'; + my $newsrc = $src; + $newsrc =~ s/(\.gif|\.jpg)$/\.eps/; + $file=~s/(\.gif|\.jpg)$/\.eps/; + if (-e $newsrc) { + if ($path) { + $currentstring .= '\graphicspath{{'.$path.'}}\fbox{\includegraphics'.$width_param.'{'.$file.'}}'; + } } else { - $currentstring = 'See the image at \tt{'.$src.'}'; + my $temp_file; + my $filename = "/home/httpd/prtspool/$ENV{'user.name'}$ENV{'user.domain'}temp$ENV{'user.login.time'}.dat"; + $temp_file = Apache::File->new('>>'.$filename); + print $temp_file "$src\n"; + $currentstring .= '\graphicspath{{/home/httpd/prtspool/}}\fbox{\includegraphics'.$width_param.'{'.$file.'}}'; } } return $currentstring;