--- loncom/interface/lonprintout.pm 2004/05/06 06:45:13 1.300
+++ loncom/interface/lonprintout.pm 2004/07/21 19:49:30 1.317
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.300 2004/05/06 06:45:13 albertel Exp $
+# $Id: lonprintout.pm,v 1.317 2004/07/21 19:49:30 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -421,13 +421,13 @@ sub page_format {
} elsif($papersize eq '6') {
if ($layout eq 'book') {
if ($numberofcolumns == 1) {
- $textwidth = '18 cm';
- $textheight = '28 cm';
+ $textwidth = '176 mm';
+ $textheight = '254 mm';
$oddoffset = '-0.57 in';
$evenoffset = '-0.57 in';
} elsif ($numberofcolumns == 2) {
- $textwidth = '96 mm';
- $textheight = '2 cm';
+ $textwidth = '91 mm';
+ $textheight = '254 mm';
$oddoffset = '-0.57 in';
$evenoffset = '-0.57 in';
}
@@ -472,9 +472,13 @@ sub get_course {
}
sub page_format_transformation {
- my ($papersize,$layout,$numberofcolumns,$choice,$text,$assignment,$tableofcontents,$indexlist) = @_;
+ my ($papersize,$layout,$numberofcolumns,$choice,$text,$assignment,$tableofcontents,$indexlist,$selectionmade) = @_;
my ($textwidth,$textheight,$oddoffset,$evenoffset,$topmargin);
- $assignment=&Apache::lonxml::latex_special_symbols($assignment,'header');
+ if ($selectionmade eq '4') {
+ $assignment='Problems from the Whole Course';
+ } else {
+ $assignment=&Apache::lonxml::latex_special_symbols($assignment,'header');
+ }
($textwidth,$textheight,$oddoffset,$evenoffset,$topmargin) = &page_format($papersize,$layout,$numberofcolumns,$topmargin);
my $name = &get_name();
my $courseidinfo = &get_course();
@@ -536,11 +540,15 @@ sub details_for_menu {
sub latex_corrections {
- my ($number_of_columns,$result) = @_;
+ my ($number_of_columns,$result,$selectionmade) = @_;
# $result =~ s/\\includegraphics{/\\includegraphics\[width=\\minipagewidth\]{/g;
$result =~ s/\$number_of_columns/$number_of_columns/g;
- $result =~ s/(\\end{document})/\\strut\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License $1/;
+ if ($selectionmade ne '1') {
+ $result =~ s/(\\end{document})/\\strut\\vspace\*{-4 mm}\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License $1/;
+ } else {
+ $result =~ s/(\\end{document})/\\strut\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License $1/;
+ }
$result =~ s/(\\end{longtable}\s*)(\\strut\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill})/$2$1/g;
$result =~ s/(\\end{longtable}\s*)\\strut\\newline/$1/g;
#-- LaTeX corrections
@@ -555,8 +563,7 @@ sub latex_corrections {
$result =~ s/\\\\\s*\\vskip/\\vskip/gm;
$result =~ s/\\\\\s*\\noindent\s*(\\\\)+/\\\\\\noindent /g;
$result =~ s/{\\par }\s*\\\\/\\\\/gm;
- $result =~ s/\\\\\s+\[/ \[/g;
- $result =~ s/\b__+\b/\\makebox\[1 cm\]\[b\]{\\hrulefill}/g;
+ $result =~ s/\\\\\s+\[/ \[/g;
#conversion of html characters to LaTeX equivalents
if ($result =~ m/&(\w+|#\d+);/) {
$result = &character_chart($result);
@@ -674,11 +681,10 @@ sub get_textwidth {
sub unsupported {
- my $currentURL=shift;
- my $result.='\documentclass[letterpaper]{article}\usepackage{calc}\begin{document}Printout of this type of document is currently not supported: ';
- if ($currentURL=~/\/(aboutme|syllabus|bulletinboard)$/) {
- $result.='\textbf{'.$1.'}';
- } elsif ($currentURL=~/\/ext\//) {
+ my ($currentURL,$mode)=@_;
+ if ($mode ne '') {$mode='\\'.$mode}
+ my $result.= &print_latex_header($mode);
+ if ($currentURL=~/\/ext\//) {
$result.=' \strut \\\\ THIS IS EXTERNAL RESOURCE WITH URL \strut \\\\ '.$currentURL.' ';
} else {
$result.=$currentURL;
@@ -754,7 +760,6 @@ ENDPART
}
$selectionmade = 1;
if ($currentURL=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) {
- &Apache::lonnet::logthis("II AMAM IN A WRONG PLACE");
my $rndseed=time;
my $texversion='';
if ($helper->{'VARS'}->{'ANSWER_TYPE'} ne 'only') {
@@ -771,7 +776,10 @@ ENDPART
$form{'grade_target'}='tex';
$form{'textwidth'}=&get_textwidth($helper,$LaTeXwidth);
$form{'problem_split'}=$parmhash{'problem_stream_switch'};
+ $form{'suppress_tries'}=$parmhash{'suppress_tries'};
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
+ $form{'print_discussions'}=$helper->{'VARS'}->{'PRINT_DISCUSSIONS'};
+ if ($helper->{'VARS'}->{'PRINT_DISCUSSIONS'} eq 'yes') {$form{'problem_split'}='yes';}
if ($helper->{'VARS'}->{'curseed'}) {
$rndseed=$helper->{'VARS'}->{'curseed'};
}
@@ -836,6 +844,7 @@ ENDPART
$form{'grade_target'}='tex';
$form{'textwidth'}=&get_textwidth($helper,$LaTeXwidth);
$form{'problem_split'}=$parmhash{'problem_stream_switch'};
+ $form{'suppress_tries'}=$parmhash{'suppress_tries'};
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
$form{'rndseed'}=$rndseed;
$texversion=&Apache::lonnet::ssi($urlp,%form);
@@ -877,7 +886,7 @@ ENDPART
}
if ($helper->{VARS}->{'construction'} eq '1') {$result=~s/(\\begin{document})/$1 \\fbox\{RANDOM SEED IS $rndseed\} /;}
$result .= '\end{document}';
- } elsif ($currentURL=~/\/(smppg|syllabus)$/) {
+ } elsif ($currentURL=~/\/(smppg|syllabus|aboutme|bulletinboard)$/) {
my %form;
$form{'grade_target'}='tex';
$form{'textwidth'}=&get_textwidth($helper,$LaTeXwidth);
@@ -886,8 +895,7 @@ ENDPART
my $texversion=&Apache::lonnet::ssi($currentURL,%form);
$result .= $texversion;
} else {
- &Apache::lonnet::logthis("IIII AMAM IN A WRONG PLACE");
- $result.=&unsupported($currentURL);
+ $result.=&unsupported($currentURL,$helper->{'VARS'}->{'LATEX_TYPE'});
}
} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') or
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or
@@ -907,7 +915,10 @@ ENDPART
$form{'grade_target'}='tex';
$form{'textwidth'}=&get_textwidth($helper,$LaTeXwidth);
$form{'problem_split'}=$parmhash{'problem_stream_switch'};
+ $form{'suppress_tries'}=$parmhash{'suppress_tries'};
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
+ $form{'print_discussions'}=$helper->{'VARS'}->{'PRINT_DISCUSSIONS'};
+ if ($helper->{'VARS'}->{'PRINT_DISCUSSIONS'} eq 'yes') {$form{'problem_split'}='yes';}
my $flag_latex_header_remove = 'NO';
my $flag_page_in_sequence = 'NO';
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'};
@@ -948,7 +959,7 @@ ENDPART
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
$texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
} else {
- if ($urlp=~/\.(problem|exam|quiz|library)$/) {
+ if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
$texversion.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($urlp).'}\vskip 0 mm ';
$texversion.=&path_to_problem ($urlp,$LaTeXwidth);
@@ -975,8 +986,22 @@ ENDPART
}
$result .= $texversion;
$flag_latex_header_remove = 'YES';
+ } elsif ($urlp=~/\/(smppg|syllabus|aboutme|bulletinboard)$/) {
+ my %form;
+ $form{'grade_target'}='tex';
+ $form{'textwidth'}=&get_textwidth($helper,$LaTeXwidth);
+ $form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
+ if ($urlp=~/\/syllabus$/) {$urlp=~s/\/res//;}
+ my $texversion=&Apache::lonnet::ssi($urlp,%form);
+ if ($flag_latex_header_remove ne 'NO') {
+ $texversion = &latex_header_footer_remove($texversion);
+ } else {
+ $texversion =~ s/\\end{document}/\\vskip 0\.5mm\\noindent\\makebox\[\\textwidth\/\$number_of_columns\]\[b\]\{\\hrulefill\}/;
+ }
+ $result .= $texversion;
+ $flag_latex_header_remove = 'YES';
} else {
- $texversion=&unsupported($urlp);
+ $texversion=&unsupported($urlp,$helper->{'VARS'}->{'LATEX_TYPE'});
if ($flag_latex_header_remove ne 'NO') {
$texversion = &latex_header_footer_remove($texversion);
} else {
@@ -1010,9 +1035,16 @@ ENDPART
my $flag_latex_header_remove = 'NO';
my %moreenv;
$moreenv{'textwidth'}=&get_textwidth($helper,$LaTeXwidth);
+ $moreenv{'print_discussions'}=$helper->{'VARS'}->{'PRINT_DISCUSSIONS'};
+ if ($helper->{'VARS'}->{'PRINT_DISCUSSIONS'} eq 'yes') {$moreenv{'problem_split'}='yes';}
my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$#students+1);
my $student_counter=-1;
foreach my $person (@students) {
+ my $duefile="/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.due";
+ if (-e $duefile) {
+ my $temp_file = Apache::File->new('>>'.$duefile);
+ print $temp_file "1969\n";
+ }
$student_counter++;
my $i=int($student_counter/$helper->{'VARS'}{'NUMBER_TO_PRINT'});
my ($output,$fullname)=&print_resources($r,$helper,$person,$type,\%moreenv,\@master_seq,$flag_latex_header_remove);
@@ -1093,7 +1125,7 @@ ENDPART
if ($urlp =~ m|/home/([^/]+)/public_html|) {
$urlp =~ s|/home/([^/]*)/public_html|/~$1|;
} else {
- $urlp =~ s|^/home/httpd/html||;
+ $urlp =~ s|^$Apache::lonnet::perlvar{'lonDocRoot'}||;
}
my $texversion=&Apache::lonnet::ssi($urlp,%form);
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
@@ -1145,9 +1177,9 @@ ENDPART
$result .= '\end{document}';
}
#-------------------------------------------------------- corrections for the different page formats
- $result = &page_format_transformation($papersize,$laystyle,$numberofcolumns,$helper->{'VARS'}->{'PRINT_TYPE'},$result,$helper->{VARS}->{'assignment'},$helper->{'VARS'}->{'TABLE_CONTENTS'},$helper->{'VARS'}->{'TABLE_INDEX'});
- $result = &latex_corrections($number_of_columns,$result);
- for (my $i=1;$i<=$#print_array;$i++) {$print_array[$i] = &latex_corrections($number_of_columns,$print_array[$i]);}
+ $result = &page_format_transformation($papersize,$laystyle,$numberofcolumns,$helper->{'VARS'}->{'PRINT_TYPE'},$result,$helper->{VARS}->{'assignment'},$helper->{'VARS'}->{'TABLE_CONTENTS'},$helper->{'VARS'}->{'TABLE_INDEX'},$selectionmade);
+ $result = &latex_corrections($number_of_columns,$result,$selectionmade);
+ for (my $i=1;$i<=$#print_array;$i++) {$print_array[$i] = &latex_corrections($number_of_columns,$print_array[$i],$selectionmade);}
#changes page's parameters for the one column output
if ($numberofcolumns == 1) {
$result =~ s/\\textwidth\s*=\s*\d*\.?\d*\s*(cm|mm|in)/\\textwidth= $helper->{'VARS'}->{'pagesize.width'} $helper->{'VARS'}->{'pagesize.widthunit'} /;
@@ -1221,6 +1253,7 @@ ENDPART
&Apache::lonnet::appenv('cgi.'.$identifier.'.file' => $filename,
'cgi.'.$identifier.'.layout' => $laystyle,
'cgi.'.$identifier.'.numcol' => $numberofcolumns,
+ 'cgi.'.$identifier.'.paper' => $papersize,
'cgi.'.$identifier.'.selection' => $selectionmade,
'cgi.'.$identifier.'tableofcontents' => $helper->{'VARS'}->{'TABLE_CONTENTS'},
'cgi.'.$identifier.'tableofindex' => $helper->{'VARS'}->{'TABLE_INDEX'},
@@ -1230,7 +1263,9 @@ ENDPART
'cgi.'.$identifier.'backref' => $URLback,);
$r->print(<
+Continue