--- loncom/interface/lonprintout.pm 2005/12/06 03:58:14 1.400
+++ loncom/interface/lonprintout.pm 2006/02/05 18:43:40 1.419
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.400 2005/12/06 03:58:14 albertel Exp $
+# $Id: lonprintout.pm,v 1.419 2006/02/05 18:43:40 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -750,15 +750,14 @@ sub details_for_menu {
sub latex_corrections {
-
- my ($number_of_columns,$result,$selectionmade) = @_;
+ my ($number_of_columns,$result,$selectionmade,$answer_mode) = @_;
# $result =~ s/\\includegraphics{/\\includegraphics\[width=\\minipagewidth\]{/g;
$result =~ s/\$number_of_columns/$number_of_columns/g;
- 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/;
+ if ($selectionmade eq '1' || $answer_mode eq 'only') {
+ $result =~ s/(\\end{document})/\\strut\\vskip 0 mm\\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{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/;
}
$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;
@@ -817,11 +816,12 @@ sub IndexCreation {
sub print_latex_header {
my $mode=shift;
- my $output='\documentclass[letterpaper]{article}';
+ my $output='\documentclass[letterpaper,twoside]{article}';
if (($mode eq 'batchmode') || (!$perm{'pav'})) {
$output.='\batchmode';
}
$output.='\newcommand{\keephidden}[1]{}\renewcommand{\deg}{$^{\circ}$}'."\n".
+ '\usepackage{multirow}'."\n".
'\usepackage{longtable}\usepackage{textcomp}\usepackage{makeidx}'."\n".
'\usepackage[dvips]{graphicx}\usepackage{epsfig}'."\n".
'\usepackage{wrapfig}'.
@@ -844,16 +844,19 @@ sub print_latex_header {
sub path_to_problem {
my ($urlp,$colwidth)=@_;
+ $urlp=&Apache::lonnet::clutter($urlp);
+
my $newurlp = '';
$colwidth=~s/\s*mm\s*$//;
#characters average about 2 mm in width
if (length($urlp)*2 > $colwidth) {
- my @elements = split '/',$urlp;
+ my @elements = split('/',$urlp);
my $curlength=0;
foreach my $element (@elements) {
+ if ($element eq '') { next; }
if ($curlength+(length($element)*2) > $colwidth) {
- $newurlp .= '|\vskip -1 mm \noindent \verb|';
- $curlength=0;
+ $newurlp .= '|\vskip -1 mm \verb|';
+ $curlength=length($element)*2;
} else {
$curlength+=length($element)*2;
}
@@ -892,11 +895,14 @@ sub get_textwidth {
sub unsupported {
- my ($currentURL,$mode)=@_;
+ my ($currentURL,$mode,$symb)=@_;
if ($mode ne '') {$mode='\\'.$mode}
my $result.= &print_latex_header($mode);
- if ($currentURL=~/\/ext\//) {
- $result.=' \strut \\\\ THIS IS EXTERNAL RESOURCE WITH URL \strut \\\\ '.$currentURL.' ';
+ if ($currentURL=~m|^(/adm/wrapper/)?ext/|) {
+ $currentURL=~s|^(/adm/wrapper/)?ext/|http://|;
+ my $title=&Apache::lonnet::gettitle($symb);
+ $title = &Apache::lonxml::latex_special_symbols($title);
+ $result.=' \strut \\\\ '.$title.' \strut \\\\ '.$currentURL.' ';
} else {
$result.=$currentURL;
}
@@ -957,15 +963,20 @@ sub recently_generated {
# A reference to a page break hash.
#
#
+#use Data::Dumper;
+#sub dump_helper_vars {
+# my ($helper) = @_;
+# my $helpervars = Dumper($helper->{'VARS'});
+# &Apache::lonnet::logthis("Dump of helper vars:\n $helpervars");
+#}
sub get_page_breaks {
my ($helper) = @_;
my %page_breaks;
-
+
foreach my $break (split /\|\|\|/, $helper->{'VARS'}->{'FINISHPAGE'}) {
$page_breaks{$break} = 1;
}
-
return %page_breaks;
}
@@ -1005,7 +1016,9 @@ $html
LON-CAPA output for printing
$bodytag
+
Please stand by while processing your print request, this may take some time ...
+
ENDPART
@@ -1073,7 +1086,8 @@ ENDPART
$cleanURL=$currentURL;
}
$selectionmade = 1;
- if ($cleanURL=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) {
+ if ($cleanURL!~m|^/adm/|
+ && $cleanURL=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) {
my $rndseed=time;
my $texversion='';
if ($helper->{'VARS'}->{'ANSWER_TYPE'} ne 'only') {
@@ -1098,6 +1112,7 @@ ENDPART
&Apache::lonnet::appenv(%moreenv);
&Apache::lonnet::delenv('form.counter');
&Apache::lonxml::init_counter();
+ &Apache::lonxml::store_counter();
$resources_printed .= $currentURL.':';
$texversion.=&Apache::lonnet::ssi($currentURL,%form);
&Apache::lonnet::delenv('form.counter');
@@ -1109,6 +1124,9 @@ ENDPART
$form{'grade_target'}='answer';
$form{'answer_output_mode'}='tex';
$form{'rndseed'}=$rndseed;
+ if ($helper->{'VARS'}->{'probstatus'} eq 'exam') {
+ $form{'problemtype'}='exam';
+ }
$resources_printed .= $currentURL.':';
my $answer=&Apache::lonnet::ssi($currentURL,%form);
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
@@ -1138,7 +1156,8 @@ ENDPART
if ($currentURL=~m/\.page\s*$/) {
($result,$number_of_columns) = &page_cleanup($result);
}
- } elsif ($currentURL=~/\.sequence$/ && $helper->{'VARS'}->{'construction'} eq '1') {
+ } elsif ($cleanURL!~m|^/adm/|
+ && $currentURL=~/\.sequence$/ && $helper->{'VARS'}->{'construction'} eq '1') {
#printing content of sequence from the construction space
my $flag_latex_header_remove = 'NO';
my $rndseed=time;
@@ -1177,7 +1196,7 @@ ENDPART
} else {
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
$texversion.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($helper->{'VARS'}->{'symb'}).'}\vskip 0 mm ';
- $texversion.=&path_to_problem ($currentURL,$LaTeXwidth);
+ $texversion.=&path_to_problem($urlp,$LaTeXwidth);
$texversion.='\vskip 1 mm '.$answer.'\end{document}';
}
}
@@ -1207,7 +1226,8 @@ ENDPART
my $texversion=&Apache::lonnet::ssi($currentURL,%form);
$result .= $texversion;
} else {
- $result.=&unsupported($currentURL,$helper->{'VARS'}->{'LATEX_TYPE'});
+ $result.=&unsupported($currentURL,$helper->{'VARS'}->{'LATEX_TYPE'},
+ $helper->{'VARS'}->{'symb'});
}
} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') or
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or
@@ -1237,6 +1257,8 @@ ENDPART
my $prevassignment='';
&Apache::lonnet::delenv('form.counter');
&Apache::lonxml::init_counter();
+ &Apache::lonxml::store_counter();
+ my $pbreakresources = keys %page_breaks;
for (my $i=0;$i<=$#master_seq;$i++) {
# Note due to document structure, not allowed to put \newpage
@@ -1247,16 +1269,18 @@ ENDPART
$result.="\\newpage\n";
}
}
- my (undef,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]);
+ my ($sequence,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]);
$urlp=&Apache::lonnet::clutter($urlp);
$form{'symb'}=$master_seq[$i];
- my ($sequence)=&Apache::lonnet::decode_symb($master_seq[$i]);
- my $assignment=&Apache::lonxml::latex_special_symbols(&Apache::lonnet::gettitle($sequence),'header'); #tittle of the assignment which contains this problem
+
+ my $assignment=&Apache::lonxml::latex_special_symbols(&Apache::lonnet::gettitle($sequence),'header'); #title of the assignment which contains this problem
if ($selectionmade==7) {$helper->{VARS}->{'assignment'}=$assignment;}
if ($i==0) {$prevassignment=$assignment;}
my $texversion='';
- if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) {
+ if ($urlp!~m|^/adm/|
+ && $urlp=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) {
$resources_printed .= $urlp.':';
+ my $pre_counter=$env{'form.counter'};
$texversion.=&Apache::lonnet::ssi($urlp,%form);
if ($urlp=~/\.page$/) {
($texversion,my $number_of_columns_page) = &page_cleanup($texversion);
@@ -1264,11 +1288,9 @@ ENDPART
$texversion =~ s/\\end{document}\d*/\\end{document}/;
$flag_page_in_sequence = 'YES';
}
- my $lonidsdir=$r->dir_config('lonIDsDir');
- my $envfile=$env{'user.environment'};
- $envfile=~/\/([^\/]+)\.id$/;
- $envfile=$1;
- &Apache::lonnet::transfer_profile_to_env($lonidsdir,$envfile);
+ my ($envfile) = ($env{'user.environment'} =~m|/([^/]+)\.id$| );
+ &Apache::lonnet::transfer_profile_to_env($r->dir_config('lonIDsDir'),
+ $envfile);
my $current_counter=$env{'form.counter'};
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
@@ -1277,6 +1299,7 @@ ENDPART
$answerform{'grade_target'}='answer';
$answerform{'answer_output_mode'}='tex';
$resources_printed .= $urlp.':';
+ &Apache::lonnet::appenv(('form.counter' => $pre_counter));
my $answer=&Apache::lonnet::ssi($urlp,%answerform);
&Apache::lonnet::appenv(('form.counter' => $current_counter));
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
@@ -1284,7 +1307,7 @@ ENDPART
} else {
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.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($master_seq[$i]).'}\vskip 0 mm ';
$texversion.=&path_to_problem ($urlp,$LaTeXwidth);
$texversion.='\vskip 1 mm '.$answer;
} else {
@@ -1305,7 +1328,11 @@ ENDPART
my $courseidinfo = &get_course();
if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo }
$prevassignment=$assignment;
- $result .='\newpage \noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$name.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$assignment.'}}} \vskip 5 mm ';
+ if ($numberofcolumns eq '1') {
+ $result .='\newpage \noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$name.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$assignment.'}}} \vskip 5 mm ';
+ } else {
+ $result .='\newpage \noindent\parbox{\minipagewidth}{\noindent\\fancyhead[LO]{\\textit{\\textbf{'.$name.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$assignment.'}}} \vskip 5 mm ';
+ }
}
$result .= $texversion;
$flag_latex_header_remove = 'YES';
@@ -1322,7 +1349,8 @@ ENDPART
$result .= $texversion;
$flag_latex_header_remove = 'YES';
} else {
- $texversion=&unsupported($urlp,$helper->{'VARS'}->{'LATEX_TYPE'});
+ $texversion=&unsupported($urlp,$helper->{'VARS'}->{'LATEX_TYPE'},
+ $master_seq[$i]);
if ($flag_latex_header_remove ne 'NO') {
$texversion = &latex_header_footer_remove($texversion);
} else {
@@ -1392,7 +1420,8 @@ ENDPART
$person,$type,
\%moreenv,\@master_seq,
$flag_latex_header_remove,
- $LaTeXwidth);
+ $LaTeXwidth,
+ $number_of_columns);
$resources_printed .= ":";
$print_array[$i].=$output;
$student_names[$i].=$person.':'.$fullname.'_END_';
@@ -1568,8 +1597,14 @@ ENDPART
}
#-------------------------------------------------------- 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'},$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);}
+ $result = &latex_corrections($number_of_columns,$result,$selectionmade,
+ $helper->{'VARS'}->{'ANSWER_TYPE'});
+ for (my $i=1;$i<=$#print_array;$i++) {
+ $print_array[$i] =
+ &latex_corrections($number_of_columns,$print_array[$i],
+ $selectionmade,
+ $helper->{'VARS'}->{'ANSWER_TYPE'});
+ }
#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'} /;
@@ -1691,7 +1726,7 @@ sub get_CODE {
sub print_resources {
my ($r,$helper,$person,$type,$moreenv,$master_seq,$remove_latex_header,
- $LaTeXwidth)=@_;
+ $LaTeXwidth,$number_of_columns)=@_;
my $current_output = '';
my $printed = '';
my ($username,$userdomain,$usersection) = split /:/,$person;
@@ -1706,8 +1741,10 @@ sub print_resources {
#current student, and produces output
&Apache::lonnet::delenv('form.counter');
&Apache::lonxml::init_counter();
-
+ &Apache::lonxml::store_counter();
my %page_breaks = &get_page_breaks($helper);
+ my @format_array = split(/\|/,$helper->{'VARS'}->{'FORMAT'});
+ my $columns_in_format = $format_array[1];
foreach my $curresline (@{$master_seq}) {
if (defined $page_breaks{$curresline}) {
@@ -1720,14 +1757,15 @@ sub print_resources {
($curresline!~ m/\.(problem|exam|quiz|assess|survey|form|library)$/)) ) {
my ($map,$id,$res_url) = &Apache::lonnet::decode_symb($curresline);
if (&Apache::lonnet::allowed('bre',$res_url)) {
- if ($res_url=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) {
+ if ($res_url!~m|^ext/|
+ && $res_url=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) {
$printed .= $curresline.':';
+ my $pre_counter=$env{'form.counter'};
my $rendered = &Apache::loncommon::get_student_view($curresline,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv);
- my $lonidsdir=$r->dir_config('lonIDsDir');
- my $envfile=$env{'user.environment'};
- $envfile=~/\/([^\/]+)\.id$/;
- $envfile=$1;
- &Apache::lonnet::transfer_profile_to_env($lonidsdir,$envfile);
+ my ($envfile) =
+ ( $env{'user.environment'} =~ m|/([^/]+)\.id$| );
+ &Apache::lonnet::transfer_profile_to_env($r->dir_config('lonIDsDir'),
+ $envfile);
my $current_counter=$env{'form.counter'};
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
@@ -1735,6 +1773,7 @@ sub print_resources {
my %answerenv = %{$moreenv};
$answerenv{'answer_output_mode'}='tex';
$answerenv{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
+ &Apache::lonnet::appenv(('form.counter' => $pre_counter));
my $ansrendered = &Apache::loncommon::get_student_answers($curresline,$username,$userdomain,$env{'request.course.id'},%answerenv);
&Apache::lonnet::appenv(('form.counter' => $current_counter));
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
@@ -1742,7 +1781,7 @@ sub print_resources {
} else {
$rendered=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
$rendered.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($curresline).'}\vskip 0 mm ';
- $rendered.=&path_to_problem ($curresline,$LaTeXwidth);
+ $rendered.=&path_to_problem($res_url,$LaTeXwidth);
$rendered.='\vskip 1 mm '.$ansrendered;
}
}
@@ -1755,20 +1794,19 @@ sub print_resources {
} elsif ($res_url=~/\/(smppg|syllabus|aboutme|bulletinboard)$/) {
$printed .= $curresline.':';
my $rendered = &Apache::loncommon::get_student_view($curresline,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv);
- my $lonidsdir=$r->dir_config('lonIDsDir');
- my $envfile=$env{'user.environment'};
- $envfile=~/\/([^\/]+)\.id$/;
- $envfile=$1;
- &Apache::lonnet::transfer_profile_to_env($lonidsdir,$envfile);
+ my ($envfile) =
+ ( $env{'user.environment'} =~ m|/([^/]+)\.id$| );
+ &Apache::lonnet::transfer_profile_to_env($r->dir_config('lonIDsDir'),
+ $envfile);
my $current_counter=$env{'form.counter'};
if ($remove_latex_header eq 'YES') {
$rendered = &latex_header_footer_remove($rendered);
} else {
$rendered =~ s/\\end{document}//;
}
- $current_output .= $rendered.'\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\strut \vskip 0 mm \strut ';
+ $current_output .= $rendered.'\vskip 0.5mm\noindent\makebox[\textwidth/'.$number_of_columns.'][b]{\hrulefill}\strut \vskip 0 mm \strut ';
} else {
- my $rendered = &unsupported($res_url,$helper->{'VARS'}->{'LATEX_TYPE'});
+ my $rendered = &unsupported($res_url,$helper->{'VARS'}->{'LATEX_TYPE'},$curresline);
if ($remove_latex_header ne 'NO') {
$rendered = &latex_header_footer_remove($rendered);
} else {
@@ -1786,11 +1824,20 @@ sub print_resources {
if ($usersection ne '') {$courseidinfo.=' - Sec. '.$usersection}
my $currentassignment=&Apache::lonxml::latex_special_symbols($helper->{VARS}->{'assignment'},'header');
if ($current_output=~/\\documentclass/) {
- $current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent\\lhead{\\textit{\\textbf{$fullname}}$courseidinfo \\hfill \\thepage \\\\ \\textit{$currentassignment}$namepostfix}}\\vskip 5 mm /;
+ if ($columns_in_format == 1) {
+ $current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent\\lhead{\\textit{\\textbf{$fullname}}$courseidinfo \\hfill \\thepage \\\\ \\textit{$currentassignment}$namepostfix}}\\vskip 5 mm /;
+ } else {
+ $current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent\\fancyhead[LO]{\\textit{\\textbf{$fullname}}$courseidinfo \\hfill \\thepage \\\\ \\textit{$currentassignment}$namepostfix}}\\vskip 5 mm /;
+
+ }
} else {
my $blankpages = '';
for (my $j=0;$j<$helper->{'VARS'}->{'EMPTY_PAGES'};$j++) {$blankpages.='\clearpage\strut\clearpage';}
- $current_output = '\strut\vspace*{-6 mm}\\newline\\noindent\\makebox[\\textwidth/$number_of_columns][b]{\\hrulefill}\vspace*{-2 mm}\\newline\\noindent{\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License }\\newpage '.$blankpages.'\setcounter{page}{1}\noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$fullname.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$currentassignment.'}'.$namepostfix.'}} \vskip 5 mm '.$current_output;
+ if ($columns_in_format == 1) {
+ $current_output = '\strut\vspace*{-6 mm}\\newline\\noindent\\makebox[\\textwidth/$number_of_columns][b]{\\hrulefill}\vspace*{-2 mm}\\newline\\noindent{\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License }\\newpage '.$blankpages.'\setcounter{page}{1}\noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$fullname.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$currentassignment.'}'.$namepostfix.'}} \vskip 5 mm '.$current_output;
+ } else {
+ $current_output = '\strut\vspace*{-6 mm}\\newline\\noindent\\makebox[\\textwidth/$number_of_columns][b]{\\hrulefill}\vspace*{-2 mm}\\newline\\noindent{\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License }\\newpage '.$blankpages.'\setcounter{page}{1}\noindent\parbox{\minipagewidth}{\noindent\\fancyhead[LO]{\\textit{\\textbf{'.$fullname.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$currentassignment.'}'.$namepostfix.'}} \vskip 5 mm '.$current_output;
+ }
}
return ($current_output,$fullname, $printed);
@@ -1802,34 +1849,17 @@ sub handler {
&init_perm();
-# my $loaderror=&Apache::lonnet::overloaderror($r);
-# if ($loaderror) { return $loaderror; }
-# $loaderror=
-# &Apache::lonnet::overloaderror($r,
-# $env{'course.'.$env{'request.course.id'}.'.home'});
-# if ($loaderror) { return $loaderror; }
+
my $helper = printHelper($r);
if (!ref($helper)) {
return $helper;
}
-# my $key;
-# foreach $key (keys %{$helper->{'VARS'}}) {
-# $r->print(' '.$key.'->'.$helper->{'VARS'}->{$key}.'<- ');
-# }
-# foreach $key (keys %env) {
-# $r->print(' '.$key.'->'.$env{$key}.'<- ');
-# }
-# return OK;
my %parmhash=&Apache::lonnet::coursedescription($env{'request.course.id'});
-# my $key;
-# foreach $key (keys %parmhash) {
-# $r->print(' '.$key.'->'.$parmhash{$key}.'<- ');
-# }
-#
+
# If a figure conversion queue file exists for this user.domain
@@ -1853,7 +1883,7 @@ sub addMessage {
Apache::lonhelper::message->new();
}
-use Data::Dumper;
+
sub init_perm {
undef(%perm);
@@ -1915,7 +1945,7 @@ sub printHelper {
# But we only do this in the initial state so that they are allowed to change.
#
- $helper->{VARS}->{FINISHPAGE} = '';
+ # $helper->{VARS}->{FINISHPAGE} = '';
&Apache::loncommon::restore_course_settings('print',
{'pagebreaks' => 'scalar',
@@ -1934,7 +1964,7 @@ sub printHelper {
}
}
-
+
# This will persistently load in the data we want from the
# very first screen.
@@ -1952,6 +1982,7 @@ sub printHelper {
if ($env{'form.url'}) {
$helper->{VARS}->{'symb'} = &Apache::lonnet::symbread($helper->{VARS}->{'postdata'});
}
+
}
if ($env{'form.symb'}) {
@@ -2038,9 +2069,7 @@ sub printHelper {
$helper->declareVar('SEQUENCE');
- # Useful for debugging: Dump the help vars
-# $r->print(Dumper($helper->{VARS}));
-# $r->print($map);
+
# If we're in a sequence...
if (($helper->{'VARS'}->{'construction'} ne '1') &&
@@ -2159,19 +2188,17 @@ CHOOSE_STUDENTS
}
- my %all_codes = &Apache::lonnet::get('CODEs',
- \@names, $cdom,$cnum);
my %code_values;
- my @all_code_array;
- foreach my $key (keys %all_codes) {
+ my %codes_to_print;
+ foreach my $key (@names) {
%code_values = &Apache::grades::get_codes($key, $cdom, $cnum);
- foreach my $key (keys %code_values) {
- push (@all_code_array, "$key");
+ foreach my $key (keys(%code_values)) {
+ $codes_to_print{$key} = 1;
}
}
my $code_selection = " \n";
- foreach my $code (sort {uc($a) cmp uc($b)} @all_code_array) {
+ foreach my $code (sort {uc($a) cmp uc($b)} (keys(%codes_to_print))) {
my $choice = $code;
if ($code =~ /^[A-Z]+$/) { # Alpha code
$choice = &letters_to_num($code);
@@ -2194,8 +2221,7 @@ CHOOSE_STUDENTS
&Apache::lonxml::xmlparse($r, 'helper', <
PAGESIZE
-
- Number of anonymous assignments to print?
+ Number of anonymous assignments to print:
if (((\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}+0) < 1) &&
@@ -2208,8 +2234,19 @@ CHOOSE_STUDENTS
- Value of CODE to print?
-
+ Names to store the CODEs under for later:
+
+
+
+ Bubble sheet type:
+
+
+ $codechoice
+
+
+
+ Enter a CODE to print:
+
if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'} &&
!\$helper->{'VARS'}{'REUSE_OLD_CODES'} &&
@@ -2221,28 +2258,13 @@ CHOOSE_STUDENTS
}
-
- Choose single code from list
-
-
- $code_selection
-
-
- Names to store the CODEs under for later:
-
-
-
- Bubble sheet type:
-
-
- $codechoice
-
-
-
+
Reprint a set of saved CODEs:
+
$namechoice
+
$resource_selector
@@ -2290,7 +2312,7 @@ CHOOSE_STUDENTS1
&Apache::lonxml::xmlparse($r, 'helper', <
PAGESIZE
- Number of anonymous assignments to print?
+ Number of anonymous assignments to print:
if (((\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}+0) < 1) &&
@@ -2303,8 +2325,19 @@ CHOOSE_STUDENTS1
- Value of CODE to print?
-
+ Names to store the CODEs under for later:
+
+
+
+ Bubble sheet type:
+
+
+ $codechoice
+
+
+
+ Enter a CODE to print:
+
if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'} &&
!\$helper->{'VARS'}{'REUSE_OLD_CODES'} &&
@@ -2316,28 +2349,13 @@ CHOOSE_STUDENTS1
}
-
- Choose single code from list
-
-
- $code_selection
-
-
- Names to store the CODEs under for later:
-
-
-
- Bubble sheet type:
-
-
- $codechoice
-
-
-
+
Reprint a set of saved CODEs:
+
$namechoice
+
$resource_selector
@@ -2387,7 +2405,6 @@ CHOOSE_FROM_SUBDIR
return $urlValue;
return \$res->hasResource(\$res,sub { return !\$_[0]->is_sequence() },0,0);
-
@@ -2504,7 +2521,7 @@ CHOOSE_FROM_ANY_SEQUENCE
Use style file:
- Select style file
+ Select style file
Show all foils?
@@ -2533,6 +2550,7 @@ RNDSEED
$helper->process();
+
# MANUAL BAILOUT CONDITION:
# If we're in the "final" state, bailout and return to handler
if ($helper->{STATE} eq 'FINAL') {