version 1.397, 2005/10/31 21:48:07
|
version 1.412, 2005/12/23 08:32:46
|
Line 433 sub character_chart {
|
Line 433 sub character_chart {
|
$result =~ s/&(\#252|uuml);/\\\"{u}/g; |
$result =~ s/&(\#252|uuml);/\\\"{u}/g; |
$result =~ s/&(\#253|yacute);/\\\'{y}/g; |
$result =~ s/&(\#253|yacute);/\\\'{y}/g; |
$result =~ s/&(\#255|yuml);/\\\"{y}/g; |
$result =~ s/&(\#255|yuml);/\\\"{y}/g; |
|
$result =~ s/&\#295;/\\ensuremath\{\\hbar\}/g; |
$result =~ s/&\#952;/\\ensuremath\{\\theta\}/g; |
$result =~ s/&\#952;/\\ensuremath\{\\theta\}/g; |
#Greek Alphabet |
#Greek Alphabet |
$result =~ s/&(alpha|\#945);/\\ensuremath\{\\alpha\}/g; |
$result =~ s/&(alpha|\#945);/\\ensuremath\{\\alpha\}/g; |
Line 749 sub details_for_menu {
|
Line 750 sub details_for_menu {
|
|
|
|
|
sub latex_corrections { |
sub latex_corrections { |
|
my ($number_of_columns,$result,$selectionmade,$answer_mode) = @_; |
my ($number_of_columns,$result,$selectionmade) = @_; |
|
|
|
# $result =~ s/\\includegraphics{/\\includegraphics\[width=\\minipagewidth\]{/g; |
# $result =~ s/\\includegraphics{/\\includegraphics\[width=\\minipagewidth\]{/g; |
$result =~ s/\$number_of_columns/$number_of_columns/g; |
$result =~ s/\$number_of_columns/$number_of_columns/g; |
if ($selectionmade ne '1') { |
if ($selectionmade eq '1' || $answer_mode eq 'only') { |
$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{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 { |
} 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\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill})/$2$1/g; |
$result =~ s/(\\end{longtable}\s*)\\strut\\newline/$1/g; |
$result =~ s/(\\end{longtable}\s*)\\strut\\newline/$1/g; |
Line 816 sub IndexCreation {
|
Line 816 sub IndexCreation {
|
|
|
sub print_latex_header { |
sub print_latex_header { |
my $mode=shift; |
my $mode=shift; |
my $output='\documentclass[letterpaper]{article}'; |
my $output='\documentclass[letterpaper,twoside]{article}'; |
if (($mode eq 'batchmode') || (!$perm{'pav'})) { |
if (($mode eq 'batchmode') || (!$perm{'pav'})) { |
$output.='\batchmode'; |
$output.='\batchmode'; |
} |
} |
$output.='\newcommand{\keephidden}[1]{}\renewcommand{\deg}{$^{\circ}$}'."\n". |
$output.='\newcommand{\keephidden}[1]{}\renewcommand{\deg}{$^{\circ}$}'."\n". |
|
'\usepackage{multirow}'."\n". |
'\usepackage{longtable}\usepackage{textcomp}\usepackage{makeidx}'."\n". |
'\usepackage{longtable}\usepackage{textcomp}\usepackage{makeidx}'."\n". |
'\usepackage[dvips]{graphicx}\usepackage{epsfig}'."\n". |
'\usepackage[dvips]{graphicx}\usepackage{epsfig}'."\n". |
'\usepackage{wrapfig}'. |
'\usepackage{wrapfig}'. |
Line 843 sub print_latex_header {
|
Line 844 sub print_latex_header {
|
|
|
sub path_to_problem { |
sub path_to_problem { |
my ($urlp,$colwidth)=@_; |
my ($urlp,$colwidth)=@_; |
|
$urlp=&Apache::lonnet::clutter($urlp); |
|
|
my $newurlp = ''; |
my $newurlp = ''; |
$colwidth=~s/\s*mm\s*$//; |
$colwidth=~s/\s*mm\s*$//; |
#characters average about 2 mm in width |
#characters average about 2 mm in width |
if (length($urlp)*2 > $colwidth) { |
if (length($urlp)*2 > $colwidth) { |
my @elements = split '/',$urlp; |
my @elements = split('/',$urlp); |
my $curlength=0; |
my $curlength=0; |
foreach my $element (@elements) { |
foreach my $element (@elements) { |
|
if ($element eq '') { next; } |
if ($curlength+(length($element)*2) > $colwidth) { |
if ($curlength+(length($element)*2) > $colwidth) { |
$newurlp .= '|\vskip -1 mm \noindent \verb|'; |
$newurlp .= '|\vskip -1 mm \verb|'; |
$curlength=0; |
$curlength=length($element)*2; |
} else { |
} else { |
$curlength+=length($element)*2; |
$curlength+=length($element)*2; |
} |
} |
Line 907 sub unsupported {
|
Line 911 sub unsupported {
|
# |
# |
# List of recently generated print files |
# List of recently generated print files |
# |
# |
|
|
sub recently_generated { |
sub recently_generated { |
my $r=shift; |
my $r=shift; |
my $prtspool=$r->dir_config('lonPrtDir'); |
my $prtspool=$r->dir_config('lonPrtDir'); |
my $result; |
my $zip_result; |
|
my $pdf_result; |
opendir(DIR,$prtspool); |
opendir(DIR,$prtspool); |
while (my $filename=readdir(DIR)) { |
|
if ($filename=~/^$env{'user.name'}\_$env{'user.domain'}\_printout\_(\d+)\_.*.pdf$/) { |
my @files = |
my ($cdev,$cino,$cmode,$cnlink, |
grep(/^$env{'user.name'}_$env{'user.domain'}_printout_(\d+)_.*\.(pdf|zip)$/,readdir(DIR)); |
$cuid,$cgid,$crdev,$csize, |
|
$catime,$cmtime,$cctime, |
|
$cblksize,$cblocks)=stat($prtspool.'/'.$filename); |
|
$result.="<a href='/prtspool/$filename'>". |
|
&mt('Generated [_1] ([_2] bytes)', |
|
&Apache::lonlocal::locallocaltime($cctime),$csize). |
|
'</a><br />'; |
|
} |
|
} |
|
closedir(DIR); |
closedir(DIR); |
if ($result) { |
|
$r->print('<h4>'.&mt('Recently generated printouts').'</h4>'."\n". |
@files = sort { |
$result); |
my ($actime) = (stat($prtspool.'/'.$a))[10]; |
|
my ($bctime) = (stat($prtspool.'/'.$b))[10]; |
|
return $bctime <=> $actime; |
|
} (@files); |
|
|
|
foreach my $filename (@files) { |
|
my ($ext) = ($filename =~ m/(pdf|zip)$/); |
|
my ($cdev,$cino,$cmode,$cnlink, |
|
$cuid,$cgid,$crdev,$csize, |
|
$catime,$cmtime,$cctime, |
|
$cblksize,$cblocks)=stat($prtspool.'/'.$filename); |
|
my $result="<a href='/prtspool/$filename'>". |
|
&mt('Generated [_1] ([_2] bytes)', |
|
&Apache::lonlocal::locallocaltime($cctime),$csize). |
|
'</a><br />'; |
|
if ($ext eq 'pdf') { $pdf_result .= $result; } |
|
if ($ext eq 'zip') { $zip_result .= $result; } |
|
} |
|
if ($zip_result) { |
|
$r->print('<h4>'.&mt('Recently generated printout zip files')."</h4>\n" |
|
.$zip_result); |
|
} |
|
if ($pdf_result) { |
|
$r->print('<h4>'.&mt('Recently generated printouts')."</h4>\n" |
|
.$pdf_result); |
} |
} |
} |
} |
|
|
Line 989 $html
|
Line 1008 $html
|
<title>LON-CAPA output for printing</title> |
<title>LON-CAPA output for printing</title> |
</head> |
</head> |
$bodytag |
$bodytag |
|
<p> |
Please stand by while processing your print request, this may take some time ... |
Please stand by while processing your print request, this may take some time ... |
|
</p> |
ENDPART |
ENDPART |
|
|
|
|
Line 1082 ENDPART
|
Line 1103 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(); |
|
&Apache::lonxml::store_counter(); |
$resources_printed .= $currentURL.':'; |
$resources_printed .= $currentURL.':'; |
$texversion.=&Apache::lonnet::ssi($currentURL,%form); |
$texversion.=&Apache::lonnet::ssi($currentURL,%form); |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonnet::delenv('form.counter'); |
Line 1093 ENDPART
|
Line 1115 ENDPART
|
$form{'grade_target'}='answer'; |
$form{'grade_target'}='answer'; |
$form{'answer_output_mode'}='tex'; |
$form{'answer_output_mode'}='tex'; |
$form{'rndseed'}=$rndseed; |
$form{'rndseed'}=$rndseed; |
|
if ($helper->{'VARS'}->{'probstatus'} eq 'exam') { |
|
$form{'problemtype'}='exam'; |
|
} |
$resources_printed .= $currentURL.':'; |
$resources_printed .= $currentURL.':'; |
my $answer=&Apache::lonnet::ssi($currentURL,%form); |
my $answer=&Apache::lonnet::ssi($currentURL,%form); |
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { |
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { |
Line 1161 ENDPART
|
Line 1186 ENDPART
|
} else { |
} else { |
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
$texversion.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($helper->{'VARS'}->{'symb'}).'}\vskip 0 mm '; |
$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}'; |
$texversion.='\vskip 1 mm '.$answer.'\end{document}'; |
} |
} |
} |
} |
Line 1221 ENDPART
|
Line 1246 ENDPART
|
my $prevassignment=''; |
my $prevassignment=''; |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonxml::init_counter(); |
&Apache::lonxml::init_counter(); |
|
&Apache::lonxml::store_counter(); |
for (my $i=0;$i<=$#master_seq;$i++) { |
for (my $i=0;$i<=$#master_seq;$i++) { |
|
|
# Note due to document structure, not allowed to put \newpage |
# Note due to document structure, not allowed to put \newpage |
Line 1231 ENDPART
|
Line 1257 ENDPART
|
$result.="\\newpage\n"; |
$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); |
$urlp=&Apache::lonnet::clutter($urlp); |
$form{'symb'}=$master_seq[$i]; |
$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 ($selectionmade==7) {$helper->{VARS}->{'assignment'}=$assignment;} |
if ($i==0) {$prevassignment=$assignment;} |
if ($i==0) {$prevassignment=$assignment;} |
my $texversion=''; |
my $texversion=''; |
if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { |
if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { |
$resources_printed .= $urlp.':'; |
$resources_printed .= $urlp.':'; |
|
my $pre_counter=$env{'form.counter'}; |
$texversion.=&Apache::lonnet::ssi($urlp,%form); |
$texversion.=&Apache::lonnet::ssi($urlp,%form); |
if ($urlp=~/\.page$/) { |
if ($urlp=~/\.page$/) { |
($texversion,my $number_of_columns_page) = &page_cleanup($texversion); |
($texversion,my $number_of_columns_page) = &page_cleanup($texversion); |
Line 1248 ENDPART
|
Line 1275 ENDPART
|
$texversion =~ s/\\end{document}\d*/\\end{document}/; |
$texversion =~ s/\\end{document}\d*/\\end{document}/; |
$flag_page_in_sequence = 'YES'; |
$flag_page_in_sequence = 'YES'; |
} |
} |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
my ($envfile) = ($env{'user.environment'} =~m|/([^/]+)\.id$| ); |
my $envfile=$env{'user.environment'}; |
&Apache::lonnet::transfer_profile_to_env($r->dir_config('lonIDsDir'), |
$envfile=~/\/([^\/]+)\.id$/; |
$envfile); |
$envfile=$1; |
|
&Apache::lonnet::transfer_profile_to_env($lonidsdir,$envfile); |
|
my $current_counter=$env{'form.counter'}; |
my $current_counter=$env{'form.counter'}; |
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') || |
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') || |
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) { |
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) { |
Line 1261 ENDPART
|
Line 1286 ENDPART
|
$answerform{'grade_target'}='answer'; |
$answerform{'grade_target'}='answer'; |
$answerform{'answer_output_mode'}='tex'; |
$answerform{'answer_output_mode'}='tex'; |
$resources_printed .= $urlp.':'; |
$resources_printed .= $urlp.':'; |
|
&Apache::lonnet::appenv(('form.counter' => $pre_counter)); |
my $answer=&Apache::lonnet::ssi($urlp,%answerform); |
my $answer=&Apache::lonnet::ssi($urlp,%answerform); |
&Apache::lonnet::appenv(('form.counter' => $current_counter)); |
&Apache::lonnet::appenv(('form.counter' => $current_counter)); |
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { |
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { |
Line 1268 ENDPART
|
Line 1294 ENDPART
|
} else { |
} else { |
if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library)$/) { |
if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library)$/) { |
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
$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.=&path_to_problem ($urlp,$LaTeXwidth); |
$texversion.='\vskip 1 mm '.$answer; |
$texversion.='\vskip 1 mm '.$answer; |
} else { |
} else { |
Line 1376 ENDPART
|
Line 1402 ENDPART
|
$person,$type, |
$person,$type, |
\%moreenv,\@master_seq, |
\%moreenv,\@master_seq, |
$flag_latex_header_remove, |
$flag_latex_header_remove, |
$LaTeXwidth); |
$LaTeXwidth, |
|
$number_of_columns); |
$resources_printed .= ":"; |
$resources_printed .= ":"; |
$print_array[$i].=$output; |
$print_array[$i].=$output; |
$student_names[$i].=$person.':'.$fullname.'_END_'; |
$student_names[$i].=$person.':'.$fullname.'_END_'; |
Line 1552 ENDPART
|
Line 1579 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'},$selectionmade); |
$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); |
$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);} |
$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 |
#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 1675 sub get_CODE {
|
Line 1708 sub get_CODE {
|
|
|
sub print_resources { |
sub print_resources { |
my ($r,$helper,$person,$type,$moreenv,$master_seq,$remove_latex_header, |
my ($r,$helper,$person,$type,$moreenv,$master_seq,$remove_latex_header, |
$LaTeXwidth)=@_; |
$LaTeXwidth,$number_of_columns)=@_; |
my $current_output = ''; |
my $current_output = ''; |
my $printed = ''; |
my $printed = ''; |
my ($username,$userdomain,$usersection) = split /:/,$person; |
my ($username,$userdomain,$usersection) = split /:/,$person; |
Line 1690 sub print_resources {
|
Line 1723 sub print_resources {
|
#current student, and produces output |
#current student, and produces output |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonxml::init_counter(); |
&Apache::lonxml::init_counter(); |
|
&Apache::lonxml::store_counter(); |
my %page_breaks = &get_page_breaks($helper); |
my %page_breaks = &get_page_breaks($helper); |
|
|
foreach my $curresline (@{$master_seq}) { |
foreach my $curresline (@{$master_seq}) { |
Line 1706 sub print_resources {
|
Line 1739 sub print_resources {
|
if (&Apache::lonnet::allowed('bre',$res_url)) { |
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=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { |
$printed .= $curresline.':'; |
$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 $rendered = &Apache::loncommon::get_student_view($curresline,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv); |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
my ($envfile) = |
my $envfile=$env{'user.environment'}; |
( $env{'user.environment'} =~ m|/([^/]+)\.id$| ); |
$envfile=~/\/([^\/]+)\.id$/; |
&Apache::lonnet::transfer_profile_to_env($r->dir_config('lonIDsDir'), |
$envfile=$1; |
$envfile); |
&Apache::lonnet::transfer_profile_to_env($lonidsdir,$envfile); |
|
my $current_counter=$env{'form.counter'}; |
my $current_counter=$env{'form.counter'}; |
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') || |
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') || |
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) { |
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) { |
Line 1719 sub print_resources {
|
Line 1752 sub print_resources {
|
my %answerenv = %{$moreenv}; |
my %answerenv = %{$moreenv}; |
$answerenv{'answer_output_mode'}='tex'; |
$answerenv{'answer_output_mode'}='tex'; |
$answerenv{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; |
$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); |
my $ansrendered = &Apache::loncommon::get_student_answers($curresline,$username,$userdomain,$env{'request.course.id'},%answerenv); |
&Apache::lonnet::appenv(('form.counter' => $current_counter)); |
&Apache::lonnet::appenv(('form.counter' => $current_counter)); |
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { |
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { |
Line 1726 sub print_resources {
|
Line 1760 sub print_resources {
|
} else { |
} else { |
$rendered=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
$rendered=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
$rendered.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($curresline).'}\vskip 0 mm '; |
$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; |
$rendered.='\vskip 1 mm '.$ansrendered; |
} |
} |
} |
} |
Line 1739 sub print_resources {
|
Line 1773 sub print_resources {
|
} elsif ($res_url=~/\/(smppg|syllabus|aboutme|bulletinboard)$/) { |
} elsif ($res_url=~/\/(smppg|syllabus|aboutme|bulletinboard)$/) { |
$printed .= $curresline.':'; |
$printed .= $curresline.':'; |
my $rendered = &Apache::loncommon::get_student_view($curresline,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv); |
my $rendered = &Apache::loncommon::get_student_view($curresline,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv); |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
my ($envfile) = |
my $envfile=$env{'user.environment'}; |
( $env{'user.environment'} =~ m|/([^/]+)\.id$| ); |
$envfile=~/\/([^\/]+)\.id$/; |
&Apache::lonnet::transfer_profile_to_env($r->dir_config('lonIDsDir'), |
$envfile=$1; |
$envfile); |
&Apache::lonnet::transfer_profile_to_env($lonidsdir,$envfile); |
|
my $current_counter=$env{'form.counter'}; |
my $current_counter=$env{'form.counter'}; |
if ($remove_latex_header eq 'YES') { |
if ($remove_latex_header eq 'YES') { |
$rendered = &latex_header_footer_remove($rendered); |
$rendered = &latex_header_footer_remove($rendered); |
} else { |
} else { |
$rendered =~ s/\\end{document}//; |
$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 { |
} else { |
my $rendered = &unsupported($res_url,$helper->{'VARS'}->{'LATEX_TYPE'}); |
my $rendered = &unsupported($res_url,$helper->{'VARS'}->{'LATEX_TYPE'}); |
if ($remove_latex_header ne 'NO') { |
if ($remove_latex_header ne 'NO') { |
Line 2143 CHOOSE_STUDENTS
|
Line 2176 CHOOSE_STUDENTS
|
} |
} |
|
|
|
|
my %all_codes = &Apache::lonnet::get('CODEs', |
|
\@names, $cdom,$cnum); |
|
my %code_values; |
my %code_values; |
my @all_code_array; |
my %codes_to_print; |
foreach my $key (keys %all_codes) { |
foreach my $key (@names) { |
%code_values = &Apache::grades::get_codes($key, $cdom, $cnum); |
%code_values = &Apache::grades::get_codes($key, $cdom, $cnum); |
foreach my $key (keys %code_values) { |
foreach my $key (keys(%code_values)) { |
push (@all_code_array, "$key"); |
$codes_to_print{$key} = 1; |
} |
} |
} |
} |
|
|
my $code_selection = "<choice></choice>\n"; |
my $code_selection = "<choice></choice>\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; |
my $choice = $code; |
if ($code =~ /^[A-Z]+$/) { # Alpha code |
if ($code =~ /^[A-Z]+$/) { # Alpha code |
$choice = &letters_to_num($code); |
$choice = &letters_to_num($code); |
Line 2178 CHOOSE_STUDENTS
|
Line 2209 CHOOSE_STUDENTS
|
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_ANON1); |
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_ANON1); |
<state name="CHOOSE_ANON1" title="Select Students and Resources"> |
<state name="CHOOSE_ANON1" title="Select Students and Resources"> |
<nextstate>PAGESIZE</nextstate> |
<nextstate>PAGESIZE</nextstate> |
<message><hr width='33%' /></message> |
<message><table><tr><td><b>Number of anonymous assignments to print:</b></td><td></message> |
<message><table><tr><td><b>Number of anonymous assignments to print?</b></td><td></message> |
|
<string variable="NUMBER_TO_PRINT_TOTAL" maxlength="5" size="5"> |
<string variable="NUMBER_TO_PRINT_TOTAL" maxlength="5" size="5"> |
<validator> |
<validator> |
if (((\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}+0) < 1) && |
if (((\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}+0) < 1) && |
Line 2192 CHOOSE_STUDENTS
|
Line 2222 CHOOSE_STUDENTS
|
</validator> |
</validator> |
</string> |
</string> |
<message></td></tr><tr><td></message> |
<message></td></tr><tr><td></message> |
<message><b>Value of CODE to print?</b></td><td></message> |
<message><b>Names to store the CODEs under for later:</b></message> |
<string variable="SINGLE_CODE" size="10" defaultvalue="zzzz"> |
<message></td><td></message> |
|
<string variable="ANON_CODE_STORAGE_NAME" maxlength="50" size="20" /> |
|
<message></td></tr><tr><td></message> |
|
<message><b>Bubble sheet type:</b></message> |
|
<message></td><td></message> |
|
<dropdown variable="CODE_OPTION" multichoice="0" allowempty="0"> |
|
$codechoice |
|
</dropdown> |
|
<message></td></tr><tr><td colspan="2"><hr width='33%' /></td></tr><tr><td></message> |
|
<message></td></tr><tr><td></message> |
|
<message><b>Enter a CODE to print:</b></td><td></message> |
|
<string variable="SINGLE_CODE" size="10"> |
<validator> |
<validator> |
if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'} && |
if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'} && |
!\$helper->{'VARS'}{'REUSE_OLD_CODES'} && |
!\$helper->{'VARS'}{'REUSE_OLD_CODES'} && |
Line 2205 CHOOSE_STUDENTS
|
Line 2246 CHOOSE_STUDENTS
|
} |
} |
</validator> |
</validator> |
</string> |
</string> |
<message></td></tr><tr><td></message> |
<message></td></tr><tr><td colspan="2"><hr width='33%' /></td></tr><tr><td></message> |
<message><b>Choose single code from list</b></message> |
|
<message></td><td></message> |
|
<dropdown variable="CODE_SELECTED_FROM_LIST" multichoice="0" allowempty="0"> |
|
$code_selection |
|
</dropdown> |
|
<message></td></tr><tr><td></message> |
|
<message><b>Names to store the CODEs under for later:</b></message> |
|
<message></td><td></message> |
|
<string variable="ANON_CODE_STORAGE_NAME" maxlength="50" size="20" /> |
|
<message></td></tr><tr><td></message> |
|
<message><b>Bubble sheet type:</b></message> |
|
<message></td><td></message> |
|
<dropdown variable="CODE_OPTION" multichoice="0" allowempty="0"> |
|
$codechoice |
|
</dropdown> |
|
<message></td></tr></table></message> |
|
<message><hr width='33%' /></message> |
|
<message><b>Reprint a set of saved CODEs:</b></message> |
<message><b>Reprint a set of saved CODEs:</b></message> |
|
<message></td><td></message> |
<dropdown variable="REUSE_OLD_CODES"> |
<dropdown variable="REUSE_OLD_CODES"> |
$namechoice |
$namechoice |
</dropdown> |
</dropdown> |
|
<message></td></tr></table></message> |
<message><hr width='33%' /></message> |
<message><hr width='33%' /></message> |
$resource_selector |
$resource_selector |
</state> |
</state> |
Line 2274 CHOOSE_STUDENTS1
|
Line 2300 CHOOSE_STUDENTS1
|
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_ANON2); |
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_ANON2); |
<state name="CHOOSE_ANON2" title="Select Students and Resources"> |
<state name="CHOOSE_ANON2" title="Select Students and Resources"> |
<nextstate>PAGESIZE</nextstate> |
<nextstate>PAGESIZE</nextstate> |
<message><table><tr><td><b>Number of anonymous assignments to print?</b></td><td></message> |
<message><table><tr><td><b>Number of anonymous assignments to print:</b></td><td></message> |
<string variable="NUMBER_TO_PRINT_TOTAL" maxlength="5" size="5"> |
<string variable="NUMBER_TO_PRINT_TOTAL" maxlength="5" size="5"> |
<validator> |
<validator> |
if (((\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}+0) < 1) && |
if (((\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}+0) < 1) && |
Line 2287 CHOOSE_STUDENTS1
|
Line 2313 CHOOSE_STUDENTS1
|
</validator> |
</validator> |
</string> |
</string> |
<message></td></tr><tr><td></message> |
<message></td></tr><tr><td></message> |
<message><b>Value of CODE to print?</b></td><td></message> |
<message><b>Names to store the CODEs under for later:</b></message> |
<string variable="SINGLE_CODE" size="10" defaultvalue="zzzz"> |
<message></td><td></message> |
|
<string variable="ANON_CODE_STORAGE_NAME" maxlength="50" size="20" /> |
|
<message></td></tr><tr><td></message> |
|
<message><b>Bubble sheet type:</b></message> |
|
<message></td><td></message> |
|
<dropdown variable="CODE_OPTION" multichoice="0" allowempty="0"> |
|
$codechoice |
|
</dropdown> |
|
<message></td></tr><tr><td colspan="2"><hr width='33%' /></td></tr><tr><td></message> |
|
<message></td></tr><tr><td></message> |
|
<message><b>Enter a CODE to print:</b></td><td></message> |
|
<string variable="SINGLE_CODE" size="10"> |
<validator> |
<validator> |
if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'} && |
if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'} && |
!\$helper->{'VARS'}{'REUSE_OLD_CODES'} && |
!\$helper->{'VARS'}{'REUSE_OLD_CODES'} && |
Line 2300 CHOOSE_STUDENTS1
|
Line 2337 CHOOSE_STUDENTS1
|
} |
} |
</validator> |
</validator> |
</string> |
</string> |
<message></td></tr><tr><td></message> |
<message></td></tr><tr><td colspan="2"><hr width='33%' /></td></tr><tr><td></message> |
<message><b>Choose single code from list</b></message> |
|
<message></td><td></message> |
|
<dropdown variable="CODE_SELECTED_FROM_LIST" multichoice="0" allowempty="0"> |
|
$code_selection |
|
</dropdown> |
|
<message></td></tr><tr><td></message> |
|
<message><b>Names to store the CODEs under for later:</b></message> |
|
<message></td><td></message> |
|
<string variable="ANON_CODE_STORAGE_NAME" maxlength="50" size="20" /> |
|
<message></td></tr><tr><td></message> |
|
<message><b>Bubble sheet type:</b></message> |
|
<message></td><td></message> |
|
<dropdown variable="CODE_OPTION" multichoice="0" allowempty="0"> |
|
$codechoice |
|
</dropdown> |
|
<message></td></tr></table></message> |
|
<message><hr width='33%' /></message> |
|
<message><b>Reprint a set of saved CODEs:</b></message> |
<message><b>Reprint a set of saved CODEs:</b></message> |
|
<message></td><td></message> |
<dropdown variable="REUSE_OLD_CODES"> |
<dropdown variable="REUSE_OLD_CODES"> |
$namechoice |
$namechoice |
</dropdown> |
</dropdown> |
|
<message></td></tr></table></message> |
<message><hr width='33%' /></message> |
<message><hr width='33%' /></message> |
$resource_selector |
$resource_selector |
</state> |
</state> |
Line 2371 CHOOSE_FROM_SUBDIR
|
Line 2393 CHOOSE_FROM_SUBDIR
|
<valuefunc>return $urlValue;</valuefunc> |
<valuefunc>return $urlValue;</valuefunc> |
<choicefunc>return \$res->hasResource(\$res,sub { return !\$_[0]->is_sequence() },0,0); |
<choicefunc>return \$res->hasResource(\$res,sub { return !\$_[0]->is_sequence() },0,0); |
</choicefunc> |
</choicefunc> |
<option text='Newpage' variable='FINISHPAGE' /> |
|
</resource> |
</resource> |
</state> |
</state> |
<state name="CHOOSE_FROM_ANY_SEQUENCE" title="Select Resources To Print"> |
<state name="CHOOSE_FROM_ANY_SEQUENCE" title="Select Resources To Print"> |
Line 2631 STATEHTML
|
Line 2652 STATEHTML
|
$result .= "<select name='${var}.paper'>\n"; |
$result .= "<select name='${var}.paper'>\n"; |
|
|
my %parmhash=&Apache::lonnet::coursedescription($env{'request.course.id'}); |
my %parmhash=&Apache::lonnet::coursedescription($env{'request.course.id'}); |
my $DefaultPaperSize=$parmhash{'default_paper_size'}; |
my $DefaultPaperSize=lc($parmhash{'default_paper_size'}); |
|
$DefaultPaperSize=~s/\s//g; |
if ($DefaultPaperSize eq '') {$DefaultPaperSize='letter';} |
if ($DefaultPaperSize eq '') {$DefaultPaperSize='letter';} |
$i = 0; |
$i = 0; |
foreach (@paperSize) { |
foreach (@paperSize) { |