version 1.265, 2003/11/11 19:32:22
|
version 1.280, 2004/02/26 20:50:00
|
Line 515 sub page_cleanup {
|
Line 515 sub page_cleanup {
|
|
|
sub details_for_menu { |
sub details_for_menu { |
|
|
my $name_of_resourse = $hash{'title_'.$hash{'ids_'.$ENV{'form.postdata'}}}; |
my $name_of_resourse = &Apache::lonnet::gettitle($ENV{'form.postdata'}); |
my $symbolic = &Apache::lonnet::symbread($ENV{'form.postdata'}); |
my $symbolic = &Apache::lonnet::symbread($ENV{'form.postdata'}); |
my ($map,$id,$resource)=&Apache::lonnet::decode_symb($symbolic); |
my ($map,$id,$resource)=&Apache::lonnet::decode_symb($symbolic); |
$map=&Apache::lonnet::clutter($map); |
$map=&Apache::lonnet::clutter($map); |
my $name_of_sequence; |
my $name_of_sequence = &Apache::lonnet::gettitle($map); |
$name_of_sequence = $hash{'title_'.$hash{'ids_'.$map}}; |
|
if ($name_of_sequence =~ /^\s*$/) { |
if ($name_of_sequence =~ /^\s*$/) { |
$map =~ m|([^/]+)$|; |
$map =~ m|([^/]+)$|; |
$name_of_sequence = $1; |
$name_of_sequence = $1; |
} |
} |
my $name_of_map = $hash{'title_'.$hash{'ids_'.&Apache::lonnet::clutter($ENV{'request.course.uri'})}}; |
my $name_of_map = &Apache::lonnet::gettitle($ENV{'request.course.uri'}); |
if ($name_of_map =~ /^\s*$/) { |
if ($name_of_map =~ /^\s*$/) { |
$ENV{'request.course.uri'} =~ m|([^/]+)$|; |
$ENV{'request.course.uri'} =~ m|([^/]+)$|; |
$name_of_map = $1; |
$name_of_map = $1; |
Line 648 sub path_to_problem {
|
Line 647 sub path_to_problem {
|
return '{\small\noindent\verb|'.$newurlp.'|\vskip 0 mm}'; |
return '{\small\noindent\verb|'.$newurlp.'|\vskip 0 mm}'; |
} |
} |
|
|
|
sub recalcto_mm { |
|
my $textwidth=shift; |
|
my $LaTeXwidth; |
|
if ($textwidth=~/(\d+\.?\d*)\s*cm/) { |
|
$LaTeXwidth = $1*10; |
|
} elsif ($textwidth=~/(\d+\.?\d*)\s*mm/) { |
|
$LaTeXwidth = $1; |
|
} elsif ($textwidth=~/(\d+\.?\d*)\s*in/) { |
|
$LaTeXwidth = $1*25.4; |
|
} |
|
$LaTeXwidth.=' mm'; |
|
return $LaTeXwidth; |
|
} |
|
|
sub output_data { |
sub output_data { |
my ($r,$helper,$rparmhash) = @_; |
my ($r,$helper,$rparmhash) = @_; |
my %parmhash = %$rparmhash; |
my %parmhash = %$rparmhash; |
Line 697 ENDPART
|
Line 710 ENDPART
|
} |
} |
my ($textwidth,$textheight,$oddoffset,$evenoffset) = &page_format($papersize,$laystyle,$numberofcolumns); |
my ($textwidth,$textheight,$oddoffset,$evenoffset) = &page_format($papersize,$laystyle,$numberofcolumns); |
my $assignment = $ENV{'form.assignment'}; |
my $assignment = $ENV{'form.assignment'}; |
my $LaTeXwidth; |
my $LaTeXwidth=&recalcto_mm($textwidth); |
if ($textwidth=~/(\d+\.?\d*)\s*cm/) { |
my @print_array=(); |
$LaTeXwidth = $1*10; |
my @student_names=(); |
} elsif ($textwidth=~/(\d+\.?\d*)\s*mm/) { |
|
$LaTeXwidth = $1; |
|
} elsif ($textwidth=~/(\d+\.?\d*)\s*in/) { |
|
$LaTeXwidth = $1*25.4; |
|
} |
|
$LaTeXwidth.=' mm'; |
|
|
|
if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'current_document') { |
if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'current_document') { |
#-- single document - problem, page, html, xml, ... |
#-- single document - problem, page, html, xml, ... |
Line 733 ENDPART
|
Line 740 ENDPART
|
} |
} |
my %form; |
my %form; |
$form{'grade_target'}='tex'; |
$form{'grade_target'}='tex'; |
$form{'textwidth'}=$LaTeXwidth; |
if ($helper->{'VARS'}->{'pagesize.width'}=~/\d+/ && |
|
$helper->{'VARS'}->{'pagesize.widthunit'}=~/\w+/) { |
|
$form{'textwidth'}=&recalcto_mm($helper->{'VARS'}->{'pagesize.width'}.' '.$helper->{'VARS'}->{'pagesize.widthunit'}); |
|
} else { |
|
$form{'textwidth'}=$LaTeXwidth; |
|
} |
$form{'problem_split'}=$parmhash{'problem_stream_switch'}; |
$form{'problem_split'}=$parmhash{'problem_stream_switch'}; |
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; |
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; |
if ($helper->{'VARS'}->{'curseed'}) { |
if ($helper->{'VARS'}->{'curseed'}) { |
Line 743 ENDPART
|
Line 755 ENDPART
|
&Apache::lonnet::appenv(%moreenv); |
&Apache::lonnet::appenv(%moreenv); |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonxml::init_counter(); |
&Apache::lonxml::init_counter(); |
$texversion=&Apache::lonnet::ssi($currentURL,%form); |
$texversion.=&Apache::lonnet::ssi($currentURL,%form); |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonnet::delenv('request.filename'); |
&Apache::lonnet::delenv('request.filename'); |
} |
} |
Line 798 ENDPART
|
Line 810 ENDPART
|
if ($helper->{'VARS'}->{'ANSWER_TYPE'} ne 'only') { |
if ($helper->{'VARS'}->{'ANSWER_TYPE'} ne 'only') { |
my %form; |
my %form; |
$form{'grade_target'}='tex'; |
$form{'grade_target'}='tex'; |
$form{'textwidth'}=$LaTeXwidth; |
if ($helper->{'VARS'}->{'pagesize.width'}=~/\d+/ && |
|
$helper->{'VARS'}->{'pagesize.widthunit'}=~/\w+/) { |
|
$form{'textwidth'}=&recalcto_mm($helper->{'VARS'}->{'pagesize.width'}.' '.$helper->{'VARS'}->{'pagesize.widthunit'}); |
|
} else { |
|
$form{'textwidth'}=$LaTeXwidth; |
|
} |
$form{'problem_split'}=$parmhash{'problem_stream_switch'}; |
$form{'problem_split'}=$parmhash{'problem_stream_switch'}; |
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; |
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; |
$form{'rndseed'}=$rndseed; |
$form{'rndseed'}=$rndseed; |
Line 844 ENDPART
|
Line 861 ENDPART
|
} elsif ($currentURL=~/\/smppg$/) { |
} elsif ($currentURL=~/\/smppg$/) { |
my %form; |
my %form; |
$form{'grade_target'}='tex'; |
$form{'grade_target'}='tex'; |
$form{'textwidth'}=$LaTeXwidth; |
if ($helper->{'VARS'}->{'pagesize.width'}=~/\d+/ && |
|
$helper->{'VARS'}->{'pagesize.widthunit'}=~/\w+/) { |
|
$form{'textwidth'}=&recalcto_mm($helper->{'VARS'}->{'pagesize.width'}.' '.$helper->{'VARS'}->{'pagesize.widthunit'}); |
|
} else { |
|
$form{'textwidth'}=$LaTeXwidth; |
|
} |
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; |
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; |
my $texversion=&Apache::lonnet::ssi($currentURL,%form); |
my $texversion=&Apache::lonnet::ssi($currentURL,%form); |
$result .= $texversion; |
$result .= $texversion; |
Line 866 ENDPART
|
Line 888 ENDPART
|
#-- produce an output string |
#-- produce an output string |
my %form=(); |
my %form=(); |
$form{'grade_target'}='tex'; |
$form{'grade_target'}='tex'; |
$form{'textwidth'}=$LaTeXwidth; |
if ($helper->{'VARS'}->{'pagesize.width'}=~/\d+/ && |
|
$helper->{'VARS'}->{'pagesize.widthunit'}=~/\w+/) { |
|
$form{'textwidth'}=&recalcto_mm($helper->{'VARS'}->{'pagesize.width'}.' '.$helper->{'VARS'}->{'pagesize.widthunit'}); |
|
} else { |
|
$form{'textwidth'}=$LaTeXwidth; |
|
} |
$form{'problem_split'}=$parmhash{'problem_stream_switch'}; |
$form{'problem_split'}=$parmhash{'problem_stream_switch'}; |
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; |
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; |
my $flag_latex_header_remove = 'NO'; |
my $flag_latex_header_remove = 'NO'; |
my $flag_page_in_sequence = 'NO'; |
my $flag_page_in_sequence = 'NO'; |
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; |
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; |
my $prevassignment=''; |
my $prevassignment=''; |
|
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonxml::init_counter(); |
&Apache::lonxml::init_counter(); |
for (my $i=0;$i<=$#master_seq;$i++) { |
for (my $i=0;$i<=$#master_seq;$i++) { |
my (undef,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]); |
my (undef,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]); |
Line 889 ENDPART
|
Line 917 ENDPART
|
$form{'symb'}=$master_seq[$i]; |
$form{'symb'}=$master_seq[$i]; |
my ($sequence)=&Apache::lonnet::decode_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'); #tittle of the assignment which contains this problem |
|
if ($selectionmade==7) {$helper->{VARS}->{'assignment'}=$assignment;} |
if ($i==0) {$prevassignment=$assignment;} |
if ($i==0) {$prevassignment=$assignment;} |
#&Apache::lonnet::logthis("Trying to get $urlp with symb $master_seq[$i]"); |
#&Apache::lonnet::logthis("Trying to get $urlp with symb $master_seq[$i]"); |
my $texversion.=&Apache::lonnet::ssi($urlp,%form); |
my $texversion.=&Apache::lonnet::ssi($urlp,%form); |
Line 953 ENDPART
|
Line 982 ENDPART
|
$selectionmade=8; |
$selectionmade=8; |
} |
} |
my @students=split /\|\|\|/, $helper->{'VARS'}->{'STUDENTS'}; |
my @students=split /\|\|\|/, $helper->{'VARS'}->{'STUDENTS'}; |
|
if ($helper->{'VARS'}->{'NUMBER_TO_PRINT'} eq '0' || |
|
$helper->{'VARS'}->{'NUMBER_TO_PRINT'} eq 'all' ) { |
|
$helper->{'VARS'}->{'NUMBER_TO_PRINT'}=$#students+1; |
|
} |
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; |
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; |
#loop over students |
#loop over students |
my $flag_latex_header_remove = 'NO'; |
my $flag_latex_header_remove = 'NO'; |
my %moreenv; |
my %moreenv; |
$moreenv{'form.textwidth'}=$LaTeXwidth; |
if ($helper->{'VARS'}->{'pagesize.width'}=~/\d+/ && |
|
$helper->{'VARS'}->{'pagesize.widthunit'}=~/\w+/) { |
|
$moreenv{'textwidth'}=&recalcto_mm($helper->{'VARS'}->{'pagesize.width'}.' '.$helper->{'VARS'}->{'pagesize.widthunit'}); |
|
} else { |
|
$moreenv{'textwidth'}=$LaTeXwidth; |
|
} |
&Apache::lonnet::appenv(%moreenv); |
&Apache::lonnet::appenv(%moreenv); |
my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$#students+1); |
my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$#students+1); |
|
my $student_counter=-1; |
foreach my $person (@students) { |
foreach my $person (@students) { |
|
$student_counter++; |
my $current_output = ''; |
my $current_output = ''; |
# my ($usersection,$username,$userdomain) = split /:/,$person; |
my ($username,$userdomain,$usersection) = split /:/,$person; |
my ($username,$userdomain) = split /:/,$person; |
|
my $fullname = &get_name($username,$userdomain); |
my $fullname = &get_name($username,$userdomain); |
|
|
if ($parmhash{'anonymous_quiz'}=~/yes/) {$fullname=' ';} #put here something reasonable for anonymous exams or quiz |
if ($parmhash{'anonymous_quiz'}=~/yes/) {$fullname=' ';} #put here something reasonable for anonymous exams or quiz |
Line 1010 ENDPART
|
Line 1049 ENDPART
|
} |
} |
my $courseidinfo = &get_course(); |
my $courseidinfo = &get_course(); |
if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo } |
if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo } |
|
if ($usersection ne '') {$courseidinfo.=' - Sec. '.$usersection} |
my $currentassignment=&Apache::lonxml::latex_special_symbols($helper->{VARS}->{'assignment'},'header'); |
my $currentassignment=&Apache::lonxml::latex_special_symbols($helper->{VARS}->{'assignment'},'header'); |
if ($current_output=~/\\documentclass/) { |
if ($current_output=~/\\documentclass/) { |
$current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\lhead{\\textit{\\textbf{$fullname}}$courseidinfo \\hfill \\thepage \\\\ \\textit{$currentassignment}}\\vskip 3 mm /; |
$current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\lhead{\\textit{\\textbf{$fullname}}$courseidinfo \\hfill \\thepage \\\\ \\textit{$currentassignment}}\\vskip 3 mm /; |
Line 1018 ENDPART
|
Line 1058 ENDPART
|
for (my $j=0;$j<$helper->{'VARS'}->{'EMPTY_PAGES'};$j++) {$blanspages.='\clearpage\strut\clearpage';} |
for (my $j=0;$j<$helper->{'VARS'}->{'EMPTY_PAGES'};$j++) {$blanspages.='\clearpage\strut\clearpage';} |
$current_output = '\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 }\\newpage '.$blanspages.'\setcounter{page}{1}\noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$fullname.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$currentassignment.'}}} \vskip -5 mm '.$current_output; |
$current_output = '\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 }\\newpage '.$blanspages.'\setcounter{page}{1}\noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$fullname.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$currentassignment.'}}} \vskip -5 mm '.$current_output; |
} |
} |
$result .= $current_output; |
$print_array[int($student_counter/$helper->{'VARS'}->{'NUMBER_TO_PRINT'})].=$current_output; |
|
$student_names[int($student_counter/$helper->{'VARS'}->{'NUMBER_TO_PRINT'})].=$person.':'.$fullname.'_END_'; |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonxml::init_counter(); |
&Apache::lonxml::init_counter(); |
&Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state, |
&Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state, |
&mt('last student').' '.$fullname); |
&mt('last student').' '.$fullname); |
} |
} |
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); |
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); |
$result .= '\end{document}'; |
$result .= $print_array[0].' \end{document}'; |
&Apache::lonnet::delenv('form.textwidth'); |
&Apache::lonnet::delenv('form.textwidth'); |
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_from_directory') { |
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_from_directory') { |
#prints selected problems from the subdirectory |
#prints selected problems from the subdirectory |
Line 1043 ENDPART
|
Line 1084 ENDPART
|
if ($urlp=~/\//) { |
if ($urlp=~/\//) { |
my %form; |
my %form; |
$form{'grade_target'}='tex'; |
$form{'grade_target'}='tex'; |
$form{'textwidth'}=$LaTeXwidth; |
if ($helper->{'VARS'}->{'pagesize.width'}=~/\d+/ && |
|
$helper->{'VARS'}->{'pagesize.widthunit'}=~/\w+/) { |
|
$form{'textwidth'}=&recalcto_mm($helper->{'VARS'}->{'pagesize.width'}.' '.$helper->{'VARS'}->{'pagesize.widthunit'}); |
|
} else { |
|
$form{'textwidth'}=$LaTeXwidth; |
|
} |
$form{'rndseed'}=$rndseed; |
$form{'rndseed'}=$rndseed; |
if ($urlp =~ m|/home/([^/]+)/public_html|) { |
if ($urlp =~ m|/home/([^/]+)/public_html|) { |
$urlp =~ s|/home/([^/]*)/public_html|/~$1|; |
$urlp =~ s|/home/([^/]*)/public_html|/~$1|; |
Line 1102 ENDPART
|
Line 1148 ENDPART
|
#-------------------------------------------------------- corrections for the different page formats |
#-------------------------------------------------------- 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 = &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); |
$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]);} |
#changes page's parameters for the one column output |
#changes page's parameters for the one column output |
if ($numberofcolumns == 1) { |
if ($numberofcolumns == 1) { |
$result =~ s/\\textwidth\s*=\s*\d*\.?\d*\s*(cm|mm|in)/\\textwidth= $helper->{'VARS'}->{'pagesize.width'} $helper->{'VARS'}->{'pagesize.widthunit'} /; |
$result =~ s/\\textwidth\s*=\s*\d*\.?\d*\s*(cm|mm|in)/\\textwidth= $helper->{'VARS'}->{'pagesize.width'} $helper->{'VARS'}->{'pagesize.widthunit'} /; |
Line 1111 ENDPART
|
Line 1158 ENDPART
|
} |
} |
#-- writing .tex file in prtspool |
#-- writing .tex file in prtspool |
my $temp_file; |
my $temp_file; |
my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout_".time."_".rand(10000000).".tex"; |
my $identifier = &Apache::loncommon::get_cgi_id(); |
unless ($temp_file = Apache::File->new('>'.$filename)) { |
my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout_".$identifier.".tex"; |
$r->log_error("Couldn't open $filename for output $!"); |
if (!($#print_array>0)) { |
return SERVER_ERROR; |
unless ($temp_file = Apache::File->new('>'.$filename)) { |
|
$r->log_error("Couldn't open $filename for output $!"); |
|
return SERVER_ERROR; |
|
} |
|
print $temp_file $result; |
|
my $begin=index($result,'\begin{document}',0); |
|
my $inc=substr($result,0,$begin+16); |
|
} else { |
|
my $begin=index($result,'\begin{document}',0); |
|
my $inc=substr($result,0,$begin+16); |
|
for (my $i=0;$i<=$#print_array;$i++) { |
|
if ($i==0) { |
|
$print_array[$i]=$result; |
|
} else { |
|
my $anobegin=index($print_array[$i],'\setcounter{page}',0); |
|
substr($print_array[$i],0,$anobegin)=''; |
|
$print_array[$i]=$inc.$print_array[$i].'\end{document}'; |
|
} |
|
my $temp_file; |
|
my $newfilename=$filename; |
|
my $num=$i+1; |
|
$newfilename =~s/\.tex$/_$num\.tex/; |
|
unless ($temp_file = Apache::File->new('>'.$newfilename)) { |
|
$r->log_error("Couldn't open $newfilename for output $!"); |
|
return SERVER_ERROR; |
|
} |
|
print $temp_file $print_array[$i]; |
|
} |
|
} |
|
my $student_names=''; |
|
if ($#print_array>0) { |
|
for (my $i=0;$i<=$#print_array;$i++) { |
|
$student_names.=$student_names[$i].'_ENDPERSON_'; |
|
} |
|
} else { |
|
if ($#student_names>-1) { |
|
$student_names=$student_names[0].'_ENDPERSON_'; |
|
} else { |
|
my $fullname = &get_name($ENV{'user.name'},$ENV{'user.domain'}); |
|
$student_names=join(':',$ENV{'user.name'},$ENV{'user.domain'}, |
|
$ENV{'request.course.sec'},$fullname). |
|
'_ENDPERSON_'.'_END_'; |
|
} |
|
} |
|
|
|
my $URLback=''; #link to original document |
|
if ($helper->{'VARS'}->{'construction'} ne '1') { |
|
#prints published resource |
|
$URLback=$helper->{'VARS'}->{'postdata'}; |
|
} else { |
|
#prints resource from the construction space |
|
$URLback='/'.$helper->{'VARS'}->{'filename'}; |
|
if ($URLback=~/([^?]+)/) { |
|
$URLback=$1; |
|
$URLback=~s|^/~|/priv/|; |
|
} |
} |
} |
|
|
my $identifier = time.'_'.int(rand(1000)); |
|
&Apache::lonnet::appenv('cgi.'.$identifier.'.file' => $filename, |
&Apache::lonnet::appenv('cgi.'.$identifier.'.file' => $filename, |
'cgi.'.$identifier.'.layout' => $laystyle, |
'cgi.'.$identifier.'.layout' => $laystyle, |
'cgi.'.$identifier.'.numcol' => $numberofcolumns, |
'cgi.'.$identifier.'.numcol' => $numberofcolumns, |
'cgi.'.$identifier.'.selection' => $selectionmade, |
'cgi.'.$identifier.'.selection' => $selectionmade, |
'cgi.'.$identifier.'tableofcontents' => $helper->{'VARS'}->{'TABLE_CONTENTS'}, |
'cgi.'.$identifier.'tableofcontents' => $helper->{'VARS'}->{'TABLE_CONTENTS'}, |
'cgi.'.$identifier.'tableofindex' => $helper->{'VARS'}->{'TABLE_INDEX'}, |
'cgi.'.$identifier.'tableofindex' => $helper->{'VARS'}->{'TABLE_INDEX'}, |
'cgi.'.$identifier.'role' => $ENV{'request.role.adv'}); |
'cgi.'.$identifier.'role' => $ENV{'request.role.adv'}, |
|
'cgi.'.$identifier.'numberoffiles' => $#print_array, |
|
'cgi.'.$identifier.'studentnames' => $student_names, |
|
'cgi.'.$identifier.'backref' => $URLback,); |
|
|
print $temp_file $result; |
|
|
|
$r->print(<<FINALEND); |
$r->print(<<FINALEND); |
<meta http-equiv="Refresh" content="0; url=/cgi-bin/printout.pl?$identifier"> |
<meta http-equiv="Refresh" content="0; url=/cgi-bin/printout.pl?$identifier"> |
</body> |
</body> |
Line 1376 HELPERFRAGMENT
|
Line 1478 HELPERFRAGMENT
|
if ($helper->{VARS}->{'assignment'}) { |
if ($helper->{VARS}->{'assignment'}) { |
push @{$printChoices}, ["<b>Problems</b> from <b><i>$sequenceTitle</i></b> for <b>selected students</b>", 'problems_for_students', 'CHOOSE_STUDENTS']; |
push @{$printChoices}, ["<b>Problems</b> from <b><i>$sequenceTitle</i></b> for <b>selected students</b>", 'problems_for_students', 'CHOOSE_STUDENTS']; |
} |
} |
|
|
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_STUDENTS); |
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_STUDENTS); |
<state name="ALL_PROBLEMS" title="Select Problem(s) to print"> |
<state name="ALL_PROBLEMS" title="Select Problem(s) to print"> |
<message>(mark them then click "next" button) <br /></message> |
<message>(mark them then click "next" button) <br /></message> |
Line 1407 HELPERFRAGMENT
|
Line 1508 HELPERFRAGMENT
|
</state> |
</state> |
CHOOSE_STUDENTS |
CHOOSE_STUDENTS |
|
|
|
addMessage("<hr width='33%' /><b>Number of assignments printed at the same time: </b>"); |
|
$paramHash = Apache::lonhelper::getParamHash(); |
|
$paramHash->{'variable'} = 'NUMBER_TO_PRINT'; |
|
$helper->declareVar('NUMBER_TO_PRINT'); |
|
addMessage("<input type='text' name='NUMBER_TO_PRINT.forminput' size='3' value='all' /><hr width='33%' />"); |
|
|
if ($helper->{VARS}->{'assignment'}) { |
if ($helper->{VARS}->{'assignment'}) { |
push @{$printChoices}, ["<b>Resources</b> from <b><i>$sequenceTitle</i></b> for <b>selected students</b>", 'resources_for_students', 'CHOOSE_STUDENTS1']; |
push @{$printChoices}, ["<b>Resources</b> from <b><i>$sequenceTitle</i></b> for <b>selected students</b>", 'resources_for_students', 'CHOOSE_STUDENTS1']; |
} |
} |
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_STUDENTS1); |
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_STUDENTS1); |
<state name="CHOOSE_STUDENTS1" title="Select Students and Resources"> |
<state name="CHOOSE_STUDENTS1" title="Select Students and Resources"> |
<student multichoice='1' variable="STUDENTS" nextstate="PAGESIZE" /> |
<student multichoice='1' variable="STUDENTS" nextstate="PAGESIZE" /> |
<message><br /><big><i><b>Select resources for the assignment</b></i></big><br /></message> |
<message><br /><big><i><b>Select resources for the assignment</b></i></big><br /></message> |
Line 1429 CHOOSE_STUDENTS
|
Line 1536 CHOOSE_STUDENTS
|
</state> |
</state> |
CHOOSE_STUDENTS1 |
CHOOSE_STUDENTS1 |
|
|
|
addMessage("<hr width='33%' /><b>Number of assignments printed at the same time: </b>"); |
|
$paramHash = Apache::lonhelper::getParamHash(); |
|
$paramHash->{'variable'} = 'NUMBER_TO_PRINT'; |
|
$helper->declareVar('NUMBER_TO_PRINT'); |
|
addMessage("<input type='text' name='NUMBER_TO_PRINT.forminput' size='3' value='all' /><hr width='33%' />"); |
} |
} |
|
|
# FIXME: That RE should come from a library somewhere. |
# FIXME: That RE should come from a library somewhere. |
Line 1641 use Apache::lonhelper;
|
Line 1753 use Apache::lonhelper;
|
no strict; |
no strict; |
@ISA = ("Apache::lonhelper::element"); |
@ISA = ("Apache::lonhelper::element"); |
use strict; |
use strict; |
|
use Apache::lonlocal; |
|
|
my $maxColumns = 2; |
my $maxColumns = 2; |
my @paperSize = ("Letter [8 1/2x11 in]", "Legal [8 1/2x14 in]", |
my @paperSize = ("Letter [8 1/2x11 in]", "Legal [8 1/2x14 in]", |
Line 1668 sub render {
|
Line 1781 sub render {
|
my $helper = Apache::lonhelper::getHelper(); |
my $helper = Apache::lonhelper::getHelper(); |
my $result = ''; |
my $result = ''; |
my $var = $self->{'variable'}; |
my $var = $self->{'variable'}; |
|
my $PageLayout=&mt('Page layout'); |
|
my $NumberOfColumns=&mt('Number of columns'); |
|
my $PaperType=&mt('Paper type'); |
$result .= <<STATEHTML; |
$result .= <<STATEHTML; |
|
|
<hr width="33%" /> |
<hr width="33%" /> |
<table cellpadding="3"> |
<table cellpadding="3"> |
<tr> |
<tr> |
<td align="center"><b>Page layout</b></td> |
<td align="center"><b>$PageLayout</b></td> |
<td align="center"><b>Number of columns</b></td> |
<td align="center"><b>$NumberOfColumns</b></td> |
<td align="center"><b>Paper type</b></td> |
<td align="center"><b>$PaperType</b></td> |
</tr> |
</tr> |
<tr> |
<tr> |
<td> |
<td> |
Line 1823 sub render {
|
Line 1938 sub render {
|
</table> |
</table> |
|
|
<p>Hint: Some instructors like to leave scratch space for the student by |
<p>Hint: Some instructors like to leave scratch space for the student by |
making the width much smaller then the width of the page.</p> |
making the width much smaller than the width of the page.</p> |
|
|
ELEMENTHTML |
ELEMENTHTML |
|
|