[LON-CAPA-cvs] cvs: loncom /interface lonprintout.pm

sakharuk lon-capa-cvs@mail.lon-capa.org
Wed, 06 Mar 2002 20:43:06 -0000


This is a MIME encoded message

--sakharuk1015447386
Content-Type: text/plain

sakharuk		Wed Mar  6 15:43:06 2002 EDT

  Modified files:              
    /loncom/interface	lonprintout.pm 
  Log:
  added additional menu and changed some stuff
  
  
--sakharuk1015447386
Content-Type: text/plain
Content-Disposition: attachment; filename="sakharuk-20020306154306.txt"

Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.15 loncom/interface/lonprintout.pm:1.16
--- loncom/interface/lonprintout.pm:1.15	Wed Feb 20 23:13:20 2002
+++ loncom/interface/lonprintout.pm	Wed Mar  6 15:43:06 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Printout
 #
-# $Id: lonprintout.pm,v 1.15 2002/02/21 04:13:20 albertel Exp $
+# $Id: lonprintout.pm,v 1.16 2002/03/06 20:43:06 sakharuk Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -58,7 +58,7 @@
 </head>
 <body bgcolor="FFFFFF">
 <form method="post" enctype="multipart/form-data" action="/adm/printout" name="printform">
-<h1>Printout:</h1><br></br>
+<h1>What do you want to print? Make a choice.</h1><br />
 ENDHEADER
 }
 
@@ -68,10 +68,15 @@
     $r->print(<<ENDMENUOUT);
 <input type="hidden" name="phase" value="two">
 <input type="hidden" name="url" value="$ENV{'form.postdata'}">
-<input type="radio" name="choice" value="Standard LaTeX output for current document">  Standard LaTeX output for current document<br />
+<input type="radio" name="choice" value="Standard LaTeX output for current document">  Current document
+(you will print what you see on the screen)<br />
 <input type="radio" name="choice" value="Standard LaTeX output for the primary sequence">  Standard LaTeX output for the primary sequence<br />
-<input type="radio" name="choice" value="Standard LaTeX output for the top level sequence">  Standard LaTeX output for the top level sequence<br />
-<input type="submit" value="Please make a choice">
+<input type="radio" name="choice" value="Standard LaTeX output for the top level sequence">  All documents from the top level sequence<br />
+<br /><hr /><br />
+<h1>And what page format do you prefer?</h1>
+<input type="radio" name="layout" value="CBI" checked>  CBI <br />
+<input type="radio" name="layout" value="CAPA"> CAPA <br />
+<input type="submit" value="Submit your choice">
 </form>
 </body>
 </html>
@@ -79,6 +84,8 @@
 }
 
 
