--- loncom/interface/lonprintout.pm 2005/02/17 23:19:44 1.362 +++ loncom/interface/lonprintout.pm 2005/02/22 11:43:05 1.363 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.362 2005/02/17 23:19:44 albertel Exp $ +# $Id: lonprintout.pm,v 1.363 2005/02/22 11:43:05 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -781,6 +781,29 @@ sub unsupported { } +# +# Retrieve the hash of page breaks. +# +# Inputs: +# helper - reference to helper object. +# Outputs +# A reference to a page break hash. +# +# + +sub get_page_breaks { + my ($helper) = @_; + my %page_breaks; + + + + foreach my $break (split /\|\|\|/, $helper->{'VARS'}->{'FINISHPAGE'}) { + $page_breaks{$break} = 1; + } + + return \%page_breaks; +} + sub output_data { my ($r,$helper,$rparmhash) = @_; my %parmhash = %$rparmhash; @@ -819,6 +842,20 @@ $bodytag Please stand by while processing your print request, this may take some time ... ENDPART + + # fetch the pagebreaks and store them in the course environment + # The page breaks will be pulled into the hash %page_breaks which is + # indexed by symb and contains 1's for each break. + + $ENV{'form.pagebreaks'} = $helper->{'VARS'}->{'FINISHPAGE'}; + &Apache::loncommon::store_course_settings('print', + {'pagebreaks' => 'scalar'}); + + my $page_hashref = &get_page_breaks($helper); + my %page_breaks = %$page_hashref; + + + my $format_from_helper = $helper->{'VARS'}->{'FORMAT'}; my ($result,$selectionmade) = ('',''); my $number_of_columns = 1; #used only for pages to determine the width of the cell @@ -1012,10 +1049,6 @@ ENDPART my $flag_latex_header_remove = 'NO'; my $flag_page_in_sequence = 'NO'; my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; - my %page_breaks; - foreach my $break (split /\|\|\|/, $helper->{'VARS'}->{'FINISHPAGE'}) { - $page_breaks{$break} = 1; - } my $prevassignment=''; &Apache::lonnet::delenv('form.counter'); &Apache::lonxml::init_counter(); @@ -1427,15 +1460,15 @@ sub print_resources { $namepostfix="\\\\Name: "; $fullname = "CODE - ".$moreenv->{'CODE'}; } - my %page_breaks; - foreach my $break (split /\|\|\|/,$helper->{'VARS'}->{'FINISHPAGE'}) { - $page_breaks{$break} = 1; - } 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(); + + my $page_hashref = &get_page_breaks($helper); + my %page_breaks = %$page_hashref; + foreach my $curresline (@{$master_seq}) { if (defined $page_breaks{$curresline}) { if($i != 0) { @@ -1609,6 +1642,14 @@ sub printHelper { $helper->declareVar('assignment'); $helper->declareVar('style_file'); $helper->declareVar('student_sort'); + $helper->declareVar('FINISHPAGE'); + + # The page breaks can get loaded initially from the course environment: + + &Apache::loncommon::restore_course_settings('print', + {'pagebreaks' => 'scalar'}); + + $helper->{VARS}->{FINISHPAGE} = $ENV{'form.pagebreaks'}; # This will persistently load in the data we want from the # very first screen.