version 1.331, 2004/09/24 20:32:02
|
version 1.338, 2004/11/16 21:59:48
|
Line 41 use Apache::lonnavmaps;
|
Line 41 use Apache::lonnavmaps;
|
use Apache::lonratedt; |
use Apache::lonratedt; |
use POSIX qw(strftime); |
use POSIX qw(strftime); |
use Apache::lonlocal; |
use Apache::lonlocal; |
use GDBM_File; |
|
|
|
|
|
my %hash; |
|
my $LaTeXwidth = 0; |
my $LaTeXwidth = 0; |
|
|
|
|
Line 377 sub character_chart {
|
Line 374 sub character_chart {
|
my %page_formats= |
my %page_formats= |
('letter' => { |
('letter' => { |
'book' => { |
'book' => { |
'1' => [ '7.1 in','10.2 in', '-0.57 in','-0.57 in','0 in'], |
'1' => [ '7.1 in','10.2 in', '-0.57 in','-0.57 in','1 cm'], |
'2' => ['3.66 in','10.2 in', '-0.57 in','-0.57 in','0 in'] |
'2' => ['3.66 in','10.2 in', '-0.57 in','-0.57 in','1 cm'] |
}, |
}, |
'album' => { |
'album' => { |
'1' => [ '8.8 in', '6.8 in','-40 pt in', '-60 pt','0 in'], |
'1' => [ '8.8 in', '6.8 in','-40 pt in', '-60 pt','1 cm'], |
'2' => [ '4.4 in', '6.8 in','-0.5 in', '-1.5 in','3.5 in'] |
'2' => [ '4.4 in', '6.8 in','-0.5 in', '-1.5 in','3.5 in'] |
}, |
}, |
}, |
}, |
Line 519 sub page_format_transformation {
|
Line 516 sub page_format_transformation {
|
$fancypagestatement="\\rhead{}\\chead{}\\lhead{\\textbf{$name} $courseidinfo \\hfill \\thepage \\\\ \\textit{$assignment}}"; |
$fancypagestatement="\\rhead{}\\chead{}\\lhead{\\textbf{$name} $courseidinfo \\hfill \\thepage \\\\ \\textit{$assignment}}"; |
} |
} |
if ($layout eq 'album') { |
if ($layout eq 'album') { |
$text =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}$topmargintoinsert\\setlength{\\textwidth}{$textwidth}\\setlength{\\textheight}{$textheight}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt}\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\usepackage{fancyhdr}\\pagestyle{fancy}$fancypagestatement\\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1} /; |
$text =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}$topmargintoinsert\\setlength{\\textwidth}{$textwidth}\\setlength{\\textheight}{$textheight}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt}\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\usepackage{fancyhdr}\\addtolength{\\headheight}{\\baselineskip}\\pagestyle{fancy}$fancypagestatement\\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1} /; |
} elsif ($layout eq 'book') { |
} elsif ($layout eq 'book') { |
if ($choice ne 'All class print') { |
if ($choice ne 'All class print') { |
$text =~ s/\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\usepackage{fancyhdr}\\pagestyle{fancy}$fancypagestatement\\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1}/; |
$text =~ s/\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\usepackage{fancyhdr}\\addtolength{\\headheight}{\\baselineskip}\\pagestyle{fancy}$fancypagestatement\\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1}/; |
} else { |
} else { |
$text =~ s/\\pagestyle{fancy}\\rhead{}\\chead{}\s*\\begin{document}/\\textheight = $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\pagestyle{fancy}\\rhead{}\\chead{}\\begin{document}\\voffset=-0\.8cm\\setcounter{page}{1} \\vskip 5 mm /; |
$text =~ s/\\pagestyle{fancy}\\rhead{}\\chead{}\s*\\begin{document}/\\textheight = $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\pagestyle{fancy}\\rhead{}\\chead{}\\begin{document}\\voffset=-0\.8cm\\setcounter{page}{1} \\vskip 5 mm /; |
} |
} |
Line 554 sub page_cleanup {
|
Line 551 sub page_cleanup {
|
|
|
|
|
sub details_for_menu { |
sub details_for_menu { |
|
my ($helper)=@_; |
my $name_of_resourse = &Apache::lonnet::gettitle($ENV{'form.postdata'}); |
my $postdata=$ENV{'form.postdata'}; |
my $symbolic = &Apache::lonnet::symbread($ENV{'form.postdata'}); |
if (!$postdata) { $postdata=$helper->{VARS}{'postdata'}; } |
|
my $name_of_resource = &Apache::lonnet::gettitle($postdata); |
|
my $symbolic = &Apache::lonnet::symbread($postdata); |
my ($map,$id,$resource)=&Apache::lonnet::decode_symb($symbolic); |
my ($map,$id,$resource)=&Apache::lonnet::decode_symb($symbolic); |
$map=&Apache::lonnet::clutter($map); |
$map=&Apache::lonnet::clutter($map); |
my $name_of_sequence = &Apache::lonnet::gettitle($map); |
my $name_of_sequence = &Apache::lonnet::gettitle($map); |
Line 569 sub details_for_menu {
|
Line 568 sub details_for_menu {
|
$ENV{'request.course.uri'} =~ m|([^/]+)$|; |
$ENV{'request.course.uri'} =~ m|([^/]+)$|; |
$name_of_map = $1; |
$name_of_map = $1; |
} |
} |
return ($name_of_resourse,$name_of_sequence,$name_of_map); |
return ($name_of_resource,$name_of_sequence,$name_of_map); |
|
|
} |
} |
|
|
|
|
Line 1015 ENDPART
|
Line 1013 ENDPART
|
my $courseidinfo = &get_course(); |
my $courseidinfo = &get_course(); |
if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo } |
if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo } |
$prevassignment=$assignment; |
$prevassignment=$assignment; |
$result .='\newpage \noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$name.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$assignment.'}}} \vskip -5 mm '; |
$result .='\newpage \noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$name.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$assignment.'}}} \vskip 5 mm '; |
} |
} |
$result .= $texversion; |
$result .= $texversion; |
$flag_latex_header_remove = 'YES'; |
$flag_latex_header_remove = 'YES'; |
Line 1098 ENDPART
|
Line 1096 ENDPART
|
my $num_todo=$helper->{'VARS'}->{'NUMBER_TO_PRINT_TOTAL'}; |
my $num_todo=$helper->{'VARS'}->{'NUMBER_TO_PRINT_TOTAL'}; |
my $code_name=$helper->{'VARS'}->{'ANON_CODE_STORAGE_NAME'}; |
my $code_name=$helper->{'VARS'}->{'ANON_CODE_STORAGE_NAME'}; |
my $old_name=$helper->{'VARS'}->{'REUSE_OLD_CODES'}; |
my $old_name=$helper->{'VARS'}->{'REUSE_OLD_CODES'}; |
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; |
|
my ($type) = split(/_/,$helper->{'VARS'}->{'PRINT_TYPE'}); |
|
my $number_per_page=$helper->{'VARS'}->{'NUMBER_TO_PRINT'}; |
|
if ($number_per_page eq '0' || $number_per_page eq 'all') { |
|
$number_per_page=$num_todo; |
|
} |
|
my $flag_latex_header_remove = 'NO'; |
|
my %moreenv = ('textwidth' => &get_textwidth($helper,$LaTeXwidth)); |
my %moreenv = ('textwidth' => &get_textwidth($helper,$LaTeXwidth)); |
my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$num_todo,'inline','75'); |
|
my $seed=time+($$<<16)+($$); |
my $seed=time+($$<<16)+($$); |
my @allcodes; |
my @allcodes; |
if ($old_name) { |
if ($old_name) { |
my %result=&Apache::lonnet::get('CODEs',[$old_name],$cdom,$cnum); |
my %result=&Apache::lonnet::get('CODEs',[$old_name],$cdom,$cnum); |
@allcodes=split(',',$result{$old_name}); |
@allcodes=split(',',$result{$old_name}); |
|
$num_todo=scalar(@allcodes); |
} else { |
} else { |
my %allcodes; |
my %allcodes; |
srand($seed); |
srand($seed); |
Line 1125 ENDPART
|
Line 1116 ENDPART
|
} |
} |
@allcodes=keys(%allcodes); |
@allcodes=keys(%allcodes); |
} |
} |
|
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; |
|
my ($type) = split(/_/,$helper->{'VARS'}->{'PRINT_TYPE'}); |
|
my $number_per_page=$helper->{'VARS'}->{'NUMBER_TO_PRINT'}; |
|
if ($number_per_page eq '0' || $number_per_page eq 'all') { |
|
$number_per_page=$num_todo; |
|
} |
|
my $flag_latex_header_remove = 'NO'; |
|
my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$num_todo,'inline','75'); |
my $count=0; |
my $count=0; |
foreach my $code (sort(@allcodes)) { |
foreach my $code (sort(@allcodes)) { |
my $file_num=int($count/$number_per_page); |
my $file_num=int($count/$number_per_page); |
Line 1359 sub print_resources {
|
Line 1358 sub print_resources {
|
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')) { |
my %form; |
$moreenv->{'answer_output_mode'}='tex'; |
$form{'answer_output_mode'}='tex'; |
$moreenv->{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; |
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'}; |
my $ansrendered = &Apache::loncommon::get_student_answers($curresline,$username,$userdomain,$ENV{'request.course.id'},%{$moreenv}); |
my $ansrendered = &Apache::loncommon::get_student_answers($curresline,$username,$userdomain,$ENV{'request.course.id'},%form); |
|
&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') { |
$rendered=~s/(\\keephidden{ENDOFPROBLEM})/$ansrendered$1/; |
$rendered=~s/(\\keephidden{ENDOFPROBLEM})/$ansrendered$1/; |
Line 1412 sub print_resources {
|
Line 1410 sub print_resources {
|
if ($usersection ne '') {$courseidinfo.=' - Sec. '.$usersection} |
if ($usersection ne '') {$courseidinfo.=' - Sec. '.$usersection} |
my $currentassignment=&Apache::lonxml::latex_special_symbols($helper->{VARS}->{'assignment'},'header'); |
my $currentassignment=&Apache::lonxml::latex_special_symbols($helper->{VARS}->{'assignment'},'header'); |
if ($current_output=~/\\documentclass/) { |
if ($current_output=~/\\documentclass/) { |
$current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\lhead{\\textit{\\textbf{$fullname}}$courseidinfo \\hfill \\thepage \\\\ \\textit{$currentassignment}$namepostfix}\\vskip 3 mm /; |
$current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent\\lhead{\\textit{\\textbf{$fullname}}$courseidinfo \\hfill \\thepage \\\\ \\textit{$currentassignment}$namepostfix}}\\vskip 5 mm /; |
} else { |
} else { |
my $blankpages = ''; |
my $blankpages = ''; |
for (my $j=0;$j<$helper->{'VARS'}->{'EMPTY_PAGES'};$j++) {$blankpages.='\clearpage\strut\clearpage';} |
for (my $j=0;$j<$helper->{'VARS'}->{'EMPTY_PAGES'};$j++) {$blankpages.='\clearpage\strut\clearpage';} |
$current_output = '\strut\vspace*{-6 mm}\\newline\\noindent\\makebox[\\textwidth/$number_of_columns][b]{\\hrulefill}\vspace*{-2 mm}\\newline\\noindent{\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License }\\newpage '.$blankpages.'\setcounter{page}{1}\noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$fullname.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$currentassignment.'}'.$namepostfix.'}} \vskip -5 mm '.$current_output; |
$current_output = '\strut\vspace*{-6 mm}\\newline\\noindent\\makebox[\\textwidth/$number_of_columns][b]{\\hrulefill}\vspace*{-2 mm}\\newline\\noindent{\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License }\\newpage '.$blankpages.'\setcounter{page}{1}\noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$fullname.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$currentassignment.'}'.$namepostfix.'}} \vskip 5 mm '.$current_output; |
} |
} |
return ($current_output,$fullname); |
return ($current_output,$fullname); |
|
|
Line 1475 use Data::Dumper;
|
Line 1473 use Data::Dumper;
|
sub printHelper { |
sub printHelper { |
my $r = shift; |
my $r = shift; |
|
|
if ($ENV{'request.course.id'}) { |
|
my $fn=$ENV{'request.course.fn'}; |
|
tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER(),0640); |
|
} |
|
|
|
if ($r->header_only) { |
if ($r->header_only) { |
if ($ENV{'browser.mathml'}) { |
if ($ENV{'browser.mathml'}) { |
&Apache::loncommon::content_type($r,'text/xml'); |
&Apache::loncommon::content_type($r,'text/xml'); |
Line 1541 sub printHelper {
|
Line 1534 sub printHelper {
|
|
|
} |
} |
|
|
my ($resourceTitle,$sequenceTitle,$mapTitle) = &details_for_menu; |
my ($resourceTitle,$sequenceTitle,$mapTitle) = &details_for_menu($helper); |
if ($sequenceTitle ne '') {$helper->{VARS}->{'assignment'}=$sequenceTitle;} |
if ($sequenceTitle ne '') {$helper->{VARS}->{'assignment'}=$sequenceTitle;} |
|
|
|
|
Line 1710 CHOOSE_STUDENTS
|
Line 1703 CHOOSE_STUDENTS
|
my $cnum = $ENV{'course.'.$ENV{'request.course.id'}.'.num'}; |
my $cnum = $ENV{'course.'.$ENV{'request.course.id'}.'.num'}; |
my @names=&Apache::lonnet::getkeys('CODEs',$cdom,$cnum); |
my @names=&Apache::lonnet::getkeys('CODEs',$cdom,$cnum); |
my $namechoice='<choice></choice>'; |
my $namechoice='<choice></choice>'; |
foreach my $name (@names) { |
foreach my $name (sort {uc($a) cmp uc($b)} @names) { |
if ($name =~ /^error: 2 /) { next; } |
if ($name =~ /^error: 2 /) { next; } |
$namechoice.='<choice computer="'.$name.'">'.$name.'</choice>'; |
$namechoice.='<choice computer="'.$name.'">'.$name.'</choice>'; |
} |
} |
Line 1964 RNDSEED
|
Line 1957 RNDSEED
|
|
|
$r->print($helper->display()); |
$r->print($helper->display()); |
|
|
Apache::lonhelper::unregisterHelperTags(); |
&Apache::lonhelper::unregisterHelperTags(); |
|
|
untie %hash; |
|
|
|
return OK; |
return OK; |
} |
} |