Diff for /loncom/interface/lonprintout.pm between versions 1.29 and 1.35

version 1.29, 2002/05/20 19:05:39 version 1.35, 2002/07/01 15:02:54
Line 46  use Apache::lonnet; Line 46  use Apache::lonnet;
 use Apache::inputtags;  use Apache::inputtags;
 use Apache::edit;  use Apache::edit;
 use Apache::File();  use Apache::File();
   use POSIX qw(strftime);
   
   
 sub headerform {  sub headerform {
Line 75  sub menu_for_output { Line 75  sub menu_for_output {
 <input type="radio" name="choice" value="Standard LaTeX output for the top level sequence">  All problems from the top level sequence<br />  <input type="radio" name="choice" value="Standard LaTeX output for the top level sequence">  All problems from the top level sequence<br />
 <br />  <br />
 ENDMENUOUT1  ENDMENUOUT1
     if ($ENV{'user.adv'} eq '1') {      my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
       $subdirtoprint =~ s/\/[^\/]+$//;
       if (&Apache::lonnet::allowed('bre',$subdirtoprint) eq 'F') {
  $r->print(<<ENDMENUOUT2);   $r->print(<<ENDMENUOUT2);
 <input type="radio" name="choice" value="Subdirectory print">  All problems from particular subdirectory <input type="text" name="subdirect" value="/res/"><br />  <input type="radio" name="choice" value="Subdirectory print">  All problems from current subdirectory (where this particular problem is)<br />
 ENDMENUOUT2  ENDMENUOUT2
     }  }
  $r->print(<<ENDMENUOUT3);      $r->print(<<ENDMENUOUT3);
 <br /><hr /><br />  <br /><hr /><br />
 <h1>And what page format do you prefer?</h1>  <h1>And what page format do you prefer?</h1>
 <input type="radio" name="layout" value="CBI"> Two columns landscape <br />  <input type="radio" name="layout" value="CBI"> Two columns landscape <br />
Line 108  ENDPART Line 110  ENDPART
   
     my $choice = $ENV{'form.choice'};      my $choice = $ENV{'form.choice'};
     my $layout = $ENV{'form.layout'};      my $layout = $ENV{'form.layout'};
     my $subdirtoprint = $ENV{'form.subdirect'};  
     my $laystyle = 'book';      my $laystyle = 'book';
     my $result = '';      my $result = '';
     my %mystyle;      my $number_of_columns = 1;
     my $filename;  
   
     if ($choice eq 'Standard LaTeX output for current document') {      if ($choice eq 'Standard LaTeX output for current document') {
       my %moreenv;        my %moreenv;
       my $currequest=$ENV{'request.filename'};  
       $moreenv{'form.grade_target'}='tex';        $moreenv{'form.grade_target'}='tex';
       $moreenv{'request.filename'}=$ENV{'form.url'};        $moreenv{'request.filename'}=$ENV{'form.url'};
       &Apache::lonnet::appenv(%moreenv);        &Apache::lonnet::appenv(%moreenv);
       my $texversion=&Apache::lonnet::ssi($ENV{'form.url'});        my $texversion=&Apache::lonnet::ssi($ENV{'form.url'});
       &Apache::lonnet::delenv('form.grade_target');        &Apache::lonnet::delenv('form.grade_target');
       %moreenv = ();  
       $moreenv{'request.filename'}=$currequest;  
       &Apache::lonnet::appenv(%moreenv);  
       $result .= $texversion;        $result .= $texversion;
       $result = &additional_cleanup($result);        $result = &additional_cleanup($result);
         if ($ENV{'form.url'}=~m/\.page\s*$/) {($result,$number_of_columns) = &page_cleanup($result);}
     } elsif ($choice eq 'Standard LaTeX output for the primary sequence' or $choice eq 'Standard LaTeX output for whole primary sequence') {      } elsif ($choice eq 'Standard LaTeX output for the primary sequence' or $choice eq 'Standard LaTeX output for whole primary sequence') {
 #-- where is the primary sequence containing file?  #-- where is the primary sequence containing file?
  my %moreenv;   my %moreenv;
Line 201  ENDPART Line 198  ENDPART
     }      }
  }       }    
  $result = &additional_cleanup($result);   $result = &additional_cleanup($result);
     } elsif ($choice eq 'Subdirectory print') {        } elsif ($choice eq 'Subdirectory print') {      
  if (&Apache::lonnet::allowed('bre',$subdirtoprint) eq 'F') {   my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
     my $locald = &Apache::lonnet::filelocation("",$subdirtoprint);   $subdirtoprint =~ s/\/[^\/]+$//;
     unless (-e $locald) {   my @list_of_files = ();
 #do something in the case of the absence of this subdirectory on the local mashine   my $localdirectory = $subdirtoprint;
 #replication process   $localdirectory =~ s/.*(\/res\/)/$1/;
     }   my @content_directory = &Apache::lonnet::dirlist($localdirectory);
     my @list_of_files = ();   for (my $iy=0;$iy<=$#content_directory;$iy++) {
             my @content_directory = &Apache::lonnet::dirlist($subdirtoprint);      my @tempo_array = split(/&/,$content_directory[$iy]);
     for (my $iy=0;$iy<=$#content_directory;$iy++) {      $content_directory[$iy] = $tempo_array[0];
                 my @tempo_array = split(/&/,$content_directory[$iy]);      if ($content_directory[$iy] =~ m/^[^\.]+\.problem$/) {
  $content_directory[$iy] = $tempo_array[0];   push @list_of_files,$content_directory[$iy];
  if ($content_directory[$iy] =~ m/\.problem$/) {  
     push @list_of_files,$content_directory[$iy];  
  }  
     }  
     for (my $i=0;$i<=$#list_of_files;$i++) {  
  $subdirtoprint =~ s/\/$//;  
  my $urlp = $subdirtoprint.'/'.$list_of_files[$i];  
  my %moreenv;  
  $moreenv{'form.grade_target'}='tex';  
  &Apache::lonnet::appenv(%moreenv);  
  my $texversion=&Apache::lonnet::ssi($urlp);  
  &Apache::lonnet::delenv('form.grade_target');  
  $texversion =~ s/(\\begin{document})/$1 {\\tiny\\begin{verbatim}$urlp\\end{verbatim}}/;  
  $result .= $texversion;     
     }      }
     $result = &additional_cleanup($result);  
   
  } else {  
 #message "you not allowed to do this"     
  }   }
    $localdirectory =~ s/\/$//;
    for (my $i=0;$i<=$#list_of_files;$i++) {
       my $urlp = $localdirectory.'/'.$list_of_files[$i];     
       my %moreenv;
       $moreenv{'form.grade_target'}='tex';
       &Apache::lonnet::appenv(%moreenv);
       my $texversion=&Apache::lonnet::ssi($urlp);
       &Apache::lonnet::delenv('form.grade_target');
       $texversion =~ s/(\\begin{document})/$1 {\\tiny\\begin{verbatim}$urlp\\end{verbatim}}/;
       $result .= $texversion;   
    }
    $result = &additional_cleanup($result);
   
   
   
   
   
   
   
     }      }
 #-- corrections for the different page formats  #-- corrections for the different page formats
     if ($layout eq 'CBI') {      if ($layout eq 'CBI') {
Line 248  ENDPART Line 240  ENDPART
         $_ = $courseidinfo;          $_ = $courseidinfo;
         m/.*\/(.*)/;          m/.*\/(.*)/;
         $courseidinfo = $ENV{'course.physnet_'.$1.'.description'};          $courseidinfo = $ENV{'course.physnet_'.$1.'.description'};
  $result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass\[twocolumn\]{article}/;  # $result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass\[twocolumn\]{article}/;
  $result =~ s/\\begin{document}/\\textheight 25\.9cm\\oddsidemargin = -0\.57in\\evensidemargin = -0\.57in\\textwidth= 7\.7in\\renewcommand{\\ref}{\\keephidden\}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}}\\hskip 1\.4in $courseidinfo \\vskip 5 mm /;   $result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass{article}/;
    $result =~ s/\\begin{document}/\\textheight 25\.9cm\\oddsidemargin = -0\.57in\\evensidemargin = -0\.57in\\textwidth= 9cm\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}}\\hskip 1\.4in $courseidinfo} \\vskip 5 mm /;
  $result =~ s/\\includegraphics{/\\includegraphics\[width=9\.0 cm\]{/g;   $result =~ s/\\includegraphics{/\\includegraphics\[width=9\.0 cm\]{/g;
  $result =~ s/(\\end{document})/\\newline\\noindent\\makebox\[9.0cm\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Dept\. of Physics and Astronomy, MSU\\makebox\[1.5cm\]\[b\]{\\hfill}LON-CAPA\\copyright MSU GNU\/GPL $1/;   $result =~ s/(\\end{document})/\\newline\\noindent\\makebox\[9.0cm\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Dept\. of Physics and Astronomy, MSU\\makebox\[1.5cm\]\[b\]{\\hfill}LON-CAPA\\copyright MSU GNU\/GPL $1/;
           $result =~ s/(\\end{longtable}\s*)(\\newline\\noindent\\makebox\[9\.0cm\]\[b\]{\\hrulefill})/$2$1/g;
           $result =~ s/(\\end{longtable}\s*)\\newline/$1/g;
     }      }
 #-- LaTeX corrections       #-- LaTeX corrections     
     my $first_comment = index($result,'<!--',0);      my $first_comment = index($result,'<!--',0);
Line 272  ENDPART Line 267  ENDPART
     $result =~ s/\b_+\b/\\makebox\[1 cm\]\[b\]{\\hrulefill}/g;      $result =~ s/\b_+\b/\\makebox\[1 cm\]\[b\]{\\hrulefill}/g;
 #-- writing .tex file in prtspool   #-- writing .tex file in prtspool 
     my $temp_file;      my $temp_file;
     $filename = "/home/httpd/prtspool/$ENV{'user.name'}$ENV{'user.domain'}temp$ENV{'user.login.time'}.tex";      my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout_".time."_".rand(10000000).".tex";
     unless ($temp_file = Apache::File->new('>'.$filename)) {      unless ($temp_file = Apache::File->new('>'.$filename)) {
  $r->log_error("Couldn't open $filename for output $!");   $r->log_error("Couldn't open $filename for output $!");
  return SERVER_ERROR;    return SERVER_ERROR; 
Line 297  sub additional_cleanup { Line 292  sub additional_cleanup {
     }      }
     return $result;      return $result;
 }  }
   sub page_cleanup {
       my $result = shift;
       $_ = $result;
       m/\\end{document}(\d*)$/;
       my $number_of_columns = $1;
       my $insert = '{';
       for (my $id=1;$id<=$number_of_columns;$id++) { $insert .='l'; }
       $insert .= '}';
       $result =~ s/(\\begin{longtable})INSERTTHEHEADOFLONGTABLE/$1$insert/g;
       $result =~ s/&\s*REMOVETHEHEADOFLONGTABLE\\\\/\\\\/g;
       $result =~ s/(\\vskip\s*\d+\s*mm)/}\\\\\\parbox{\\minipagewidth}{/g;
       $result =~ s/\\parbox{\\minipagewidth}{}\s*\\\\\s*(\\parbox{\\minipagewidth})/$1/g;
       return $result,$number_of_columns;
   }
   
 sub content_map {  sub content_map {
 #-- find a list of files to print  #-- find a list of files to print

Removed from v.1.29  
changed lines
  Added in v.1.35


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>