version 1.518, 2008/03/10 10:10:18
|
version 1.545.2.5, 2009/09/10 23:36:03
|
Line 37 use Apache::grades;
|
Line 37 use Apache::grades;
|
use Apache::edit; |
use Apache::edit; |
use Apache::File(); |
use Apache::File(); |
use Apache::lonnavmaps; |
use Apache::lonnavmaps; |
use Apache::admannotations; |
use Apache::lonenc; |
|
use Apache::entities; |
|
|
use HTTP::Response; |
use HTTP::Response; |
|
|
use LONCAPA::map(); |
use LONCAPA::map(); |
Line 94 sub fetch_raw_resource {
|
Line 96 sub fetch_raw_resource {
|
sub annotate { |
sub annotate { |
my ($symb) = @_; |
my ($symb) = @_; |
|
|
my $annotation_text = &Apache::admannotations::get_annotation($symb, 1); |
my $annotation_text = &Apache::loncommon::get_annotation($symb, 1); |
|
|
|
|
my $result = ""; |
my $result = ""; |
|
|
Line 115 sub annotate {
|
Line 116 sub annotate {
|
# the number of times requested by the caller. |
# the number of times requested by the caller. |
# If we still have a proble, no text is appended to the |
# If we still have a proble, no text is appended to the |
# output and we set some global variables. |
# output and we set some global variables. |
# to indicate to the caller an SSI error occured. |
# to indicate to the caller an SSI error occurred. |
# All of this is supposed to deal with the issues described |
# All of this is supposed to deal with the issues described |
# in LonCAPA BZ 5631 see: |
# in LonCAPA BZ 5631 see: |
# http://bugs.lon-capa.org/show_bug.cgi?id=5631 |
# http://bugs.lon-capa.org/show_bug.cgi?id=5631 |
Line 131 sub annotate {
|
Line 132 sub annotate {
|
# On success, returns the rendered resource identified by the resource parameter. |
# On success, returns the rendered resource identified by the resource parameter. |
# Side Effects: |
# Side Effects: |
# The following global variables can be set: |
# The following global variables can be set: |
# ssi_error - If an unrecoverable error occured this becomes true. |
# ssi_error - If an unrecoverable error occurred this becomes true. |
# It is up to the caller to initialize this to false |
# It is up to the caller to initialize this to false |
# if desired. |
# if desired. |
# ssi_last_error_resource - If an unrecoverable error occured, this is the value |
# ssi_last_error_resource - If an unrecoverable error occurred, this is the value |
# of the resource that could not be rendered by the ssi |
# of the resource that could not be rendered by the ssi |
# call. |
# call. |
# ssi_last_error - The error string fetched from the ssi response |
# ssi_last_error - The error string fetched from the ssi response |
Line 149 sub ssi_with_retries {
|
Line 150 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 occurred !!!}'; |
|
&Apache::lonnet::logthis("Error in SSI resource: $resource Error: $ssi_last_error"); |
} |
} |
|
|
return $content; |
return $content; |
|
|
} |
} |
|
|
|
sub get_student_view_with_retries { |
|
my ($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) { |
|
$ssi_error = 1; |
|
$ssi_last_error_resource = $curresline.' for user '.$username.':'.$userdomain; |
|
$ssi_last_error = $response->code . " " . $response->message; |
|
$content='\section*{!!! An error occurred !!!}'; |
|
&Apache::lonnet::logthis("Error in SSI (student view) resource: $curresline Error: $ssi_last_error User: $username:$userdomain"); |
|
} |
|
return $content; |
|
|
|
} |
|
|
# |
# |
# printf_style_subst item format_string repl |
# printf_style_subst item format_string repl |
# |
# |
Line 228 sub format_page_header {
|
Line 246 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"; |
|
if (length($firstline) > $chars_per_line) { |
|
my $lastchar = $chars_per_line - length($student) - 1; |
|
if ($lastchar > 0) { |
|
$course = substr($course, 0, $lastchar); |
|
} else { # Nothing left of course: |
|
$course = ''; |
|
} |
|
} |
|
if (length($assignment) > $chars_per_line) { |
|
$assignment = substr($assignment, 0, $chars_per_line); |
|
} |
|
|
|
$format = "\\textbf{$student} $course \\hfill \\thepage \\\\ \\textit{$assignment}"; |
|
|
|
} else { |
my $firstline = "$student $course"; |
# An open question is how to handle long user formatted page headers... |
if (length($firstline) > $chars_per_line) { |
# A possible future is to support e.g. %na so that the user can control |
my $lastchar = $chars_per_line - length($student) - 1; |
# the truncation of the elements that can appear in the header. |
if ($lastchar > 0) { |
# |
$course = substr($course, 0, $lastchar); |
$format = &printf_style_subst("a", $format, $assignment); |
} else { # Nothing left of course: |
$format = &printf_style_subst("c", $format, $course); |
$course = ''; |
$format = &printf_style_subst("n", $format, $student); |
} |
|
} |
# If the user put %'s in the format string, they must be escaped |
if (length($assignment) > $chars_per_line) { |
# to \% else LaTeX will think they are comments and terminate |
$assignment = substr($assignment, 0, $chars_per_line); |
# the line.. which is bad!!! |
} |
|
|
|
$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!!! |
|
} |
|
|
|
# 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/; |
} |
} |
|
|
|
|
Line 365 sub is_valid_alpha_code {
|
Line 388 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 484 sub adjust_number_to_print {
|
Line 507 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 611 sub character_chart {
|
Line 641 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 622 sub character_chart {
|
Line 652 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 1124 sub print_latex_header {
|
Line 1154 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 1236 sub recently_generated {
|
Line 1276 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 1471 ENDPART
|
Line 1534 ENDPART
|
} |
} |
|
|
if ($helper->{'VARS'}->{'style_file'}=~/\w/) { |
if ($helper->{'VARS'}->{'style_file'}=~/\w/) { |
&Apache::lonnet::appenv('construct.style' => |
&Apache::lonnet::appenv({'construct.style' => |
$helper->{'VARS'}->{'style_file'}); |
$helper->{'VARS'}->{'style_file'}}); |
} elsif ($env{'construct.style'}) { |
} elsif ($env{'construct.style'}) { |
&Apache::lonnet::delenv('construct\\.style'); |
&Apache::lonnet::delenv('construct.style'); |
} |
} |
|
|
|
|
Line 1515 ENDPART
|
Line 1578 ENDPART
|
$rndseed=$helper->{'VARS'}->{'curseed'}; |
$rndseed=$helper->{'VARS'}->{'curseed'}; |
} |
} |
$form{'rndseed'}=$rndseed; |
$form{'rndseed'}=$rndseed; |
&Apache::lonnet::appenv(%moreenv); |
&Apache::lonnet::appenv(\%moreenv); |
|
|
&Apache::lonxml::clear_problem_counter(); |
&Apache::lonxml::clear_problem_counter(); |
|
|
Line 1629 ENDPART
|
Line 1692 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 1637 ENDPART
|
Line 1701 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 1663 ENDPART
|
Line 1728 ENDPART
|
my $pbreakresources = keys %page_breaks; |
my $pbreakresources = keys %page_breaks; |
for (my $i=0;$i<=$#master_seq;$i++) { |
for (my $i=0;$i<=$#master_seq;$i++) { |
|
|
|
&Apache::lonenc::reset_enc(); |
|
|
|
|
# Note due to document structure, not allowed to put \newpage |
# Note due to document structure, not allowed to put \newpage |
# prior to the first resource |
# prior to the first resource |
|
|
Line 1671 ENDPART
|
Line 1739 ENDPART
|
$result.="\\newpage\n"; |
$result.="\\newpage\n"; |
} |
} |
} |
} |
my ($sequence,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]); |
my ($sequence,$middle_thingy,$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 $assignment=&Apache::lonxml::latex_special_symbols(&Apache::lonnet::gettitle($sequence),'header'); #title 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=''; |
Line 1787 ENDPART
|
Line 1857 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 1889 ENDPART
|
Line 1961 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 1982 ENDPART
|
Line 2054 ENDPART
|
$rndseed=$helper->{'VARS'}->{'curseed'}; |
$rndseed=$helper->{'VARS'}->{'curseed'}; |
} |
} |
for (my $i=0;$i<=$#list_of_files;$i++) { |
for (my $i=0;$i<=$#list_of_files;$i++) { |
|
|
|
&Apache::lonenc::reset_enc(); |
|
|
my $urlp = $list_of_files[$i]; |
my $urlp = $list_of_files[$i]; |
$urlp=~s|//|/|; |
$urlp=~s|//|/|; |
if ($urlp=~/\//) { |
if ($urlp=~/\//) { |
Line 2075 ENDPART
|
Line 2150 ENDPART
|
} |
} |
} |
} |
|
|
|
|
# If there's been an unrecoverable SSI error, report it to the user |
|
# otherwise, we can write the tex file. |
|
# |
|
|
|
if ($ssi_error) { |
|
my $end_page = &Apache::loncommon::end_page(); |
|
$r->print(<<ERROR_END); |
|
<br /> |
|
<h2>An unrecoverable error occured:</h2> |
|
<p> |
|
I was not able to render one of the print resources ($ssi_last_error_resource) |
|
due to an unrecoverable error communicating with a server: |
|
<br /> |
|
$ssi_last_error; |
|
<br /> |
|
</p> |
|
<p> |
|
I recommend that you try printing again later as this may mean the server was just |
|
temporarily unavailable, or is down for maintenance. If this error persists, then |
|
please contact your LonCAPA support folks for assistance and diagnosis. |
|
<br /> |
|
<br /> |
|
We apologize for the inconvenience. |
|
</p> |
|
$end_page |
|
ERROR_END |
|
} else { |
|
|
|
#-- writing .tex file in prtspool |
#-- writing .tex file in prtspool |
my $temp_file; |
my $temp_file; |
my $identifier = &Apache::loncommon::get_cgi_id(); |
my $identifier = &Apache::loncommon::get_cgi_id(); |
my $filename = "/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout_$identifier.tex"; |
my $filename = "/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout_$identifier.tex"; |
if (!($#print_array>0)) { |
if (!($#print_array>0)) { |
unless ($temp_file = Apache::File->new('>'.$filename)) { |
unless ($temp_file = Apache::File->new('>'.$filename)) { |
$r->log_error("Couldn't open $filename for output $!"); |
$r->log_error("Couldn't open $filename for output $!"); |
return SERVER_ERROR; |
return SERVER_ERROR; |
} |
} |
print $temp_file $result; |
print $temp_file $result; |
my $begin=index($result,'\begin{document}',0); |
my $begin=index($result,'\begin{document}',0); |
my $inc=substr($result,0,$begin+16); |
my $inc=substr($result,0,$begin+16); |
} else { |
} else { |
my $begin=index($result,'\begin{document}',0); |
my $begin=index($result,'\begin{document}',0); |
my $inc=substr($result,0,$begin+16); |
my $inc=substr($result,0,$begin+16); |
for (my $i=0;$i<=$#print_array;$i++) { |
for (my $i=0;$i<=$#print_array;$i++) { |
if ($i==0) { |
if ($i==0) { |
$print_array[$i]=$result; |
$print_array[$i]=$result; |
} else { |
} else { |
$print_array[$i].='\end{document}'; |
$print_array[$i].='\end{document}'; |
$print_array[$i] = |
$print_array[$i] = |
&latex_corrections($number_of_columns,$print_array[$i], |
&latex_corrections($number_of_columns,$print_array[$i], |
$selectionmade, |
$selectionmade, |
$helper->{'VARS'}->{'ANSWER_TYPE'}); |
$helper->{'VARS'}->{'ANSWER_TYPE'}); |
|
|
my $anobegin=index($print_array[$i],'\setcounter{page}',0); |
|
substr($print_array[$i],0,$anobegin)=''; |
|
$print_array[$i]=$inc.$print_array[$i]; |
|
} |
|
my $temp_file; |
|
my $newfilename=$filename; |
|
my $num=$i+1; |
|
$newfilename =~s/\.tex$//; |
|
$newfilename=sprintf("%s_%03d.tex",$newfilename, $num); |
|
unless ($temp_file = Apache::File->new('>'.$newfilename)) { |
|
$r->log_error("Couldn't open $newfilename for output $!"); |
|
return SERVER_ERROR; |
|
} |
|
print $temp_file $print_array[$i]; |
|
} |
|
|
|
|
my $anobegin=index($print_array[$i],'\setcounter{page}',0); |
|
substr($print_array[$i],0,$anobegin)=''; |
|
$print_array[$i]=$inc.$print_array[$i]; |
|
} |
|
my $temp_file; |
|
my $newfilename=$filename; |
|
my $num=$i+1; |
|
$newfilename =~s/\.tex$//; |
|
$newfilename=sprintf("%s_%03d.tex",$newfilename, $num); |
|
unless ($temp_file = Apache::File->new('>'.$newfilename)) { |
|
$r->log_error("Couldn't open $newfilename for output $!"); |
|
return SERVER_ERROR; |
|
} |
|
print $temp_file $print_array[$i]; |
|
} |
|
} |
|
my $student_names=''; |
|
if ($#print_array>0) { |
|
for (my $i=0;$i<=$#print_array;$i++) { |
|
$student_names.=$student_names[$i].'_ENDPERSON_'; |
} |
} |
my $student_names=''; |
} else { |
if ($#print_array>0) { |
if ($#student_names>-1) { |
for (my $i=0;$i<=$#print_array;$i++) { |
$student_names=$student_names[0].'_ENDPERSON_'; |
$student_names.=$student_names[$i].'_ENDPERSON_'; |
|
} |
|
} else { |
} else { |
if ($#student_names>-1) { |
my $fullname = &get_name($env{'user.name'},$env{'user.domain'}); |
$student_names=$student_names[0].'_ENDPERSON_'; |
$student_names=join(':',$env{'user.name'},$env{'user.domain'}, |
} else { |
|
my $fullname = &get_name($env{'user.name'},$env{'user.domain'}); |
|
$student_names=join(':',$env{'user.name'},$env{'user.domain'}, |
|
$env{'request.course.sec'},$fullname). |
$env{'request.course.sec'},$fullname). |
'_ENDPERSON_'.'_END_'; |
'_ENDPERSON_'.'_END_'; |
} |
|
} |
} |
|
} |
|
|
# logic for now is too complex to trace if this has been defined |
# logic for now is too complex to trace if this has been defined |
# yet. |
# yet. |
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
&Apache::lonnet::appenv('cgi.'.$identifier.'.file' => $filename, |
&Apache::lonnet::appenv({'cgi.'.$identifier.'.file' => $filename, |
'cgi.'.$identifier.'.layout' => $laystyle, |
'cgi.'.$identifier.'.layout' => $laystyle, |
'cgi.'.$identifier.'.numcol' => $numberofcolumns, |
'cgi.'.$identifier.'.numcol' => $numberofcolumns, |
'cgi.'.$identifier.'.paper' => $papersize, |
'cgi.'.$identifier.'.paper' => $papersize, |
Line 2176 ERROR_END
|
Line 2221 ERROR_END
|
'cgi.'.$identifier.'.role' => $perm{'pav'}, |
'cgi.'.$identifier.'.role' => $perm{'pav'}, |
'cgi.'.$identifier.'.numberoffiles' => $#print_array, |
'cgi.'.$identifier.'.numberoffiles' => $#print_array, |
'cgi.'.$identifier.'.studentnames' => $student_names, |
'cgi.'.$identifier.'.studentnames' => $student_names, |
'cgi.'.$identifier.'.backref' => $URLback,); |
'cgi.'.$identifier.'.backref' => $URLback,}); |
&Apache::lonnet::appenv("cgi.$identifier.user" => $env{'user.name'}, |
&Apache::lonnet::appenv({"cgi.$identifier.user" => $env{'user.name'}, |
"cgi.$identifier.domain" => $env{'user.domain'}, |
"cgi.$identifier.domain" => $env{'user.domain'}, |
"cgi.$identifier.courseid" => $cnum, |
"cgi.$identifier.courseid" => $cnum, |
"cgi.$identifier.coursedom" => $cdom, |
"cgi.$identifier.coursedom" => $cdom, |
"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 ($ssi_error) { |
|
my $helpurl = &Apache::loncommon::top_nav_help('Helpdesk'); |
|
$r->print('<br /><h2>'.&mt('An unrecoverable network error occurred:').'</h2><p> '. |
|
&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:'). |
|
'<br />'.$ssi_last_error_resource.'<br />'.$ssi_last_error. |
|
'</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 occurred, as the issue may be temporary.'). |
|
'<br />'.&mt('If the error persists, please contact the [_1] for assistance.',$helpurl).'</p><p>'. |
|
&mt('We apologize for the inconvenience.').'</p>'. |
|
'<a href="/cgi-bin/printout.pl?'.$identifier.'">'.$continue_text.'</a>'.$end_page); |
|
} 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 2263 sub print_resources {
|
Line 2321 sub print_resources {
|
|
|
&Apache::lonxml::remember_problem_counter(); |
&Apache::lonxml::remember_problem_counter(); |
|
|
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'}->{'ANSWER_TYPE'} eq 'no') || |
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') || |
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) { |
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) { |
Line 2305 sub print_resources {
|
Line 2363 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 2426 sub get_randomly_ordered_warning {
|
Line 2484 sub get_randomly_ordered_warning {
|
|
|
my $postdata = $env{'form.postdata'} || $helper->{VARS}{'postdata'}; |
my $postdata = $env{'form.postdata'} || $helper->{VARS}{'postdata'}; |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $res = $navmap->getResourceByUrl($map); |
if (defined($navmap)) { |
if ($res) { |
my $res = $navmap->getResourceByUrl($map); |
my $func = |
if ($res) { |
sub { return ($_[0]->is_map() && $_[0]->randomorder); }; |
my $func = |
my @matches = $navmap->retrieveResources($res, $func,1,1,1); |
sub { return ($_[0]->is_map() && $_[0]->randomorder); }; |
if (@matches) { |
my @matches = $navmap->retrieveResources($res, $func,1,1,1); |
$message = "Some of the items below are in folders set to be randomly ordered. However, when printing the contents of these folders, they will be printed in the original order for all students, not the randomized order."; |
if (@matches) { |
} |
$message = "Some of the items below are in folders set to be randomly ordered. However, when printing the contents of these folders, they will be printed in the original order for all students, not the randomized order."; |
} |
} |
if ($message) { |
} |
return '<message type="warning">'.$message.'</message>'; |
if ($message) { |
|
return '<message type="warning">'.$message.'</message>'; |
|
} |
|
} else { |
|
&Apache::lonnet::logthis('Retrieval of resources to check for folders set to be randomly ordered failed - could not create navmap object'); |
|
$message = "Retrieval of information about ordering of resources failed."; |
|
return '<message type="warning">'.$message.'</message>'; |
} |
} |
return; |
return; |
} |
} |
Line 2610 sub printHelper {
|
Line 2674 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 2673 HELPERFRAGMENT
|
Line 2737 HELPERFRAGMENT
|
|
|
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 2693 HELPERFRAGMENT
|
Line 2758 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'}) { |
Line 2802 CHOOSE_STUDENTS
|
Line 2887 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 3070 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3154 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 3083 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3175 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 3095 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3187 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 3114 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3208 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 3125 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3222 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 3139 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3238 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 3151 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3252 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 3166 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3269 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 3184 CHOOSE_FROM_ANY_SEQUENCE
|
Line 3287 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 3228 RNDSEED
|
Line 3343 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 3336 sub render {
|
Line 3451 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; |
$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>' |
|
.&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 3381 STATEHTML
|
Line 3494 STATEHTML
|
} |
} |
$i++; |
$i++; |
} |
} |
$result .= "</select></td></tr></table>"; |
$result .= <<HTML; |
|
</select> |
|
</td> |
|
HTML |
|
$result.=&Apache::loncommon::end_data_table_row() |
|
.&Apache::loncommon::end_data_table(); |
|
|
return $result; |
return $result; |
} |
} |
|
|