--- loncom/interface/lonprintout.pm 2005/01/04 21:59:22 1.349 +++ loncom/interface/lonprintout.pm 2005/01/05 12:07:27 1.350 @@ -1,7 +1,7 @@ -# The LearningOnline Network +# The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.349 2005/01/04 21:59:22 albertel Exp $ +# $Id: lonprintout.pm,v 1.350 2005/01/05 12:07:27 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1014,10 +1014,22 @@ ENDPART my $flag_latex_header_remove = 'NO'; my $flag_page_in_sequence = 'NO'; my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; + my @page_breaks = split /\|\|\|/, $helper->{'VARS'}->{'FINISHPAGE'}; + my $page_index = 0; my $prevassignment=''; &Apache::lonnet::delenv('form.counter'); &Apache::lonxml::init_counter(); for (my $i=0;$i<=$#master_seq;$i++) { + + # Note due to document structure, not allowed to put \newpage + # prior to the first resource + + if (($master_seq[$i] eq $page_breaks[$page_index])) { + $page_index++; + if($i != 0) { + $result.="\\newpage\n"; + } + } my (undef,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]); $urlp=&Apache::lonnet::clutter($urlp); $form{'symb'}=$master_seq[$i]; @@ -1135,6 +1147,7 @@ ENDPART $helper->{'VARS'}->{'NUMBER_TO_PRINT'}=$#students+1; } my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; + #loop over students my $flag_latex_header_remove = 'NO'; my %moreenv; @@ -1145,6 +1158,7 @@ ENDPART my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$#students+1,'inline','75'); 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); @@ -1411,11 +1425,25 @@ sub print_resources { $namepostfix="\\\\Name: "; $fullname = "CODE - ".$moreenv->{'CODE'}; } + my @page_breaks = split /\|\|\|/,$helper->{'VARS'}->{'FINISHPAGE'}; + my $page_index = 0; + my $i = 0; #goes through all resources, checks if they are available for #current student, and produces output &Apache::lonnet::delenv('form.counter'); &Apache::lonxml::init_counter(); foreach my $curresline (@{$master_seq}) { + if ($curresline eq $page_breaks[$page_index]) { + # + # Due to document structure, we cannot put a + # page break prior to the first document + # + if($i != 0) { + $current_output.= "\\newpage\n"; + } + $page_index++; + } + $i++; if ( !($type eq 'problems' && ($curresline!~ m/\.(problem|exam|quiz|assess|survey|form|library)$/)) ) { my ($map,$id,$res_url) = &Apache::lonnet::decode_symb($curresline); @@ -1527,6 +1555,9 @@ sub handler { # } # return OK; + + + &output_data($r,$helper,\%parmhash); return OK; } @@ -1692,6 +1723,7 @@ sub printHelper { # If we're in a sequence... if (($helper->{'VARS'}->{'construction'} ne '1') && + $helper->{VARS}->{'postdata'} && $helper->{VARS}->{'assignment'}) { # Allow problems from sequence @@ -1708,7 +1740,7 @@ sub printHelper { return $isProblem; $map return $symbFilter; -