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

sakharuk lon-capa-cvs@mail.lon-capa.org
Mon, 12 Aug 2002 14:32:00 -0000


sakharuk		Mon Aug 12 10:32:00 2002 EDT

  Modified files:              
    /loncom/xml	londefdef.pm 
  Log:
  1. Added support for the ps images (Ed wanted this).
  2. Done additional cleanup and added a few comments to <img subroutines.
  
  
Index: loncom/xml/londefdef.pm
diff -u loncom/xml/londefdef.pm:1.83 loncom/xml/londefdef.pm:1.84
--- loncom/xml/londefdef.pm:1.83	Mon Aug  5 11:36:44 2002
+++ loncom/xml/londefdef.pm	Mon Aug 12 10:32:00 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Tags Default Definition Module 
 #
-# $Id: londefdef.pm,v 1.83 2002/08/05 15:36:44 sakharuk Exp $
+# $Id: londefdef.pm,v 1.84 2002/08/12 14:32:00 sakharuk Exp $
 # 
 #
 # Copyright Michigan State University Board of Trustees
@@ -1532,57 +1532,21 @@
             my $currentstring = '';
 	    my $width_param = '';
 	    my $height_param = '';
-	    my $scaling = .3;
+	    my $scaling = .3; 
 
 	    if ($target eq 'web') {
               $currentstring = $token->[4];     
 	    } elsif ($target eq 'tex') {
 	      my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval);
 	      $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
-              if (-e $src) {          #new one
+              #if original gif/jpg file exist do following:
+              if (-e $src) {          
+                  #defines the default size of image
 		  my $image = Image::Magick->new;
 		  my $current_figure = $image->Read($src);
 		  $width_param = $image->Get('width') * $scaling;;
 		  $height_param = $image->Get('height') * $scaling;;
 		  undef $image;
-		  my $epssrc = $src;
-		  $epssrc =~ s/(\.gif|\.jpg)$/\.eps/i;
-		  if (not -e $epssrc) {
-		      my $localfile = $epssrc;
-		      $localfile =~ s/.*(\/res)/$1/;	
-		      my $file;
-		      my $path;	
-		      if ($localfile =~ m!(.*)/([^/]*)$!) {
-			  $file = $2;
-			  $path = $1.'/'; 
-		      }	
-		      my $signal_eps = 0;
-		      my @content_directory = &Apache::lonnet::dirlist($path);
-		      for (my $iy=0;$iy<=$#content_directory;$iy++) {
-			  my @tempo_array = split(/&/,$content_directory[$iy]);
-			  $content_directory[$iy] = $tempo_array[0];
-			  if ($file eq $tempo_array[0]) {
-			      $signal_eps = 1;
-			      last;
-			  }
-		      }
-		      if ($signal_eps) {
-			  my $eps_file = &Apache::lonnet::getfile($localfile);
-		      } else {
-			  $localfile = $src;
-			  $localfile =~ s/.*(\/res)/$1/;	
-			  my $as = &Apache::lonnet::getfile($src);		      
-		      }
-		  }
-		  my $file;
-		  my $path;	
-		  if ($src =~ m!(.*)/([^/]*)$!) {
-		      $file = $2; 
-		      $path = $1.' /'; 
-		  } 
-		  my $newsrc = $src;
-		  $newsrc =~ s/(\.gif|\.jpg)$/\.eps/i;
-		  $file=~s/(\.gif|\.jpg)$/\.eps/i;
 		  #do we have any specified size of the picture?
 		  my $TeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval); 
 		  my $TeXheight = &Apache::lonxml::get_param('TeXheight',$parstack,$safeeval); 
@@ -1594,24 +1558,47 @@
 		  } elsif ($width ne '') {
 		      $width_param = $width*$scaling;      
 		  }
+		  my $file;
+		  my $path;	
+		  if ($src =~ m!(.*)/([^/]*)$!) {
+		      $file = $2; 
+		      $path = $1.'/'; 
+		  } 
+		  my $newsrc = $src;
+		  $newsrc =~ s/(\.gif|\.jpg)$/\.eps/i;
+		  $file=~s/(\.gif|\.jpg)$/\.eps/i;
 		  #where can we find the picture?
 		  if (-e $newsrc) {
+                      #eps counterpart for image exist 
 		      if ($path) {
 			  $currentstring .= '\noindent\graphicspath{{'.$path.'}}\fbox{\includegraphics[width='.$width_param.' mm]{'.$file.'}} ';
 		      }
 		  } else {
-		      my $temp_file;
-		      my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat";
-		      $temp_file = Apache::File->new('>>'.$filename); 
-		      print $temp_file "$src\n";
-		      $currentstring .= '\graphicspath{{/home/httpd/prtspool/}}\fbox{\includegraphics[width='.$width_param.' mm]{'.$file.'}} ';
+                      #there is no eps counterpart for image - check for ps one
+		      $newsrc =~ s/\.eps$/\.ps/;
+		      if (-e $newsrc) {
+			  #ps counterpart for image exist 
+			  $file =~ s/\.eps$/\.ps/;
+			  if ($path) {
+			      $currentstring .= '\noindent\graphicspath{{'.$path.'}}\fbox{\includegraphics[width='.$width_param.' mm]{'.$file.'}} ';
+			  }
+		      } else {
+			  #there aren't eps or ps - so create eps 
+			  my $temp_file;
+			  my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat";
+			  $temp_file = Apache::File->new('>>'.$filename); 
+			  print $temp_file "$src\n";
+			  $currentstring .= '\graphicspath{{/home/httpd/prtspool/}}\fbox{\includegraphics[width='.$width_param.' mm]{'.$file.'}} ';
+		      }
 		  }
 	      } else {
+		  #original image file doesn't exist so check the alt attribute
 		  my $alt = &Apache::lonxml::get_param('alt',$parstack,$safeeval);
                   if ($alt) {
 		      $currentstring .= ' '.$alt.' ';
 		  } else {
-                      $currentstring .= ' THE ORIGINAL PROBLEM CONTAINS EMPTY IMG TAG WITHOUT IMAGE ';
+                  #there are no image and alt attribute
+                      $currentstring .= ' THE ORIGINAL PROBLEM CONTAINS EMPTY IMG TAG WITHOUT IMAGE AND ALT ATTRIBUTE ';
 		  }
 	      }
 	    }