+
+
 sub output_data {
     my $r = shift;
     $r->print(<<ENDPART);
@@ -91,6 +98,8 @@
 ENDPART
 
     my $choice = $ENV{'form.choice'};
+    my $layout = $ENV{'form.layout'};
+    my $laystyle = 'book';
     my $result = '';
     my %mystyle;
     my $filename;
@@ -107,77 +116,74 @@
       $moreenv{'request.filename'}=$currequest;
       &Apache::lonnet::appenv(%moreenv);
       $result .= $texversion;
+
     } elsif ($choice eq 'Standard LaTeX output for the primary sequence') {
-	my @master_seq = ();
-	my $keyword = 0;
-	my $output_seq = '';
-	my $current_file = '/res/'.$ENV{'request.ambiguous'};
-        $current_file =~ s/(\/res\/physnet\/physnet)(\/m\d+)\/(.*)/$1$2$2\.sequence/;
-	while ($current_file ne '') {
-	    my $file=&Apache::lonnet::filelocation("",$current_file);
-	    my $filecontents=&Apache::lonnet::getfile($file);
-	    my @file_seq = &content_map($filecontents);
-	    if (defined @file_seq) {
+      my @master_seq = ();
+      my $keyword = 0;
+      my $output_seq = '';
+      my $current_file = '/res/'.$ENV{'request.ambiguous'};
+      $current_file =~ s/(\/res\/physnet\/physnet)(\/m\d+)\/(.*)/$1$2$2\.sequence/;
+      while ($current_file ne '') {
+	my $file=&Apache::lonnet::filelocation("",$current_file);
+	my $filecontents=&Apache::lonnet::getfile($file);
+	my @file_seq = &content_map($filecontents);
+	if (defined @file_seq) {
 #-- adding an additional array to the master one
-		if (defined @master_seq) {
-                    my $old_value = $#master_seq;
-		    my $total_value = $#master_seq + $#file_seq +2;
-                    for (my $j=0; $j<=$old_value-$keyword+1; $j++) {
-			$master_seq[$total_value-$j] = $master_seq[$old_value-$j];
-		    }
-                    for (my $j=0; $j<=$#file_seq; $j++){
-			$master_seq[$keyword+$j] = $file_seq[$j];
-		    }
-		    @file_seq = ();
-		    $keyword = 0;
-		} else {
-		    @master_seq = @file_seq;
-                    @file_seq = ();
-		}
-	    } 
+	  if (defined @master_seq) {
+	    my $old_value = $#master_seq;
+	    my $total_value = $#master_seq + $#file_seq +2;
+	    for (my $j=0; $j<=$old_value-$keyword+1; $j++) {
+	      $master_seq[$total_value-$j] = $master_seq[$old_value-$j];
+	    }
+	    for (my $j=0; $j<=$#file_seq; $j++){
+	      $master_seq[$keyword+$j] = $file_seq[$j];
+	    }
+	    @file_seq = ();
+	    $keyword = 0;
+	  } else {
+	    @master_seq = @file_seq;
+	    @file_seq = ();
+	  }
+	}
 #-- checking wether .sequence file is among the set of files
-	    $current_file = '';
-	    for (my $i=0; $i<=$#file_seq; $i++) {
-		$_ = $file_seq[$i];
-		if (m/(.*)\.sequence/) {
-		    $current_file = $_;
-		    $keyword = $i;
-		    last;
-		}
-	    }        
+	$current_file = '';
+	for (my $i=0; $i<=$#file_seq; $i++) {
+	  $_ = $file_seq[$i];
+	  if (m/(.*)\.sequence/) {
+	    $current_file = $_;
+	    $keyword = $i;
+	    last;
+	  }
 	}
+      }
 #-- produce an output string
-	for (my $i=0;$i<=$#master_seq;$i++) {
-	    $_ = $master_seq[$i];
-	    m/\"(.*)\"/;
-	    if (index($1,'-tc.xml',0)==-1) {
-		my $file=&Apache::lonnet::filelocation("",$1);
-		my $filecontents=&Apache::lonnet::getfile($file);
-		$output_seq .= $filecontents;
-	    }
+      for (my $i=0;$i<=$#master_seq;$i++) {
+	$_ = $master_seq[$i];
+	m/\"(.*)\"/;
+	if (index($1,'-tc.xml',0)==-1) {
+	  my $file=&Apache::lonnet::filelocation("",$1);
+	  my $filecontents=&Apache::lonnet::getfile($file);
+	  $output_seq .= $filecontents;
 	}
+      }
 #-- cleanup of output string (temporary cbi-specific)
-	$output_seq =~ s/<physnet>//g;
-	$output_seq =~ s/<\/physnet>//g;
-	$output_seq = '<physnet>'.$output_seq.' </physnet>';
+      $output_seq =~ s/<physnet>//g;
+      $output_seq =~ s/<\/physnet>//g;
+      $output_seq = '<physnet>'.$output_seq.' </physnet>';
 #-- final accord
-	$result = &Apache::lonxml::xmlparse('tex',$output_seq,'',%mystyle);
+      $result = &Apache::lonxml::xmlparse('tex',$output_seq,'',%mystyle);
     }  elsif ($choice eq 'Standard LaTeX output for the top level sequence') {
-
-#-- where is the main sequence of the course?
-
 	my @master_seq = ();
 	my $keyword = 0;
 	my $output_seq = '';
-
+#-- where is the main sequence of the course?
 	my $main_seq = '/res/'.$ENV{'request.course.uri'};
 	my $file=&Apache::lonnet::filelocation("",$main_seq);
 	my $filecontents=&Apache::lonnet::getfile($file);
 	my @file_seq = &content_map($filecontents);
-
 #-- temporary solution (without sequence inside sequence) - have to be generalized
 
- 
+
 
 
 #		if (defined @master_seq) {
@@ -195,7 +201,7 @@
 		    @master_seq = @file_seq;
 #                    @file_seq = ();
 #		}
-	     
+	
 #-- checking wether .sequence file is among the set of files
 #	    my  $current_file = '';
 #	    for (my $i=0; $i<=$#file_seq; $i++) {
@@ -233,18 +239,29 @@
 	    $first_app = index($result,'\documentclass',$first_app+5);
 	}
     }
+#-- corrections for the different page formats
+    if ($layout eq 'CBI') {
+	$result =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{-40pt}\\setlength{\\evensidemargin}{-60pt}\\setlength{\\topmargin}{200pt}\\setlength{\\textwidth}{4\.4in}\\setlength{\\textheight}{6\.8in}\\setlength{\\parindent}{20pt}\\setlength{\\marginparwidth}{90pt}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt} \\begin{document}/;
+        $laystyle = 'album';
+    } elsif ($layout eq 'CAPA') {
+        my $courseidinfo = $ENV{'request.role'};
+        $_ = $courseidinfo;
+        m/.*\/(.*)/;
+        $courseidinfo = $ENV{'course.physnet_'.$1.'.description'};
+	$result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass\[twocolumn\]{article}/;
+	$result =~ s/\\begin{document}/\\textheight 25\.9cm\\oddsidemargin = -0\.57in\\evensidemargin = -0\.57in\\textwidth= 7\.7in\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}}\\hskip 1\.4in $courseidinfo\\newline\\noindent\\textit{Physics for Scientists and Engineers}\\newline\\noindent\\textbf{Due Thursday, March 7, 2002 at 8:00PM}\\vskip 5 mm/;
+	$result =~ s/\\includegraphics/\\includegraphics\[width=9\.0 cm\]/g;
+    }
 #-- writing .tex file in prtspool 
