--- loncom/interface/lonprintout.pm 2002/10/24 19:03:55 1.83 +++ loncom/interface/lonprintout.pm 2002/11/14 20:02:00 1.88 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.83 2002/10/24 19:03:55 sakharuk Exp $ +# $Id: lonprintout.pm,v 1.88 2002/11/14 20:02:00 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -92,13 +92,13 @@ sub menu_for_output { Current document $title_for_single_resource (prints what you just saw on the screen)
ENDMENUOUT1 - if ((not $ENV{'request.role'}=~m/^au\./) and (not $ENV{'request.role'}=~m/^ca\./)) { + if ($ENV{'form.postdata'}=~/\/res\//) { $r->print(< All problems from $title_for_sequence
- All problems plus any pages or html/xml files from $title_for_sequence
+ Problem(s) from $title_for_sequence
+ Problem(s) plus page(s) or html/xml file(s) from $title_for_sequence
ENDMENUOUT2 } - if ($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) { + if (($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) and ($ENV{'form.postdata'}=~/\/res\//)) { $r->print(< All problems in this course (warning: this may be time consuming)

@@ -149,6 +149,68 @@ ENDMENUOUT5 } +sub sequence_content_menu { + my ($key_to,$r) = @_; + my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'}); + my @sequence = split('___',$symbolic); + my $primary_sequence = '/res/'.$sequence[0]; + my @master_seq = &coming_from_hash($primary_sequence,$sequence[0]); + my @master_seq_view = @master_seq; + for (my $i=0;$i<=$#master_seq_view;$i++) { + $master_seq_view[$i]=~/\/([^\/]+)$/; + $master_seq_view[$i]=$1; + } + $r->print(< + + + + +

Mark item(s) which you want to print

+ +  + +

+ENDMENUOUT1 + my $inc=0; + for (my $i=0;$i<=$#master_seq_view;$i++) { + if ($key_to==1 && $master_seq_view[$i]=~/\.(problem|exam|quiz|assess|survey|form|library)$/) { + $r->print('
'. + $master_seq_view[$i]); + $inc++; + } elsif ($key_to==0 && $master_seq_view[$i]=~/\.(problem|exam|quiz|assess|survey|form|library|xml|htm|html|page)$/) { + $r->print('
'. + $master_seq_view[$i]); + $inc++; + } + } + $r->print(< + + + +ENDMENUOUT2 + +} + + sub problem_choice_menu { my $r = shift; my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'}); @@ -213,6 +275,7 @@ ENDMENUOUT1 } $r->print(< + @@ -312,6 +375,9 @@ sub additional_print_menu { for (my $i=0; $i<$ENV{'form.numberofproblems'};$i++) { $what_to_print .= ''; } + for (my $i=0; $i<$ENV{'form.numberoffiles'};$i++) { + $what_to_print .= ''; + } $r->print(< @@ -320,6 +386,7 @@ sub additional_print_menu { + Define one column layout parameters:
@@ -378,7 +445,7 @@ ENDPART $selectionmade = 1; my %moreenv; $moreenv{'form.grade_target'}='tex'; - if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) { + if (&Apache::lonnet::allowed('bre',$ENV{'form.url'})) { $ENV{'form.url'}=~s/http:\/\/[^\/]+//; } $moreenv{'request.filename'}=$ENV{'form.url'}; @@ -394,56 +461,42 @@ ENDPART $choice eq 'Standard LaTeX output for whole primary sequence') { #-- minimal sequence to which the current document belongs #-- where is the primary sequence containing file? - my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'}); - my @sequence = split('___',$symbolic); - my $primary_sequence = '/res/'.$sequence[0]; - my @master_seq = &coming_from_hash($primary_sequence,$sequence[0]); + my @master_seq = (); + for (my $i=0; $i<$ENV{'form.numberoffiles'};$i++) { + if ($ENV{'form.whatfile'.$i}=~/\S/) { + push @master_seq,$ENV{'form.whatfile'.$i}; + } + } #-- produce an output string my $flag_latex_header_remove = 'NO'; my $flag_page_in_sequence = 'NO'; for (my $i=0;$i<=$#master_seq;$i++) { - my ($urlp,$symb) = split /&&/, $master_seq[$i]; + my ($urlp,$symb) = split /&&/, $master_seq[$i]; if ($choice eq 'Standard LaTeX output for the primary sequence') { - #prints only problems - $selectionmade = 2; - if ($urlp =~ m/\.(problem|exam|quiz|assess|survey|form|library)/) { - my %moreenv; - $moreenv{'form.grade_target'}='tex'; - $moreenv{'form.textwidth'}=$LaTeXwidth; - &Apache::lonnet::appenv(%moreenv); - &Apache::lonnet::logthis("Trying to get $urlp with symb $symb"); - my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb)); - &Apache::lonnet::delenv('form.grade_target','form.textwidth'); - if ($flag_latex_header_remove ne 'NO') { - $texversion = &latex_header_footer_remove($texversion); - } else { - $texversion =~ s/\\end{document}//; - } - $result .= $texversion; - $flag_latex_header_remove = 'YES'; - } - } elsif ($urlp =~ /\S+/) { - #prints problems, pages and any html/xml files - $selectionmade = 3; - my %moreenv; - $moreenv{'form.grade_target'}='tex'; - &Apache::lonnet::appenv(%moreenv); - my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb)); - &Apache::lonnet::delenv('form.grade_target'); - if ($urlp =~ m/\.page/) { - ($texversion,my $number_of_columns_page) = &page_cleanup($texversion); - if ($number_of_columns_page > $number_of_columns) {$number_of_columns=$number_of_columns_page;} - $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}//; - } - $result .= $texversion; - $flag_latex_header_remove = 'YES'; + $selectionmade = 2; + } elsif ($choice eq 'Standard LaTeX output for whole primary sequence') { + $selectionmade = 3; } + my %moreenv; + $moreenv{'form.grade_target'}='tex'; + $moreenv{'form.textwidth'}=$LaTeXwidth; + &Apache::lonnet::appenv(%moreenv); + &Apache::lonnet::logthis("Trying to get $urlp with symb $symb"); + my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb)); + &Apache::lonnet::delenv('form.grade_target','form.textwidth'); + if ($urlp =~ m/\.page/) { + ($texversion,my $number_of_columns_page) = &page_cleanup($texversion); + if ($number_of_columns_page > $number_of_columns) {$number_of_columns=$number_of_columns_page;} + $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}//; + } + $result .= $texversion; + $flag_latex_header_remove = 'YES'; } &Apache::lonnet::delenv('form.counter'); if ($flag_page_in_sequence eq 'YES') {$result =~ s/\\usepackage{calc}/\\usepackage{calc}\\usepackage{longtable}/;} @@ -517,7 +570,8 @@ ENDPART } } if ($current_output=~/\\documentclass/) { - $current_output =~ s/\\begin{document}/\\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$fullname}}\\hskip 1\.4in } \\vskip 5 mm /; + my $courseidinfo = $ENV{'course.'.$ENV{'request.course.id'}.'.description'}; + $current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm}\\setlength{\\headheight}{1cm}\\setlength{\\headsep}{0.5cm}\\pagestyle{myheadings}\\markboth{}{{\\textbf{$fullname} $courseidinfo - $assignment}}\\begin{document} /; } else { $current_output = '\\vskip 3mm\noindent\parbox{\minipagewidth}{\noindent\fbox{\textbf{'.$fullname.'}}\hskip 1.4in } \vskip 5 mm '.$current_output; } @@ -1112,8 +1166,7 @@ sub page_format_transformation { $text =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}\\setlength{\\topmargin}{200pt}\\setlength{\\textwidth}{$textwidth}\\setlength{\\textheight}{$textheight}\\setlength{\\parindent}{20pt}\\setlength{\\marginparwidth}{90pt}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt}\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm} \\begin{document}\\setcounter{page}{1}\\noindent\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}} \\hfill $courseidinfo} \\vskip 5 mm /; } elsif ($layout eq 'CAPA') { if ($choice ne 'All class print') { -# $text =~ s/\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}\\noindent\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}} \\hfill $courseidinfo} \\vskip 5 mm /; - $text =~ s/\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\setlength{\\topmargin}{1cm}\\setlength{\\headheight}{1cm}\\setlength{\\headsep}{0.5cm}\\markboth{}{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}} - \\textbf{$assignment} from \\textbf{$courseidinfo}}\\pagestyle{myheadings}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}/; + $text =~ s/\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\setlength{\\topmargin}{1cm}\\setlength{\\headheight}{1cm}\\setlength{\\headsep}{0.5cm}\\markboth{}{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}} $courseidinfo - $assignment}\\pagestyle{myheadings}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}/; } else { $text =~ s/\\begin{document}/\\setlength{\\textheight}{$textheight}\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}\\setlength{\\textwidth}{$textwidth}\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1} \\vskip 5 mm /; } @@ -1218,7 +1271,11 @@ sub handler { } #-- additional menu for class printing if ($ENV{'form.phase'} eq 'two') { - if($ENV{'form.choice'} eq 'All class print') { + if($ENV{'form.choice'} eq 'Standard LaTeX output for whole primary sequence') { + &sequence_content_menu(0,$r); + } elsif($ENV{'form.choice'} eq 'Standard LaTeX output for the primary sequence') { + &sequence_content_menu(1,$r); + } elsif($ENV{'form.choice'} eq 'All class print') { &additional_class_menu($r); } elsif($ENV{'form.choice'} eq 'Subdirectory print') { &problem_choice_menu($r);