[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--