--- loncom/interface/lonprintout.pm 2003/08/28 20:36:48 1.224 +++ loncom/interface/lonprintout.pm 2003/09/06 17:21:16 1.230 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.224 2003/08/28 20:36:48 sakharuk Exp $ +# $Id: lonprintout.pm,v 1.230 2003/09/06 17:21:16 albertel 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,51 @@ 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; + $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{'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{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; + $form{'rndseed'}=$rndseed; + 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_URL'} 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 +887,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=~/\//) { @@ -1015,6 +1065,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'); @@ -1070,6 +1121,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(); @@ -1196,8 +1250,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)$/; @@ -1226,8 +1280,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; @@ -1287,6 +1341,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) {