--- loncom/interface/lonprintout.pm 2003/08/25 17:25:05 1.223 +++ loncom/interface/lonprintout.pm 2003/09/09 13:31:08 1.232 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.223 2003/08/25 17:25:05 bowersj2 Exp $ +# $Id: lonprintout.pm,v 1.232 2003/09/09 13:31:08 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -49,6 +49,7 @@ use Apache::grades; use Apache::edit; use Apache::File(); use Apache::lonnavmaps; +use Apache::lonratedt; use POSIX qw(strftime); use GDBM_File; @@ -669,6 +670,9 @@ ENDPART $form{'problem_split'}=$parmhash{'problem_stream_switch'}; $form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; my $rndseed=time; + if ($helper->{'VARS'}->{'curseed'}) { + $rndseed=$helper->{'VARS'}->{'curseed'}; + } $form{'rndseed'}=$rndseed; &Apache::lonnet::appenv(%moreenv); &Apache::lonnet::delenv('form.counter'); @@ -695,8 +699,57 @@ ENDPART if ($currentURL=~m/\.page\s*$/) { ($result,$number_of_columns) = &page_cleanup($result); } + } elsif ($currentURL=~/\.sequence$/ && $helper->{'VARS'}->{'construction'} eq '1') { + #printing content of sequence from the construction space + my $flag_latex_header_remove = 'NO'; + my $rndseed=time; + if ($helper->{'VARS'}->{'curseed'}) { + $rndseed=$helper->{'VARS'}->{'curseed'}; + } + $currentURL=~s|\/~([^\/]+)\/|\/home\/$1\/public_html\/|; + my $errtext=&Apache::lonratedt::mapread($currentURL); + for (my $member=0;$member<=$#Apache::lonratedt::order;$member++) { + $Apache::lonratedt::resources[$Apache::lonratedt::order[$member]]=~/^([^:]*):([^:]*):/; + my $urlp=$2; + if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library|xml|html|htm|xhtml|xhtm)$/) { + my %form; + $form{'grade_target'}='tex'; + $form{'textwidth'}=$LaTeXwidth; + $form{'problem_split'}=$parmhash{'problem_stream_switch'}; + $form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; + $form{'rndseed'}=$rndseed; + my $texversion=&Apache::lonnet::ssi($urlp,%form); + if($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { + my %form; + $form{'grade_target'}='answer'; + $form{'answer_output_mode'}='tex'; + $form{'rndseed'}=$rndseed; + if ($urlp=~/\/res\//) {$ENV{'request.state'}='published';} + ####my $answer=' SSSSSS '.$ENV{'request.state'}.' FFFFFFF '; + my $answer=&Apache::lonnet::ssi($urlp,%form); + $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/; + } + if ($flag_latex_header_remove ne 'NO') { + $texversion = &latex_header_footer_remove($texversion); + } else { + $texversion =~ s/\\end{document}//; + } + if ($helper->{'VARS'}->{'TABLE_INDEX'} eq 'yes') { + $texversion=&IndexCreation($texversion,$urlp); + } + if ($helper->{'VARS'}->{'CONSTR_RESOURSE_URpL'} eq 'yes') { + $texversion=~s/(\\addcontentsline\{toc\}\{subsection\}\{[^\}]*\})/$1 URL: \\verb|$urlp| \\strut\\\\\\strut /; + } + $result.=$texversion; + $flag_latex_header_remove = 'YES'; + } elsif ($urlp=~/\.(sequence|page)$/) { + $result.='\strut\newline\noindent Sequence/page '.$urlp.'\strut\newline\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\newline\noindent '; + } + } + if ($helper->{VARS}->{'construction'} eq '1') {$result=~s/(\\begin{document})/$1 \\fbox\{RANDOM SEED IS $rndseed\} /;} + $result .= '\end{document}'; } else { - $result='\documentclass[letterpaper]{article}\usepackage{calc}\begin{document}Printout of this type of document is currently not supported: '; + $result.='\documentclass[letterpaper]{article}\usepackage{calc}\begin{document}Printout of this type of document is currently not supported: '; if ($currentURL=~/\/(aboutme|syllabus|bulletinboard|smppg)$/) { $result.=$1; } elsif ($currentURL=~/\/ext\//) { @@ -840,6 +893,9 @@ ENDPART @list_of_files=sort @list_of_files; my $flag_latex_header_remove = 'NO'; my $rndseed=time; + if ($helper->{'VARS'}->{'curseed'}) { + $rndseed=$helper->{'VARS'}->{'curseed'}; + } for (my $i=0;$i<=$#list_of_files;$i++) { my $urlp = $list_of_files[$i]; if ($urlp=~/\//) { @@ -915,6 +971,7 @@ ENDPART if ($helper->{'VARS'}->{'TABLE_INDEX'} eq 'yes') { if ($selectionmade<10) {$selectionmade*=100;} else {$selectionmade*=10;} } + if ($ENV{'request.role.adv'}) {$selectionmade*=10000;} #-- writing .tex file in prtspool my $temp_file; my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout_".time."_".rand(10000000).".tex"; @@ -1014,6 +1071,7 @@ sub printHelper { my $helper = Apache::lonhelper::helper->new("Printing Helper"); $helper->declareVar('symb'); $helper->declareVar('postdata'); + $helper->declareVar('curseed'); $helper->declareVar('filename'); $helper->declareVar('construction'); $helper->declareVar('assignment'); @@ -1069,6 +1127,9 @@ sub printHelper { } $subdir = &Apache::lonnet::filelocation("", $url); } + if (!$helper->{VARS}->{'curseed'} && $ENV{'form.curseed'}) { + $helper->{VARS}->{'curseed'}=$ENV{'form.curseed'}; + } my $userCanSeeHidden = Apache::lonnavmaps::advancedUser(); @@ -1195,8 +1256,8 @@ CHOOSE_STUDENTS CHOOSE_FROM_SUBDIR $xmlfrag .= <<'CHOOSE_FROM_SUBDIR'; - return $filename =~ - m/\.(problem|exam|quiz|assess|survey|form|library)$/; + return Apache::lonhelper::files::not_old_version($filename) && + $filename =~ m/\.(problem|exam|quiz|assess|survey|form|library)$/; @@ -1225,8 +1286,8 @@ CHOOSE_FROM_SUBDIR $paramHash->{'variable'} = 'ANSWER_TYPE'; $helper->declareVar('ANSWER_TYPE'); $paramHash->{CHOICES} = [ - ['Yes', 'yes'], - ['No', 'no'] ]; + ['No', 'yes'], + ['Yes', 'no'] ]; Apache::lonhelper::dropdown->new(); addMessage(""); $startedTable = 1; @@ -1286,6 +1347,18 @@ CHOOSE_FROM_SUBDIR Apache::lonhelper::dropdown->new(); addMessage(""); } + if ($helper->{'VARS'}->{'construction'}) { + my $xmlfrag .= <<'RNDSEED'; + Use random seed: + + + return $helper->{VARS}->{'curseed'}; + + + +RNDSEED + &Apache::lonxml::xmlparse($r, 'helper', $xmlfrag); + } } if ($startedTable) {