--- loncom/interface/lonprintout.pm 2003/09/30 14:43:26 1.243
+++ loncom/interface/lonprintout.pm 2003/10/09 19:15:25 1.253
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.243 2003/09/30 14:43:26 bowersj2 Exp $
+# $Id: lonprintout.pm,v 1.253 2003/10/09 19:15:25 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -656,6 +656,8 @@ sub path_to_problem {
}
}
}
+ } else {
+ $newurlp=$urlp;
}
return '{\small\noindent\verb|'.$newurlp.'|\vskip 0 mm}';
}
@@ -740,8 +742,15 @@ ENDPART
$texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
} 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);
+ if ($helper->{'VARS'}->{'construction'} ne '1') {
+ $texversion.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($helper->{'VARS'}->{'symb'}).'}\vskip 0 mm ';
+ $texversion.=&path_to_problem ($currentURL,$LaTeXwidth);
+ } else {
+ $texversion.='\vskip 0 mm \noindent\textbf{Prints from construction space - there is no title.}\vskip 0 mm ';
+ my $URLpath=$currentURL;
+ $URLpath=~s/~([^\/]+)/public_html\/$1\/$1/;
+ $texversion.=&path_to_problem ($URLpath,$LaTeXwidth);
+ }
$texversion.='\vskip 1 mm '.$answer.'\end{document}';
}
}
@@ -769,21 +778,33 @@ ENDPART
$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 $texversion='';
+ if ($helper->{'VARS'}->{'ANSWER_TYPE'} ne 'only') {
+ 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;
+ $texversion=&Apache::lonnet::ssi($urlp,%form);
+ }
+ if((($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
+ ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) &&
+ ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library|page)$/)) {
my %form;
$form{'grade_target'}='answer';
$form{'answer_output_mode'}='tex';
$form{'rndseed'}=$rndseed;
if ($urlp=~/\/res\//) {$ENV{'request.state'}='published';}
my $answer=&Apache::lonnet::ssi($urlp,%form);
- $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
+ if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
+ $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
+ } 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.='\vskip 1 mm '.$answer.'\end{document}';
+ }
}
if ($flag_latex_header_remove ne 'NO') {
$texversion = &latex_header_footer_remove($texversion);
@@ -817,7 +838,8 @@ ENDPART
}
} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') or
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or
- ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems')) {
+ ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') or
+ ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences')) {
#-- produce an output string
my %form=();
$form{'grade_target'}='tex';
@@ -843,6 +865,7 @@ ENDPART
$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
+ if ($i==0) {$prevassignment=$assignment;}
#&Apache::lonnet::logthis("Trying to get $urlp with symb $master_seq[$i]");
my $texversion=&Apache::lonnet::ssi($urlp,%form);
if ($urlp=~/\.page$/) {
@@ -851,24 +874,36 @@ ENDPART
$texversion =~ s/\\end{document}\d*/\\end{document}/;
$flag_page_in_sequence = 'YES';
}
- if ($flag_latex_header_remove ne 'NO') {
- $texversion = &latex_header_footer_remove($texversion);
- } else {
- $texversion =~ s/\\end{document}//;
- }
- if($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
+ if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
+ ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
my %form;
$form{'grade_target'}='answer';
$form{'answer_output_mode'}='tex';
my $answer=&Apache::lonnet::ssi($urlp,%form);
- $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
+ if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
+ $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
+ } else {
+ if ($urlp=~/\.(problem|exam|quiz|library)$/) {
+ $texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
+ $texversion.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($urlp).'}\vskip 0 mm ';
+ $texversion.=&path_to_problem ($urlp,$LaTeXwidth);
+ $texversion.='\vskip 1 mm '.$answer;
+ } else {
+ $texversion='';
+ }
+ }
+ }
+ 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 (($selectionmade == 4) and ($assignment ne $prevassignment) and ($i>=1)) {
- my ($name,$courseidinfo) = &get_name;
- $courseidinfo = &get_course();
+ if (($selectionmade == 4) and ($assignment ne $prevassignment)) {
+ my $name = &get_name();
+ 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 ';
@@ -906,17 +941,25 @@ ENDPART
if (&Apache::lonnet::allowed('bre',$res_url)) {
my $rendered = &Apache::loncommon::get_student_view($curresline,$username,$userdomain,
$ENV{'request.course.id'},'tex');
- if ($flag_latex_header_remove eq 'YES') {
- $rendered = &latex_header_footer_remove($rendered);
- } else {
- $rendered =~ s/\\end{document}//;
- }
- if($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
+ if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
+ ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
my %form;
$form{'answer_output_mode'}='tex';
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
my $ansrendered = &Apache::loncommon::get_student_answers($curresline,$username,$userdomain,$ENV{'request.course.id'},%form);
- $rendered=~s/(\\keephidden{ENDOFPROBLEM})/$ansrendered$1/;
+ if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
+ $rendered=~s/(\\keephidden{ENDOFPROBLEM})/$ansrendered$1/;
+ } 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.='\vskip 1 mm '.$ansrendered;
+ }
+ }
+ if ($flag_latex_header_remove eq 'YES') {
+ $rendered = &latex_header_footer_remove($rendered);
+ } else {
+ $rendered =~ s/\\end{document}//;
}
$current_output .= $rendered;
}
@@ -954,6 +997,7 @@ ENDPART
}
for (my $i=0;$i<=$#list_of_files;$i++) {
my $urlp = $list_of_files[$i];
+ $urlp=~s|//|/|;
if ($urlp=~/\//) {
my %form;
$form{'grade_target'}='tex';
@@ -965,17 +1009,34 @@ ENDPART
$urlp =~ s|^/home/httpd/html||;
}
my $texversion=&Apache::lonnet::ssi($urlp,%form);
- if($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
+ if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
+ ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
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 ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
+ $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
+ } else {
+ $texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
+ if ($helper->{'VARS'}->{'construction'} ne '1') {
+ $texversion.='\vskip 0 mm \noindent ';
+ $texversion.=&path_to_problem ($urlp,$LaTeXwidth);
+ } else {
+ $texversion.='\vskip 0 mm \noindent\textbf{Prints from construction space - there is no title.}\vskip 0 mm ';
+ my $URLpath=$urlp;
+ $URLpath=~s/~([^\/]+)/public_html\/$1\/$1/;
+ $texversion.=&path_to_problem ($URLpath,$LaTeXwidth);
+ }
+ $texversion.='\vskip 1 mm '.$answer.'\end{document}';
+ }
}
#this chunck is responsible for printing the path to problem
- my $newurlp=&path_to_problem($urlp,$LaTeXwidth);
+ my $newurlp=$urlp;
+ if ($newurlp=~/~/) {$newurlp=~s|\/~([^\/]+)\/|\/home\/$1\/public_html\/|;}
+ $newurlp=&path_to_problem($newurlp,$LaTeXwidth);
$texversion =~ s/(\\begin{minipage}{\\textwidth})/$1 $newurlp/;
if ($flag_latex_header_remove ne 'NO') {
$texversion = &latex_header_footer_remove($texversion);
@@ -1325,7 +1386,11 @@ CHOOSE_FROM_SUBDIR
# another resource selector for that sequence
if (!$helper->{VARS}->{'construction'}) {
push @$printChoices, ["Resources from selected sequence in course",
- 'map_problems_pages', 'CHOOSE_SEQUENCE'];
+ 'select_sequences', 'CHOOSE_SEQUENCE'];
+ my $escapedSequenceName = $helper->{VARS}->{'SEQUENCE'};
+ #Escape apostrophes and backslashes for Perl
+ $escapedSequenceName =~ s/\\/\\\\/g;
+ $escapedSequenceName =~ s/'/\\'/g;
&Apache::lonxml::xmlparse($r, 'helper', <
Select the sequence to print resources from:
@@ -1340,7 +1405,7 @@ CHOOSE_FROM_SUBDIR
PAGESIZE
return $isProblem
- return $helper->{VARS}->{'SEQUENCE'};
+ return '$escapedSequenceName';
return $symbFilter;