version 1.525, 2008/03/28 15:22:48
|
version 1.546, 2008/12/06 12:49:18
|
Line 39 use Apache::File();
|
Line 39 use Apache::File();
|
use Apache::lonnavmaps; |
use Apache::lonnavmaps; |
use Apache::admannotations; |
use Apache::admannotations; |
use Apache::lonenc; |
use Apache::lonenc; |
|
use Apache::entities; |
|
|
use HTTP::Response; |
use HTTP::Response; |
|
|
use LONCAPA::map(); |
use LONCAPA::map(); |
Line 150 sub ssi_with_retries {
|
Line 152 sub ssi_with_retries {
|
$ssi_error = 1; |
$ssi_error = 1; |
$ssi_last_error_resource = $resource; |
$ssi_last_error_resource = $resource; |
$ssi_last_error = $response->code . " " . $response->message; |
$ssi_last_error = $response->code . " " . $response->message; |
$content='\section*{!!! An error occured !!!}'; |
$content='\section*{!!! An error occurred !!!}'; |
&Apache::lonnet::logthis("Error in SSI resource: $resource Error: $ssi_last_error"); |
&Apache::lonnet::logthis("Error in SSI resource: $resource Error: $ssi_last_error"); |
} |
} |
|
|
Line 164 sub get_student_view_with_retries {
|
Line 166 sub get_student_view_with_retries {
|
my ($content, $response) = &Apache::loncommon::get_student_view_with_retries($curresline,$retries,$username,$userdomain,$courseid,$target,$moreenv); |
my ($content, $response) = &Apache::loncommon::get_student_view_with_retries($curresline,$retries,$username,$userdomain,$courseid,$target,$moreenv); |
if (!$response->is_success) { |
if (!$response->is_success) { |
$ssi_error = 1; |
$ssi_error = 1; |
$ssi_last_error_resource = $curresline; |
$ssi_last_error_resource = $curresline.' for user '.$username.':'.$userdomain; |
$ssi_last_error = $response->code . " " . $response->message; |
$ssi_last_error = $response->code . " " . $response->message; |
$content='\section*{!!! An error occured !!!}'; |
$content='\section*{!!! An error occurred !!!}'; |
&Apache::lonnet::logthis("Error in SSI (student view) resource: $curresline Error: $ssi_last_error"); |
&Apache::lonnet::logthis("Error in SSI (student view) resource: $curresline Error: $ssi_last_error User: $username:$userdomain"); |
} |
} |
|
|
return $content; |
return $content; |
|
|
} |
} |
Line 228 sub printf_style_subst {
|
Line 229 sub printf_style_subst {
|
# %a - Assignment name. |
# %a - Assignment name. |
# %c - Course name. |
# %c - Course name. |
# %n - Student name. |
# %n - Student name. |
|
# %s - The section if it is supplied. |
# |
# |
sub format_page_header { |
sub format_page_header { |
my ($width, $format, $assignment, $course, $student) = @_; |
my ($width, $format, $assignment, $course, $student, $section) = @_; |
|
|
|
|
$width = &recalcto_mm($width); # Get width in mm. |
$width = &recalcto_mm($width); # Get width in mm. |
# Default format? |
# Default format? |
Line 247 sub format_page_header {
|
Line 250 sub format_page_header {
|
# - Allow the assignment to be 2 lines (wrapped). |
# - Allow the assignment to be 2 lines (wrapped). |
# |
# |
my $chars_per_line = $width/2; # Character/textline. |
my $chars_per_line = $width/2; # Character/textline. |
|
|
|
|
|
|
my $firstline = "$student $course"; |
my $name_length = int($chars_per_line *3 /4); |
if (length($firstline) > $chars_per_line) { |
my $sec_length = int($chars_per_line / 5); |
my $lastchar = $chars_per_line - length($student) - 1; |
|
if ($lastchar > 0) { |
$format = "%$name_length".'n'; |
$course = substr($course, 0, $lastchar); |
|
} else { # Nothing left of course: |
if ($section) { |
$course = ''; |
$format .= ' - Sec: '."%$sec_length".'s'; |
} |
|
} |
|
if (length($assignment) > $chars_per_line) { |
|
$assignment = substr($assignment, 0, $chars_per_line); |
|
} |
} |
|
|
$format = "\\textbf{$student} $course \\hfill \\thepage \\\\ \\textit{$assignment}"; |
|
|
|
} else { |
|
# An open question is how to handle long user formatted page headers... |
|
# A possible future is to support e.g. %na so that the user can control |
|
# the truncation of the elements that can appear in the header. |
|
# |
|
$format = &printf_style_subst("a", $format, $assignment); |
|
$format = &printf_style_subst("c", $format, $course); |
|
$format = &printf_style_subst("n", $format, $student); |
|
|
|
# If the user put %'s in the format string, they must be escaped |
|
# to \% else LaTeX will think they are comments and terminate |
|
# the line.. which is bad!!! |
|
|
|
|
$format .= '\\\\%c \\\\ %a'; |
|
|
|
|
} |
} |
|
# An open question is how to handle long user formatted page headers... |
|
# A possible future is to support e.g. %na so that the user can control |
|
# the truncation of the elements that can appear in the header. |
|
# |
|
$format = &printf_style_subst("a", $format, $assignment); |
|
$format = &printf_style_subst("c", $format, $course); |
|
$format = &printf_style_subst("n", $format, $student); |
|
$format = &printf_style_subst("s", $format, $section); |
|
|
|
|
|
# If the user put %'s in the format string, they must be escaped |
|
# to \% else LaTeX will think they are comments and terminate |
|
# the line.. which is bad!!! |
|
|
|
# If the user has role author, $course and $assignment are empty so |
|
# there is '\\ \\ ' in the page header. That's cause a error in LaTeX |
|
if($format =~ /\\\\\s\\\\\s/) { |
|
#TODO find sensible caption for page header |
|
my $testPrintout = '\\\\'.&mt('Construction Space').' \\\\'.&mt('Test-Printout '); |
|
$format =~ s/\\\\\s\\\\\s/$testPrintout/; |
|
} |
|
|
|
|
return $format; |
return $format; |
Line 384 sub is_valid_alpha_code {
|
Line 392 sub is_valid_alpha_code {
|
sub is_code_valid { |
sub is_code_valid { |
my ($code_value, $code_option) = @_; |
my ($code_value, $code_option) = @_; |
my ($code_type, $code_length) = ('letter', 6); # defaults. |
my ($code_type, $code_length) = ('letter', 6); # defaults. |
open(FG, $Apache::lonnet::perlvar{'lonTabDir'}.'/scantronformat.tab'); |
my @lines = &Apache::grades::get_scantronformat_file(); |
foreach my $line (<FG>) { |
foreach my $line (@lines) { |
my ($name, $type, $length) = (split(/:/, $line))[0,2,4]; |
my ($name, $type, $length) = (split(/:/, $line))[0,2,4]; |
if($name eq $code_option) { |
if($name eq $code_option) { |
$code_length = $length; |
$code_length = $length; |
Line 503 sub adjust_number_to_print {
|
Line 511 sub adjust_number_to_print {
|
# Unmodified. |
# Unmodified. |
} else { |
} else { |
# Error!!!! |
# Error!!!! |
|
|
croak "bad SPLIT_PDFS: $split_pdf in lonprintout::adjust_number_to_print"; |
croak "bad SPLIT_PDFS: $split_pdf in lonprintout::adjust_number_to_print"; |
|
|
} |
} |
} |
} |
|
|
|
|
sub character_chart { |
sub character_chart { |
|
my $result = shift; |
|
return &Apache::entities::replace_entities($result); |
|
} |
|
|
|
sub old_character_chart { |
my $result = shift; |
my $result = shift; |
$result =~ s/&\#0?0?(7|9);//g; |
$result =~ s/&\#0?0?(7|9);//g; |
$result =~ s/&\#0?(10|13);//g; |
$result =~ s/&\#0?(10|13);//g; |
Line 630 sub character_chart {
|
Line 645 sub character_chart {
|
$result =~ s/&(\#165|yen);/\\textyen /g; |
$result =~ s/&(\#165|yen);/\\textyen /g; |
$result =~ s/&(\#166|brvbar);/\\textbrokenbar /g; |
$result =~ s/&(\#166|brvbar);/\\textbrokenbar /g; |
$result =~ s/&(\#167|sect);/\\textsection /g; |
$result =~ s/&(\#167|sect);/\\textsection /g; |
$result =~ s/&(\#168|uml);/\\texthighdieresis /g; |
$result =~ s/&(\#168|uml);/\\"\{\} /g; |
$result =~ s/&(\#169|copy);/\\copyright /g; |
$result =~ s/&(\#169|copy);/\\copyright /g; |
$result =~ s/&(\#170|ordf);/\\textordfeminine /g; |
$result =~ s/&(\#170|ordf);/\\textordfeminine /g; |
$result =~ s/&(\#172|not);/\\ensuremath\{\\neg\}/g; |
$result =~ s/&(\#172|not);/\\ensuremath\{\\neg\}/g; |
Line 641 sub character_chart {
|
Line 656 sub character_chart {
|
$result =~ s/&(\#177|plusmn);/\\ensuremath\{\\pm\}/g; |
$result =~ s/&(\#177|plusmn);/\\ensuremath\{\\pm\}/g; |
$result =~ s/&(\#178|sup2);/\\ensuremath\{^2\}/g; |
$result =~ s/&(\#178|sup2);/\\ensuremath\{^2\}/g; |
$result =~ s/&(\#179|sup3);/\\ensuremath\{^3\}/g; |
$result =~ s/&(\#179|sup3);/\\ensuremath\{^3\}/g; |
$result =~ s/&(\#180|acute);/\\textacute /g; |
$result =~ s/&(\#180|acute);/\\'\{\} /g; |
$result =~ s/&(\#181|micro);/\\ensuremath\{\\mu\}/g; |
$result =~ s/&(\#181|micro);/\\ensuremath\{\\mu\}/g; |
$result =~ s/&(\#182|para);/\\P/g; |
$result =~ s/&(\#182|para);/\\P/g; |
$result =~ s/&(\#183|middot);/\\ensuremath\{\\cdot\}/g; |
$result =~ s/&(\#183|middot);/\\ensuremath\{\\cdot\}/g; |
Line 970 sub get_course {
|
Line 985 sub get_course {
|
my $courseidinfo; |
my $courseidinfo; |
if (defined($env{'request.course.id'})) { |
if (defined($env{'request.course.id'})) { |
$courseidinfo = &Apache::lonxml::latex_special_symbols(&unescape($env{'course.'.$env{'request.course.id'}.'.description'}),'header'); |
$courseidinfo = &Apache::lonxml::latex_special_symbols(&unescape($env{'course.'.$env{'request.course.id'}.'.description'}),'header'); |
|
my $sec = $env{'request.course.sec'}; |
|
|
} |
} |
return $courseidinfo; |
return $courseidinfo; |
} |
} |
Line 992 sub page_format_transformation {
|
Line 1009 sub page_format_transformation {
|
|
|
my $name = &get_name(); |
my $name = &get_name(); |
my $courseidinfo = &get_course(); |
my $courseidinfo = &get_course(); |
if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo } |
|
my $header_text = $parmhash{'print_header_format'}; |
my $header_text = $parmhash{'print_header_format'}; |
$header_text = &format_page_header($textwidth, $header_text, $assignment, |
$header_text = &format_page_header($textwidth, $header_text, $assignment, |
$courseidinfo, $name); |
$courseidinfo, $name); |
Line 1143 sub print_latex_header {
|
Line 1159 sub print_latex_header {
|
'\usepackage[dvips]{graphicx}\usepackage{epsfig}'."\n". |
'\usepackage[dvips]{graphicx}\usepackage{epsfig}'."\n". |
'\usepackage{wrapfig}'. |
'\usepackage{wrapfig}'. |
'\usepackage{picins}\usepackage{calc}'."\n". |
'\usepackage{picins}\usepackage{calc}'."\n". |
'\usepackage[utf8]{inputenc}'."\n". |
'\usepackage[T1]{fontenc}'."\n". |
|
'\usepackage{lmodern}'."\n". |
|
'\usepackage[postscript]{ucs}'."\n". |
|
'\usepackage[utf8x]{inputenc}'."\n". |
|
'\usepackage{pifont}' . "\n". |
|
'\usepackage{latexsym}'."\n". |
|
'\usepackage{amsmath}'. |
|
'\usepackage{amssymb}'. |
|
'\usepackage{amsfonts}'. |
|
'\usepackage{amsthm}'. |
|
'\usepackage{amscd}'. |
'\newenvironment{choicelist}{\begin{list}{}{\setlength{\rightmargin}{0in}'."\n". |
'\newenvironment{choicelist}{\begin{list}{}{\setlength{\rightmargin}{0in}'."\n". |
'\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.05in}'."\n". |
'\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.05in}'."\n". |
'\setlength{\itemsep}{0.022in}\setlength{\parsep}{0in}'."\n". |
'\setlength{\itemsep}{0.022in}\setlength{\parsep}{0in}'."\n". |
Line 1255 sub recently_generated {
|
Line 1281 sub recently_generated {
|
$cuid,$cgid,$crdev,$csize, |
$cuid,$cgid,$crdev,$csize, |
$catime,$cmtime,$cctime, |
$catime,$cmtime,$cctime, |
$cblksize,$cblocks)=stat($prtspool.'/'.$filename); |
$cblksize,$cblocks)=stat($prtspool.'/'.$filename); |
my $result="<a href='/prtspool/$filename'>". |
my $ext_text = 'pdf' ? &mt('PDF File'):&mt('Zip File'); |
&mt('Generated [_1] ([_2] bytes)', |
my $result=&Apache::loncommon::start_data_table_row() |
&Apache::lonlocal::locallocaltime($cctime),$csize). |
.'<td>' |
'</a><br />'; |
.'<a href="/prtspool/'.$filename.'">'.$ext_text.'</a>' |
|
.'</td>' |
|
.'<td>'.&Apache::lonlocal::locallocaltime($cctime).'</td>' |
|
.'<td align="right">'.$csize.'</td>' |
|
.&Apache::loncommon::end_data_table_row(); |
if ($ext eq 'pdf') { $pdf_result .= $result; } |
if ($ext eq 'pdf') { $pdf_result .= $result; } |
if ($ext eq 'zip') { $zip_result .= $result; } |
if ($ext eq 'zip') { $zip_result .= $result; } |
} |
} |
|
if ($zip_result || $pdf_result) { |
|
$r->print('<hr />'); |
|
} |
if ($zip_result) { |
if ($zip_result) { |
$r->print('<h4>'.&mt('Recently generated printout zip files')."</h4>\n" |
$r->print('<h3>'.&mt('Recently generated printout zip files')."</h3>\n" |
.$zip_result); |
.&Apache::loncommon::start_data_table() |
|
.&Apache::loncommon::start_data_table_header_row() |
|
.'<th>'.&mt('Download').'</th>' |
|
.'<th>'.&mt('Creation Date').'</th>' |
|
.'<th>'.&mt('File Size (Bytes)').'</th>' |
|
.&Apache::loncommon::end_data_table_header_row() |
|
.$zip_result |
|
.&Apache::loncommon::end_data_table() |
|
); |
} |
} |
if ($pdf_result) { |
if ($pdf_result) { |
$r->print('<h4>'.&mt('Recently generated printouts')."</h4>\n" |
$r->print('<h3>'.&mt('Recently generated printouts')."</h3>\n" |
.$pdf_result); |
.&Apache::loncommon::start_data_table() |
|
.&Apache::loncommon::start_data_table_header_row() |
|
.'<th>'.&mt('Download').'</th>' |
|
.'<th>'.&mt('Creation Date').'</th>' |
|
.'<th>'.&mt('File Size (Bytes)').'</th>' |
|
.&Apache::loncommon::end_data_table_header_row() |
|
.$pdf_result |
|
.&Apache::loncommon::end_data_table() |
|
); |
} |
} |
} |
} |
|
|
Line 1456 ENDPART
|
Line 1505 ENDPART
|
my ($result,$selectionmade) = ('',''); |
my ($result,$selectionmade) = ('',''); |
my $number_of_columns = 1; #used only for pages to determine the width of the cell |
my $number_of_columns = 1; #used only for pages to determine the width of the cell |
my @temporary_array=split /\|/,$format_from_helper; |
my @temporary_array=split /\|/,$format_from_helper; |
my ($laystyle,$numberofcolumns,$papersize)=@temporary_array; |
my ($laystyle,$numberofcolumns,$papersize,$pdfFormFields)=@temporary_array; |
if ($laystyle eq 'L') { |
if ($laystyle eq 'L') { |
$laystyle='album'; |
$laystyle='album'; |
} else { |
} else { |
Line 1477 ENDPART
|
Line 1526 ENDPART
|
my %form; |
my %form; |
$form{'grade_target'} = 'tex'; |
$form{'grade_target'} = 'tex'; |
$form{'textwidth'} = &get_textwidth($helper, $LaTeXwidth); |
$form{'textwidth'} = &get_textwidth($helper, $LaTeXwidth); |
|
$form{'pdfFormFields'} = $pdfFormFields; |
|
|
# If form.showallfoils is set, then request all foils be shown: |
# If form.showallfoils is set, then request all foils be shown: |
# privilege will be enforced both by not allowing the |
# privilege will be enforced both by not allowing the |
Line 1648 ENDPART
|
Line 1698 ENDPART
|
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') or |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') or |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_resources') or # BUGBUG |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_resources') or # BUGBUG |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences')) { |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences') |
|
) { |
|
|
|
|
#-- produce an output string |
#-- produce an output string |
Line 1656 ENDPART
|
Line 1707 ENDPART
|
$selectionmade = 2; |
$selectionmade = 2; |
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') { |
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') { |
$selectionmade = 3; |
$selectionmade = 3; |
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') { |
} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') |
|
) { |
$selectionmade = 4; |
$selectionmade = 4; |
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_resources') { #BUGBUG |
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_resources') { #BUGBUG |
$selectionmade = 4; |
$selectionmade = 4; |
Line 1760 ENDPART
|
Line 1812 ENDPART
|
if (($selectionmade == 4) and ($assignment ne $prevassignment)) { |
if (($selectionmade == 4) and ($assignment ne $prevassignment)) { |
my $name = &get_name(); |
my $name = &get_name(); |
my $courseidinfo = &get_course(); |
my $courseidinfo = &get_course(); |
if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo } |
|
$prevassignment=$assignment; |
$prevassignment=$assignment; |
my $header_text = $parmhash{'print_header_format'}; |
my $header_text = $parmhash{'print_header_format'}; |
$header_text = &format_page_header($textwidth, $header_text, |
$header_text = &format_page_header($textwidth, $header_text, |
Line 1811 ENDPART
|
Line 1862 ENDPART
|
} |
} |
$result .= '\end{document}'; |
$result .= '\end{document}'; |
} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') || |
} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') || |
|
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems_students') || |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_students')){ |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_students')){ |
|
|
|
|
#-- prints assignments for whole class or for selected students |
#-- prints assignments for whole class or for selected students |
my $type; |
my $type; |
if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') { |
if (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') || |
|
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems_students') ) { |
$selectionmade=5; |
$selectionmade=5; |
$type='problems'; |
$type='problems'; |
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_students') { |
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_students') { |
Line 1913 ENDPART
|
Line 1966 ENDPART
|
my $selected_code = $helper->{'VARS'}->{'CODE_SELECTED_FROM_LIST'}; |
my $selected_code = $helper->{'VARS'}->{'CODE_SELECTED_FROM_LIST'}; |
|
|
my $code_option=$helper->{'VARS'}->{'CODE_OPTION'}; |
my $code_option=$helper->{'VARS'}->{'CODE_OPTION'}; |
open(FH,$Apache::lonnet::perlvar{'lonTabDir'}.'/scantronformat.tab'); |
my @lines = &Apache::grades::get_scantronformat_file(); |
my ($code_type,$code_length)=('letter',6); |
my ($code_type,$code_length)=('letter',6); |
foreach my $line (<FH>) { |
foreach my $line (@lines) { |
my ($name,$type,$length) = (split(/:/,$line))[0,2,4]; |
my ($name,$type,$length) = (split(/:/,$line))[0,2,4]; |
if ($name eq $code_option) { |
if ($name eq $code_option) { |
$code_length=$length; |
$code_length=$length; |
Line 2181 ENDPART
|
Line 2234 ENDPART
|
"cgi.$identifier.resources" => $resources_printed}); |
"cgi.$identifier.resources" => $resources_printed}); |
|
|
my $end_page = &Apache::loncommon::end_page(); |
my $end_page = &Apache::loncommon::end_page(); |
|
my $continue_text = &mt('Continue'); |
# If there's been an unrecoverable SSI error, report it to the user |
# If there's been an unrecoverable SSI error, report it to the user |
if ($ssi_error) { |
if ($ssi_error) { |
my $helpurl = &Apache::loncommon::top_nav_help('Helpdesk'); |
my $helpurl = &Apache::loncommon::top_nav_help('Helpdesk'); |
my $end_page = &Apache::loncommon::end_page(); |
|
$r->print('<br /><h2>'.&mt('An unrecoverable network error occurred:').'</h2><p> '. |
$r->print('<br /><h2>'.&mt('An unrecoverable network error occurred:').'</h2><p> '. |
&mt('One of the resources ([_1]) you chose to print could not be rendered due to an unrecoverable error when communicating with a server:', |
&mt('At least one of the resources you chose to print could not be rendered due to an unrecoverable error when communicating with a server:'). |
$ssi_last_error_resource).' <br />'.$ssi_last_error. |
'<br />'.$ssi_last_error_resource.'<br />'.$ssi_last_error. |
'</p><p>'.&mt('Make sure to carefully inspect your output file! The errors will be marked in the file.').'<br />'. |
'</p><p>'.&mt('You can continue using the link provided below, but make sure to carefully inspect your output file! The errors will be marked in the file.').'<br />'. |
&mt('You may be able to reprint the individual resources for which this error occured, as the issue may be temporary.'). |
&mt('You may be able to reprint the individual resources for which this error occurred, as the issue may be temporary.'). |
'<br />'.&mt('If the error persists, please contact the [_1] for assistance.',$helpurl).'</p><p>'. |
'<br />'.&mt('If the error persists, please contact the [_1] for assistance.',$helpurl).'</p><p>'. |
&mt('We apologize for the inconvenience.').'</p>'. |
&mt('We apologize for the inconvenience.').'</p>'. |
'<a href="/cgi-bin/printout.pl?$identifier">Continue</a>'.$end_page); |
'<a href="/cgi-bin/printout.pl?'.$identifier.'">'.$continue_text.'</a>'.$end_page); |
} else { |
} else { |
$r->print(<<FINALEND); |
$r->print(<<FINALEND); |
<br /> |
<br /> |
<meta http-equiv="Refresh" content="0; url=/cgi-bin/printout.pl?$identifier" /> |
<meta http-equiv="Refresh" content="0; url=/cgi-bin/printout.pl?$identifier" /> |
<a href="/cgi-bin/printout.pl?$identifier">Continue</a> |
<a href="/cgi-bin/printout.pl?$identifier">$continue_text</a> |
$end_page |
$end_page |
FINALEND |
FINALEND |
} # endif ssi errors. |
} # endif ssi errors. |
} |
} |
|
|
|
|
Line 2273 sub print_resources {
|
Line 2326 sub print_resources {
|
|
|
&Apache::lonxml::remember_problem_counter(); |
&Apache::lonxml::remember_problem_counter(); |
|
|
my $rendered = &Apache::loncommon::get_student_view_with_retries($curresline,$ssi_retry_count,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv); |
my $rendered = &get_student_view_with_retries($curresline,$ssi_retry_count,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv); |
|
|
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 2315 sub print_resources {
|
Line 2368 sub print_resources {
|
$current_output .= $rendered; |
$current_output .= $rendered; |
} 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 = &get_student_view_with_retries($curresline,$ssi_retry_count,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv); |
if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') { |
if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') { |
my $url = &Apache::lonnet::clutter($res_url); |
my $url = &Apache::lonnet::clutter($res_url); |
my $annotation = &annotate($url); |
my $annotation = &annotate($url); |
Line 2343 sub print_resources {
|
Line 2396 sub print_resources {
|
if (&Apache::loncommon::connection_aborted($r)) { last; } |
if (&Apache::loncommon::connection_aborted($r)) { last; } |
} |
} |
my $courseidinfo = &get_course(); |
my $courseidinfo = &get_course(); |
if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo } |
|
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'); |
my $header_line = |
my $header_line = |
&format_page_header($LaTeXwidth, $parmhash{'print_header_format'}, |
&format_page_header($LaTeXwidth, $parmhash{'print_header_format'}, |
$currentassignment, $courseidinfo, $fullname); |
$currentassignment, $courseidinfo, $fullname, $usersection); |
my $header_start = ($columns_in_format == 1) ? '\lhead' |
my $header_start = ($columns_in_format == 1) ? '\lhead' |
: '\fancyhead[LO]'; |
: '\fancyhead[LO]'; |
$header_line = $header_start.'{'.$header_line.'}'; |
$header_line = $header_start.'{'.$header_line.'}'; |
Line 2620 sub printHelper {
|
Line 2671 sub printHelper {
|
} |
} |
|
|
# Useful filter strings |
# Useful filter strings |
my $isProblem = '($res->is_problem()||$res->contains_problem) '; |
my $isProblem = '($res->is_problem()||$res->contains_problem||$res->is_practice()) '; |
$isProblem .= ' && !$res->randomout()' if !$userCanSeeHidden; |
$isProblem .= ' && !$res->randomout()' if !$userCanSeeHidden; |
my $isProblemOrMap = '$res->is_problem() || $res->contains_problem() || $res->is_sequence()'; |
my $isProblemOrMap = '$res->is_problem() || $res->contains_problem() || $res->is_sequence() || $res->is_practice()'; |
my $isNotMap = '!$res->is_sequence()'; |
my $isNotMap = '!$res->is_sequence()'; |
$isNotMap .= ' && !$res->randomout()' if !$userCanSeeHidden; |
$isNotMap .= ' && !$res->randomout()' if !$userCanSeeHidden; |
my $isMap = '$res->is_map()'; |
my $isMap = '$res->is_map()'; |
Line 2645 sub printHelper {
|
Line 2696 sub printHelper {
|
$helper->{VARS}->{'postdata'} && |
$helper->{VARS}->{'postdata'} && |
$helper->{VARS}->{'assignment'}) { |
$helper->{VARS}->{'assignment'}) { |
# Allow problems from sequence |
# Allow problems from sequence |
push @{$printChoices}, [&mt('Selected <b>Problems</b> in folder <b><i>[_1]</i></b>',$sequenceTitle), 'map_problems', 'CHOOSE_PROBLEMS']; |
push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from folder [_3]','<b>','</b>','<b><i>'.$sequenceTitle.'</i></b>'), 'map_problems', 'CHOOSE_PROBLEMS']; |
# Allow all resources from sequence |
# Allow all resources from sequence |
push @{$printChoices}, [&mt('Selected <b>Resources</b> in folder <b><i>[_1]</i></b>',$sequenceTitle), 'map_problems_pages', 'CHOOSE_PROBLEMS_HTML']; |
push @{$printChoices}, [&mt('Selected [_1]Resources[_2] from folder [_3]','<b>','</b>','<b><i>'.$sequenceTitle.'</i></b>'), 'map_problems_pages', 'CHOOSE_PROBLEMS_HTML']; |
|
|
my $helperFragment = <<HELPERFRAGMENT; |
my $helperFragment = <<HELPERFRAGMENT; |
<state name="CHOOSE_PROBLEMS" title="Select Problem(s) to print"> |
<state name="CHOOSE_PROBLEMS" title="Select Problem(s) to print"> |
Line 2676 HELPERFRAGMENT
|
Line 2727 HELPERFRAGMENT
|
&Apache::lonxml::xmlparse($r, 'helper', $helperFragment); |
&Apache::lonxml::xmlparse($r, 'helper', $helperFragment); |
} |
} |
|
|
# If the user has pfo (print for otheres) allow them to print all |
# If the user has pfo (print for others) allow them to print all |
# problems and resources in the entier course, optionally for selected students |
# problems and resources in the entire course, optionally for selected students |
if ($perm{'pfo'} && !$is_published && |
if ($perm{'pfo'} && !$is_published && |
($helper->{VARS}->{'postdata'}=~/\/res\// || $helper->{VARS}->{'postdata'}=~/\/(syllabus|smppg|aboutme|bulletinboard)$/)) { |
($helper->{VARS}->{'postdata'}=~/\/res\// || $helper->{VARS}->{'postdata'}=~/\/(syllabus|smppg|aboutme|bulletinboard)$/)) { |
|
|
push @{$printChoices}, [&mtn('Selected <b>Problems</b> from <b>entire course</b>'), 'all_problems', 'ALL_PROBLEMS']; |
push @{$printChoices}, [&mtn('Selected <b>Problems</b> from <b>entire course</b>'), 'all_problems', 'ALL_PROBLEMS']; |
push @{$printChoices}, [&mtn('Selected <b>Resources</b> from <b>entire course</b>'), 'all_resources', 'ALL_RESOURCES']; |
push @{$printChoices}, [&mtn('Selected <b>Resources</b> from <b>entire course</b>'), 'all_resources', 'ALL_RESOURCES']; |
|
push @{$printChoices}, [&mtn('Selected <b>Problems</b> from <b>entire course</b> for <b>selected people</b>'), 'all_problems_students', 'ALL_PROBLEMS_STUDENTS']; |
&Apache::lonxml::xmlparse($r, 'helper', <<ALL_PROBLEMS); |
&Apache::lonxml::xmlparse($r, 'helper', <<ALL_PROBLEMS); |
<state name="ALL_PROBLEMS" title="Select Problem(s) to print"> |
<state name="ALL_PROBLEMS" title="Select Problem(s) to print"> |
<resource variable="RESOURCES" toponly='0' multichoice="1" |
<resource variable="RESOURCES" toponly='0' multichoice="1" |
Line 2703 HELPERFRAGMENT
|
Line 2755 HELPERFRAGMENT
|
$start_new_option |
$start_new_option |
</resource> |
</resource> |
</state> |
</state> |
|
<state name="ALL_PROBLEMS_STUDENTS" title="Select Problem(s) to print"> |
|
<resource variable="RESOURCES" toponly='0' multichoice="1" |
|
suppressEmptySequences='0' addstatus="1" closeallpages="1"> |
|
<nextstate>STUDENTS1</nextstate> |
|
<filterfunc>return $isProblemOrMap;</filterfunc> |
|
<choicefunc>return $isNotMap;</choicefunc> |
|
<valuefunc>return $symbFilter;</valuefunc> |
|
$start_new_option |
|
</resource> |
|
</state> |
|
<state name="STUDENTS1" title="Select People"> |
|
<message><b>Select sorting order of printout</b> </message> |
|
<choices variable='student_sort'> |
|
<choice computer='0'>Sort by section then student</choice> |
|
<choice computer='1'>Sort by students across sections.</choice> |
|
</choices> |
|
<message><br /><hr /><br /> </message> |
|
<student multichoice='1' variable="STUDENTS" nextstate="PRINT_FORMATTING" coursepersonnel="1"/> |
|
</state> |
|
|
ALL_PROBLEMS |
ALL_PROBLEMS |
|
|
if ($helper->{VARS}->{'assignment'}) { |
if ($helper->{VARS}->{'assignment'}) { |
push @{$printChoices}, [&mt("Selected <b>Problems</b> from folder <b><i>[_1]</i></b> for <b>selected people</b>",$sequenceTitle), 'problems_for_students', 'CHOOSE_STUDENTS']; |
push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from folder [_3] for [_4]selected people[_5]','<b>','</b>','<b><i>'.$sequenceTitle.'</i></b>','<b>','</b>'), 'problems_for_students', 'CHOOSE_STUDENTS']; |
push @{$printChoices}, [&mt("Selected <b>Problems</b> from folder <b><i>[_1]</i></b> for <b>CODEd assignments</b>",$sequenceTitle), 'problems_for_anon', 'CHOOSE_ANON1']; |
push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from folder [_3] for [_4]CODEd assignments[_5]','<b>','</b>','<b><i>'.$sequenceTitle.'</i></b>','<b>','</b>'), 'problems_for_anon', 'CHOOSE_ANON1']; |
} |
} |
|
|
my $randomly_ordered_warning = |
my $randomly_ordered_warning = |
Line 2812 CHOOSE_STUDENTS
|
Line 2884 CHOOSE_STUDENTS
|
|
|
} |
} |
|
|
|
my @lines = &Apache::grades::get_scantronformat_file(); |
open(FH,$Apache::lonnet::perlvar{'lonTabDir'}.'/scantronformat.tab'); |
|
my $codechoice=''; |
my $codechoice=''; |
foreach my $line (<FH>) { |
foreach my $line (@lines) { |
my ($name,$description,$code_type,$code_length)= |
my ($name,$description,$code_type,$code_length)= |
(split(/:/,$line))[0,1,2,4]; |
(split(/:/,$line))[0,1,2,4]; |
if ($code_length > 0 && |
if ($code_length > 0 && |
Line 2886 CHOOSE_ANON1
|
Line 2957 CHOOSE_ANON1
|
|
|
|
|
if ($helper->{VARS}->{'assignment'}) { |
if ($helper->{VARS}->{'assignment'}) { |
push @{$printChoices}, [&mt("Selected <b>Resources</b> from folder <b><i>[_1]</i></b> for <b>selected people</b>",$sequenceTitle), 'resources_for_students', 'CHOOSE_STUDENTS1']; |
push @{$printChoices}, [&mt('Selected [_1]Resources[_2] from folder [_3] for [_4]selected people[_5]','<b>','</b>','<b><i>'.$sequenceTitle.'</i></b>','<b>','</b>'), 'resources_for_students', 'CHOOSE_STUDENTS1']; |
push @{$printChoices}, [&mt("Selected <b>Resources</b> from folder <b><i>[_1]</i></b> for <b>CODEd assignments</b>",$sequenceTitle), 'resources_for_anon', 'CHOOSE_ANON2']; |
push @{$printChoices}, [&mt('Selected [_1]Resources[_2] from folder [_3] for [_4]CODEd assignments[_5]','<b>','</b>','<b><i>'.$sequenceTitle.'</i></b>','<b>','</b>'), 'resources_for_anon', 'CHOOSE_ANON2']; |
} |
} |
|
|
|
|
Line 3010 CHOOSE_ANON2
|
Line 3081 CHOOSE_ANON2
|
) { |
) { |
|
|
my $pretty_dir = &Apache::lonnet::hreflocation($subdir); |
my $pretty_dir = &Apache::lonnet::hreflocation($subdir); |
push @{$printChoices}, [&mt("Selected <b>Problems</b> from current subdirectory <b><i>[_1]</i></b>",$pretty_dir), 'problems_from_directory', 'CHOOSE_FROM_SUBDIR']; |
push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from current subdirectory [_3]','<b>','</b>','<b><i>'.$pretty_dir.'</i></b>','<b>','</b>'), 'problems_from_directory', 'CHOOSE_FROM_SUBDIR']; |
my $xmlfrag = <<CHOOSE_FROM_SUBDIR; |
my $xmlfrag = <<CHOOSE_FROM_SUBDIR; |
<state name="CHOOSE_FROM_SUBDIR" title="Select File(s) from <b><small>$pretty_dir</small></b> to print"> |
<state name="CHOOSE_FROM_SUBDIR" title="Select File(s) from <b><small>$pretty_dir</small></b> to print"> |
|
|
Line 3080 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3151 CHOOSE_FROM_ANY_SEQUENCE
|
|
|
if (($perm{'pav'} and &Apache::lonnet::allowed('vgr',$env{'request.course.id'})) or |
if (($perm{'pav'} and &Apache::lonnet::allowed('vgr',$env{'request.course.id'})) or |
($helper->{VARS}->{'construction'} eq '1')) { |
($helper->{VARS}->{'construction'} eq '1')) { |
addMessage("<hr width='33%' /><table><tr><td align='right'>". |
&addMessage('<br />' |
'<label for="ANSWER_TYPE_forminput">'. |
.'<h3>'.&mt('Print Options').'</h3>' |
&mt('Print'). |
.&Apache::lonhtmlcommon::start_pick_box() |
"</label>: </td><td>"); |
# .&Apache::lonhtmlcommon::row_headline() |
|
# .'<h3>'.&mt('Print Options').'</h3>' |
|
# .&Apache::lonhtmlcommon::row_closure() |
|
.&Apache::lonhtmlcommon::row_title( |
|
'<label for="ANSWER_TYPE_forminput">' |
|
.&mt('Print Answers') |
|
.'</label>' |
|
) |
|
); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash->{'variable'} = 'ANSWER_TYPE'; |
$paramHash->{'variable'} = 'ANSWER_TYPE'; |
$helper->declareVar('ANSWER_TYPE'); |
$helper->declareVar('ANSWER_TYPE'); |
Line 3093 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3172 CHOOSE_FROM_ANY_SEQUENCE
|
['Only Answers', 'only'] |
['Only Answers', 'only'] |
]; |
]; |
Apache::lonhelper::dropdown->new(); |
Apache::lonhelper::dropdown->new(); |
addMessage("</td></tr>"); |
&addMessage(&Apache::lonhtmlcommon::row_closure()); |
$startedTable = 1; |
$startedTable = 1; |
} |
} |
|
|
Line 3105 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3184 CHOOSE_FROM_ANY_SEQUENCE
|
"</label>: </td><td>"); |
"</label>: </td><td>"); |
$startedTable = 1; |
$startedTable = 1; |
} else { |
} else { |
addMessage("<tr><td align='right'>". |
&addMessage(&Apache::lonhtmlcommon::row_title( |
'<label for="LATEX_TYPE_forminput">'. |
'<label for="LATEX_TYPE_forminput">' |
&mt('LaTeX mode'). |
.&mt('LaTeX mode') |
"</label>: </td><td>"); |
.'</label>' |
|
) |
|
); |
} |
} |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash->{'variable'} = 'LATEX_TYPE'; |
$paramHash->{'variable'} = 'LATEX_TYPE'; |
Line 3124 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3205 CHOOSE_FROM_ANY_SEQUENCE
|
} |
} |
Apache::lonhelper::dropdown->new(); |
Apache::lonhelper::dropdown->new(); |
|
|
addMessage("</td></tr><tr><td align='right'>". |
&addMessage(&Apache::lonhtmlcommon::row_closure() |
'<label for="TABLE_CONTENTS_forminput">'. |
.&Apache::lonhtmlcommon::row_title( |
&mt('Print Table of Contents'). |
'<label for="TABLE_CONTENTS_forminput">' |
"</label>: </td><td>"); |
.&mt('Print Table of Contents') |
|
.'</label>' |
|
) |
|
); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash->{'variable'} = 'TABLE_CONTENTS'; |
$paramHash->{'variable'} = 'TABLE_CONTENTS'; |
$helper->declareVar('TABLE_CONTENTS'); |
$helper->declareVar('TABLE_CONTENTS'); |
Line 3135 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3219 CHOOSE_FROM_ANY_SEQUENCE
|
['No', 'no'], |
['No', 'no'], |
['Yes', 'yes'] ]; |
['Yes', 'yes'] ]; |
Apache::lonhelper::dropdown->new(); |
Apache::lonhelper::dropdown->new(); |
addMessage("</td></tr>"); |
&addMessage(&Apache::lonhtmlcommon::row_closure()); |
|
|
if (not $helper->{VARS}->{'construction'}) { |
if (not $helper->{VARS}->{'construction'}) { |
addMessage("<tr><td align='right'>". |
&addMessage(&Apache::lonhtmlcommon::row_title( |
'<label for="TABLE_INDEX_forminput">'. |
'<label for="TABLE_INDEX_forminput">' |
&mt('Print Index'). |
.&mt('Print Index') |
"</label>: </td><td>"); |
.'</label>' |
|
) |
|
); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash->{'variable'} = 'TABLE_INDEX'; |
$paramHash->{'variable'} = 'TABLE_INDEX'; |
$helper->declareVar('TABLE_INDEX'); |
$helper->declareVar('TABLE_INDEX'); |
Line 3149 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3235 CHOOSE_FROM_ANY_SEQUENCE
|
['No', 'no'], |
['No', 'no'], |
['Yes', 'yes'] ]; |
['Yes', 'yes'] ]; |
Apache::lonhelper::dropdown->new(); |
Apache::lonhelper::dropdown->new(); |
addMessage("</td></tr>"); |
&addMessage(&Apache::lonhtmlcommon::row_closure()); |
addMessage("<tr><td align='right'>". |
&addMessage(&Apache::lonhtmlcommon::row_title( |
'<label for="PRINT_DISCUSSIONS_forminput">'. |
'<label for="PRINT_DISCUSSIONS_forminput">' |
&mt('Print Discussions'). |
.&mt('Print Discussions') |
"</label>: </td><td>"); |
.'</label>' |
|
) |
|
); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash->{'variable'} = 'PRINT_DISCUSSIONS'; |
$paramHash->{'variable'} = 'PRINT_DISCUSSIONS'; |
$helper->declareVar('PRINT_DISCUSSIONS'); |
$helper->declareVar('PRINT_DISCUSSIONS'); |
Line 3161 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3249 CHOOSE_FROM_ANY_SEQUENCE
|
['No', 'no'], |
['No', 'no'], |
['Yes', 'yes'] ]; |
['Yes', 'yes'] ]; |
Apache::lonhelper::dropdown->new(); |
Apache::lonhelper::dropdown->new(); |
addMessage("</td></tr>"); |
&addMessage(&Apache::lonhtmlcommon::row_closure()); |
|
|
# Prompt for printing annotations too. |
# Prompt for printing annotations too. |
|
|
addMessage("<tr><td align='right'>". |
&addMessage(&Apache::lonhtmlcommon::row_title( |
'<label for="PRINT_ANNOTATIONS_forminput">'. |
'<label for="PRINT_ANNOTATIONS_forminput">' |
&mt('Print Annotations'). |
.&mt('Print Annotations') |
"</label>:</td><td>"); |
.'</label>' |
|
) |
|
); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash->{'variable'} = "PRINT_ANNOTATIONS"; |
$paramHash->{'variable'} = "PRINT_ANNOTATIONS"; |
$helper->declareVar("PRINT_ANNOTATIONS"); |
$helper->declareVar("PRINT_ANNOTATIONS"); |
Line 3176 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3266 CHOOSE_FROM_ANY_SEQUENCE
|
['No', 'no'], |
['No', 'no'], |
['Yes', 'yes']]; |
['Yes', 'yes']]; |
Apache::lonhelper::dropdown->new(); |
Apache::lonhelper::dropdown->new(); |
addMessage("</td></tr>"); |
&addMessage(&Apache::lonhtmlcommon::row_closure()); |
|
|
addMessage("<tr><td align = 'right'> </td><td>"); |
&addMessage(&Apache::lonhtmlcommon::row_title(&mt('Foils'))); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash = Apache::lonhelper::getParamHash(); |
$paramHash->{'multichoice'} = "true"; |
$paramHash->{'multichoice'} = "true"; |
$paramHash->{'allowempty'} = "true"; |
$paramHash->{'allowempty'} = "true"; |
$paramHash->{'variable'} = "showallfoils"; |
$paramHash->{'variable'} = "showallfoils"; |
$paramHash->{'CHOICES'} = [ ["Show all foils", "1"] ]; |
$paramHash->{'CHOICES'} = [ ["Show all foils", "1"] ]; |
Apache::lonhelper::choices->new(); |
Apache::lonhelper::choices->new(); |
addMessage("</td></tr>"); |
&addMessage(&Apache::lonhtmlcommon::row_closure(1)); |
} |
} |
|
|
if ($helper->{'VARS'}->{'construction'}) { |
if ($helper->{'VARS'}->{'construction'}) { |
Line 3194 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3284 CHOOSE_FROM_ANY_SEQUENCE
|
my $stylefiletext=&mt("Use style file"); |
my $stylefiletext=&mt("Use style file"); |
my $selectfiletext=&mt("Select style file"); |
my $selectfiletext=&mt("Select style file"); |
|
|
my $xmlfrag .= <<"RNDSEED"; |
my $xmlfrag .= '<message>' |
<message><tr><td align='right'> |
.&Apache::lonhtmlcommon::row_title('<label for="curseed_forminput">' |
<label for="curseed_forminput">$randseedtext</label>: |
.$randseedtext |
</td><td></message> |
.'</label>' |
<string variable="curseed" size="15" maxlength="15"> |
) |
<defaultvalue> |
.'</message> |
return $helper->{VARS}->{'curseed'}; |
<string variable="curseed" size="15" maxlength="15"> |
</defaultvalue> |
<defaultvalue> |
</string> |
return '.$helper->{VARS}->{'curseed'}.'; |
<message></td></tr><tr><td align="right"> |
</defaultvalue>' |
<label for="style_file">$stylefiletext</label>: |
.'</string>' |
</td><td></message> |
.'<message>' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
.&Apache::lonhtmlcommon::row_title('<label for="style_file">' |
|
.$stylefiletext |
|
.'</label>' |
|
) |
|
.'</message> |
<string variable="style_file" size="40"> |
<string variable="style_file" size="40"> |
<defaultvalue> |
<defaultvalue> |
return $stylevalue; |
return '.$stylevalue.'; |
</defaultvalue> |
</defaultvalue> |
</string><message> <a href="javascript:openbrowser('helpform','style_file_forminput','sty')">$selectfiletext</a> </td></tr><tr><td></td><td align="left"></message> |
</string><message> ' |
|
.qq|<a href="javascript:openbrowser('helpform','style_file_forminput','sty')">| |
|
.$selectfiletext.'</a>' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
.&Apache::lonhtmlcommon::row_title(&mt('Show all foils')) |
|
.'</message> |
<choices allowempty="1" multichoice="true" variable="showallfoils"> |
<choices allowempty="1" multichoice="true" variable="showallfoils"> |
<choice computer="1">Show all foils</choice> |
<choice computer="1"> </choice> |
</choices> |
</choices>' |
<message></td></tr></message> |
.'<message>' |
RNDSEED |
.&Apache::lonhtmlcommon::row_closure() |
|
.'</message>'; |
&Apache::lonxml::xmlparse($r, 'helper', $xmlfrag); |
&Apache::lonxml::xmlparse($r, 'helper', $xmlfrag); |
|
|
|
|
addMessage("<tr><td>Problem Type:</td><td>"); |
&addMessage(&Apache::lonhtmlcommon::row_title(&mt('Problem Type'))); |
# |
# |
# Initial value from construction space: |
# Initial value from construction space: |
# |
# |
Line 3238 RNDSEED
|
Line 3340 RNDSEED
|
PROBTYPE |
PROBTYPE |
&Apache::lonxml::xmlparse($r, 'helper', $xmlfrag); |
&Apache::lonxml::xmlparse($r, 'helper', $xmlfrag); |
|
|
addMessage("</td></tr>"); |
&addMessage(&Apache::lonhtmlcommon::row_closure(1)); |
|
|
} |
} |
} |
} |
|
|
|
|
|
|
|
|
if ($startedTable) { |
if ($startedTable) { |
addMessage("</table>"); |
&addMessage(&Apache::lonhtmlcommon::end_pick_box()); |
} |
} |
|
|
Apache::lonprintout::page_format_state->new("FORMAT"); |
Apache::lonprintout::page_format_state->new("FORMAT"); |
Line 3346 sub render {
|
Line 3448 sub render {
|
my $PaperType=&mt('Paper type'); |
my $PaperType=&mt('Paper type'); |
my $landscape=&mt('Landscape'); |
my $landscape=&mt('Landscape'); |
my $portrait=&mt('Portrait'); |
my $portrait=&mt('Portrait'); |
$result .= <<STATEHTML; |
my $pdfFormLabel=&mt('PDF-Formfields'); |
|
my $with=&mt('with Formfields'); |
|
my $without=&mt('without Formfields'); |
|
$result.='<h3>'.&mt('Layout Options').'</h3>' |
|
.&Apache::loncommon::start_data_table() |
|
.&Apache::loncommon::start_data_table_header_row() |
|
.'<th>'.$PageLayout.'</th>' |
|
.'<th>'.$NumberOfColumns.'</th>' |
|
.'<th>'.$PaperType.'</th>' |
|
.'<th>'.$pdfFormLabel.'</th>' |
|
.&Apache::loncommon::end_data_table_header_row() |
|
.&Apache::loncommon::start_data_table_row() |
|
.'<td>' |
|
.'<label><input type="radio" name="'.${var}.'.layout" value="L" />'.$landscape.'</label><br />' |
|
.'<label><input type="radio" name="'.${var}.'.layout" value="P" checked="checked" />'.$portrait.'</label>' |
|
.'</td>'; |
|
|
<hr width="33%" /> |
$result.='<td align="center">' |
<table cellpadding="3"> |
.'<select name="'.${var}.'.cols">'; |
<tr> |
|
<td align="center"><b>$PageLayout</b></td> |
|
<td align="center"><b>$NumberOfColumns</b></td> |
|
<td align="center"><b>$PaperType</b></td> |
|
</tr> |
|
<tr> |
|
<td> |
|
<label><input type="radio" name="${var}.layout" value="L" /> $landscape </label><br /> |
|
<label><input type="radio" name="${var}.layout" value="P" checked='1' /> $portrait </label> |
|
</td> |
|
<td align="center"> |
|
<select name="${var}.cols"> |
|
STATEHTML |
|
|
|
my $i; |
my $i; |
for ($i = 1; $i <= $maxColumns; $i++) { |
for ($i = 1; $i <= $maxColumns; $i++) { |
Line 3391 STATEHTML
|
Line 3495 STATEHTML
|
} |
} |
$i++; |
$i++; |
} |
} |
$result .= "</select></td></tr></table>"; |
$result .= <<HTML; |
|
</select> |
|
</td> |
|
<td align='center'> |
|
<select name='${var}.pdfFormFields'> |
|
<option selected value='no'>$without</option> |
|
<option value='yes'>$with</option> |
|
</select> |
|
</td> |
|
HTML |
|
$result.=&Apache::loncommon::end_data_table_row() |
|
.&Apache::loncommon::end_data_table(); |
|
|
return $result; |
return $result; |
} |
} |
|
|
Line 3402 sub postprocess {
|
Line 3518 sub postprocess {
|
my $helper = Apache::lonhelper->getHelper(); |
my $helper = Apache::lonhelper->getHelper(); |
$helper->{VARS}->{$var} = |
$helper->{VARS}->{$var} = |
$env{"form.$var.layout"} . '|' . $env{"form.$var.cols"} . '|' . |
$env{"form.$var.layout"} . '|' . $env{"form.$var.cols"} . '|' . |
$env{"form.$var.paper"}; |
$env{"form.$var.paper"} . '|' . $env{"form.$var.pdfFormFields"}; |
return 1; |
return 1; |
} |
} |
|
|