-	{
-	    my $temp_file;
-	    $filename = "/home/httpd/prtspool/$ENV{'environment.firstname'}$ENV{'environment.lastname'}temp$ENV{'user.login.time'}.tex";
-	    unless ($temp_file = Apache::File->new('>'.$filename)) {
-		$r->log_error("Couldn't open $filename for output $!");
-		return SERVER_ERROR; 
-	    } 
-		print $temp_file $result;
-	}
+    my $temp_file;
+    $filename = "/home/httpd/prtspool/$ENV{'environment.firstname'}$ENV{'environment.lastname'}temp$ENV{'user.login.time'}.tex";
+    unless ($temp_file = Apache::File->new('>'.$filename)) {
+	$r->log_error("Couldn't open $filename for output $!");
+	return SERVER_ERROR; 
+    } 
+    print $temp_file $result;
 $r->print(<<FINALEND);
-<meta http-equiv="Refresh" content="0; url=/cgi-bin/printout.pl?$filename">
+<meta http-equiv="Refresh" content="0; url=/cgi-bin/printout.pl?$filename&$laystyle">
 </body>
 </html>
 FINALEND
@@ -319,9 +336,11 @@
 #-- start form
     &headerform($r);
 #-- menu for output
-    unless ($ENV{'form.phase'}) {
+    unless  ($ENV{'form.phase'}) {
 	&menu_for_output($r);
     }
+
+
 #-- core part 
     if ($ENV{'form.phase'} eq 'two') {
 	&output_data($r);

--sakharuk1015447386--