--- loncom/interface/lonprintout.pm 2005/02/17 23:19:44 1.362
+++ loncom/interface/lonprintout.pm 2005/02/22 23:32:48 1.365
@@ -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.365 2005/02/22 23:32:48 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -781,6 +781,27 @@ 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 +840,17 @@ $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_breaks = &get_page_breaks($helper);
+
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 +1044,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 +1455,14 @@ 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_breaks = &get_page_breaks($helper);
+
foreach my $curresline (@{$master_seq}) {
if (defined $page_breaks{$curresline}) {
if($i != 0) {
@@ -1609,6 +1636,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.
@@ -1783,7 +1818,6 @@ HELPERFRAGMENT
suppressEmptySequences='0' addstatus='1' closeallpages='1'>
PAGESIZEreturn $isNotMap;
- $map
return $symbFilter;