version 1.545, 2008/11/04 14:13:16
|
version 1.554, 2009/06/02 12:20:14
|
Line 40 use Apache::lonnavmaps;
|
Line 40 use Apache::lonnavmaps;
|
use Apache::admannotations; |
use Apache::admannotations; |
use Apache::lonenc; |
use Apache::lonenc; |
use Apache::entities; |
use Apache::entities; |
|
use Apache::londefdef; |
|
|
|
use File::Basename; |
|
|
use HTTP::Response; |
use HTTP::Response; |
|
|
Line 111 sub annotate {
|
Line 114 sub annotate {
|
return $result; |
return $result; |
} |
} |
|
|
|
# include_pdf - PDF files are included into the |
|
# output as follows: |
|
# - The PDF, if necessary, is replicated. |
|
# - The PDF is added to the list of files to convert to postscript (along with the images). |
|
# - The LaTeX is added to include the final converted postscript in the file as an included |
|
# job. The assumption is that the includedpsheader.ps header will be included. |
|
# |
|
# Parameters: |
|
# pdf_uri - URI of the PDF file to include. |
|
# |
|
# Returns: |
|
# The LaTeX to include. |
|
# |
|
# Assumptions: |
|
# The uri is actually a PDF file |
|
# The postscript will have the includepsheader.ps included. |
|
# |
|
# |
|
sub include_pdf { |
|
my ($pdf_uri) = @_; |
|
|
|
# Where is the file? If not local we'll need to repcopy it:' |
|
|
|
my $file = &Apache::lonnet::filelocation('', $pdf_uri); |
|
if (! -e $file) { |
|
&Apache::lonnet::repcopy($file); |
|
$file = &Apache::lonnet::filelocation('',$pdf_uri); |
|
} |
|
|
|
# The file isn ow replicated locally.. or it did not exist in the first place |
|
# (unlikely). If it did exist, add the pdf to the set of files/images that |
|
# need tob e converted for this print job: |
|
|
|
$file =~ s|(.*)/res/|/home/httpd/html/res/|; |
|
|
|
open(FILE,">>/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.dat"); |
|
print FILE ("$file\n"); |
|
close (FILE); |
|
|
|
# Construct the special to put out. To do this we need to get the |
|
# resulting filename after conversion. The file will have the same name |
|
# but will be in the user's spool directory with converted images. |
|
|
|
my $dirname = "/home/httpd/prtspool/$env{'user.name'}/"; |
|
my ( $base, $path, $ext) = &fileparse($file, '.pdf'); |
|
# my $destname = $dirname.'/'.$base.'.eps'; # Not really an eps but easier in printout.pl |
|
$base =~ s/ /\_/g; |
|
|
|
|
|
my $output = &print_latex_header(); |
|
$output .= '\special{ps: _begin_job_ (' |
|
.$base.'.pdf.eps'. |
|
')run _end_job_}'; |
|
|
|
return $output; |
|
|
|
|
|
} |
|
|
|
|
# |
# |
# ssi_with_retries - Does the server side include of a resource. |
# ssi_with_retries - Does the server side include of a resource. |
Line 1021 sub page_format_transformation {
|
Line 1083 sub page_format_transformation {
|
$fancypagestatement="\\rhead{}\\chead{}\\lhead{$header_text}"; |
$fancypagestatement="\\rhead{}\\chead{}\\lhead{$header_text}"; |
} |
} |
if ($layout eq 'album') { |
if ($layout eq 'album') { |
$text =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}$topmargintoinsert\n\\setlength{\\textwidth}{$textwidth}\\setlength{\\textheight}{$textheight}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt}\n\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\usepackage{fancyhdr}\\addtolength{\\headheight}{\\baselineskip}\n\\pagestyle{fancy}$fancypagestatement\\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1}\n /; |
$text =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}$topmargintoinsert\n\\setlength{\\textwidth}{$textwidth}\\setlength{\\textheight}{$textheight}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt}\n\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\usepackage{fancyhdr}\\addtolength{\\headheight}{\\baselineskip}\n\\pagestyle{fancy}$fancypagestatement\\usepackage{booktabs}\\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1}\n /; |
} 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\n\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\n\\renewcommand{\\ref}{\\keephidden\}\\usepackage{fancyhdr}\\addtolength{\\headheight}{\\baselineskip}\\pagestyle{fancy}$fancypagestatement\\begin{document}\n\\voffset=-0\.8 cm\\setcounter{page}{1}\n/; |
$text =~ s/\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset $topmargintoinsert\n\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\n\\renewcommand{\\ref}{\\keephidden\}\\usepackage{fancyhdr}\\addtolength{\\headheight}{\\baselineskip}\\pagestyle{fancy}$fancypagestatement\\usepackage{booktabs}\\begin{document}\n\\voffset=-0\.8 cm\\setcounter{page}{1}\n/; |
} else { |
} else { |
$text =~ s/\\pagestyle{fancy}\\rhead{}\\chead{}\s*\\begin{document}/\\textheight = $textheight\\oddsidemargin = $evenoffset\n\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\n\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\pagestyle{fancy}\\rhead{}\\chead{}\\begin{document}\\voffset=-0\.8cm\n\\setcounter{page}{1} \\vskip 5 mm\n /; |
$text =~ s/\\pagestyle{fancy}\\rhead{}\\chead{}\s*\\begin{document}/\\textheight = $textheight\\oddsidemargin = $evenoffset\n\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\n\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\pagestyle{fancy}\\rhead{}\\chead{}\\usepackage{booktabs}\\begin{document}\\voffset=-0\.8cm\n\\setcounter{page}{1} \\vskip 5 mm\n /; |
} |
} |
if ($papersize eq 'a4') { |
if ($papersize eq 'a4') { |
$text =~ s/(\\begin{document})/$1\\special{papersize=210mm,297mm}/; |
$text =~ s/(\\begin{document})/$1\\special{papersize=210mm,297mm}/; |
Line 1149 sub IndexCreation {
|
Line 1211 sub IndexCreation {
|
|
|
sub print_latex_header { |
sub print_latex_header { |
my $mode=shift; |
my $mode=shift; |
my $output='\documentclass[letterpaper,twoside]{article}\raggedbottom'; |
|
if (($mode eq 'batchmode') || (!$perm{'pav'})) { |
return &Apache::londefdef::latex_header($mode); |
$output.='\batchmode'; |
|
} |
|
$output.='\newcommand{\keephidden}[1]{}\renewcommand{\deg}{$^{\circ}$}'."\n". |
|
'\usepackage{multirow}'."\n". |
|
'\usepackage{longtable}\usepackage{textcomp}\usepackage{makeidx}'."\n". |
|
'\usepackage[dvips]{graphicx}\usepackage{epsfig}'."\n". |
|
'\usepackage{wrapfig}'. |
|
'\usepackage{picins}\usepackage{calc}'."\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". |
|
'\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.05in}'."\n". |
|
'\setlength{\itemsep}{0.022in}\setlength{\parsep}{0in}'."\n". |
|
'\setlength{\belowdisplayskip}{0.04in}\setlength{\abovedisplayskip}{0.05in}'."\n". |
|
'\setlength{\abovedisplayshortskip}{-0.04in}'."\n". |
|
'\setlength{\belowdisplayshortskip}{0.04in}}}{\end{list}}'."\n". |
|
'\renewenvironment{theindex}{\begin{list}{}{{\vskip 1mm \noindent \large'."\n". |
|
'\textbf{Index}} \newline \setlength{\rightmargin}{0in}'."\n". |
|
'\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.01in}'."\n". |
|
'\setlength{\itemsep}{0.1in}\setlength{\parsep}{-0.02in}'."\n". |
|
'\setlength{\belowdisplayskip}{0.01in}\setlength{\abovedisplayskip}{0.01in}'."\n". |
|
'\setlength{\abovedisplayshortskip}{-0.04in}'."\n". |
|
'\setlength{\belowdisplayshortskip}{0.01in}}}{\end{list}}\begin{document}'."\n"; |
|
return $output; |
|
} |
} |
|
|
sub path_to_problem { |
sub path_to_problem { |
Line 1443 sub print_construction_sequence {
|
Line 1472 sub print_construction_sequence {
|
$helper, %form, |
$helper, %form, |
$LaTeXwidth); |
$LaTeXwidth); |
} |
} |
} |
} |
|
elsif ($urlp =~ /\.pdf$/i) { |
|
my $texversion; |
|
if ($member != 0) { |
|
$texversion .= '\cleardoublepage'; |
|
} |
|
|
|
$texversion .= &include_pdf($urlp); |
|
$texversion = &latex_header_footer_remove($texversion); |
|
if ($member != $#order) { |
|
$texversion .= '\\ \cleardoublepage'; |
|
} |
|
|
|
$result .= $texversion; |
|
} |
} |
} |
if ($helper->{VARS}->{'construction'} eq '1') {$result=~s/(\\begin{document})/$1 \\fbox\{RANDOM SEED IS $rndseed\} /;} |
if ($helper->{VARS}->{'construction'} eq '1') {$result=~s/(\\begin{document})/$1 \\fbox\{RANDOM SEED IS $rndseed\} /;} |
return $result; |
return $result; |
Line 1543 ENDPART
|
Line 1586 ENDPART
|
&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 1634 ENDPART
|
Line 1677 ENDPART
|
|
|
|
|
|
|
|
|
} |
} |
# Print annotations. |
# Print annotations. |
|
|
Line 1659 ENDPART
|
Line 1703 ENDPART
|
&& $currentURL=~/\.sequence$/ && $helper->{'VARS'}->{'construction'} eq '1') { |
&& $currentURL=~/\.sequence$/ && $helper->{'VARS'}->{'construction'} eq '1') { |
#printing content of sequence from the construction space |
#printing content of sequence from the construction space |
$currentURL=~s|\/~([^\/]+)\/|\/home\/$1\/public_html\/|; |
$currentURL=~s|\/~([^\/]+)\/|\/home\/$1\/public_html\/|; |
$result .= &print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
# $result .= &print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
$result .= &print_construction_sequence($currentURL, $helper, %form, |
$result .= &print_construction_sequence($currentURL, $helper, %form, |
$LaTeXwidth); |
$LaTeXwidth); |
$result .= '\end{document}'; |
$result .= '\end{document}'; |
Line 1677 ENDPART
|
Line 1721 ENDPART
|
$texversion =~ s/(\\end{document})/$annotation$1/; |
$texversion =~ s/(\\end{document})/$annotation$1/; |
} |
} |
$result .= $texversion; |
$result .= $texversion; |
} elsif ($cleanURL =~/.tex$/) { |
} elsif ($cleanURL =~/\.tex$/) { |
# For this sort of print of a single LaTeX file, |
# For this sort of print of a single LaTeX file, |
# We can just print the LaTeX file as it is uninterpreted in any way: |
# We can just print the LaTeX file as it is uninterpreted in any way: |
# |
# |
Line 1690 ENDPART
|
Line 1734 ENDPART
|
|
|
$do_postprocessing = 0; # Don't massage the result. |
$do_postprocessing = 0; # Don't massage the result. |
|
|
|
} elsif ($cleanURL =~ /\.pdf$/i) { |
|
$result .= &include_pdf($cleanURL); |
|
$result .= '\end{document}'; |
} else { |
} else { |
$result.=&unsupported($currentURL,$helper->{'VARS'}->{'LATEX_TYPE'}, |
$result.=&unsupported($currentURL,$helper->{'VARS'}->{'LATEX_TYPE'}, |
$helper->{'VARS'}->{'symb'}); |
$helper->{'VARS'}->{'symb'}); |
Line 1783 ENDPART
|
Line 1830 ENDPART
|
} else { |
} else { |
if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library)$/) { |
if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library)$/) { |
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
|
$texversion =~ s/\\begin{document}//; |
my $title = &Apache::lonnet::gettitle($master_seq[$i]); |
my $title = &Apache::lonnet::gettitle($master_seq[$i]); |
$title = &Apache::lonxml::latex_special_symbols($title); |
$title = &Apache::lonxml::latex_special_symbols($title); |
my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm '; |
my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm '; |
Line 1818 ENDPART
|
Line 1866 ENDPART
|
$assignment, |
$assignment, |
$courseidinfo, |
$courseidinfo, |
$name); |
$name); |
|
|
if ($numberofcolumns eq '1') { |
if ($numberofcolumns eq '1') { |
$result .='\newpage \noindent\parbox{\minipagewidth}{\noindent\\lhead{'.$header_text.'}} \vskip 5 mm '; |
$result .='\newpage \noindent\parbox{\minipagewidth}{\noindent\\lhead{'.$header_text.'}} \vskip 5 mm '; |
} else { |
} else { |
Line 1838 ENDPART
|
Line 1887 ENDPART
|
|
|
if ($flag_latex_header_remove ne 'NO') { |
if ($flag_latex_header_remove ne 'NO') { |
$texversion = &latex_header_footer_remove($texversion); |
$texversion = &latex_header_footer_remove($texversion); |
} else { |
} else { |
$texversion =~ s/\\end{document}/\\vskip 0\.5mm\\noindent\\makebox\[\\textwidth\/\$number_of_columns\]\[b\]\{\\hrulefill\}/; |
$texversion =~ s/\\end{document}/\\vskip 0\.5mm\\noindent\\makebox\[\\textwidth\/\$number_of_columns\]\[b\]\{\\hrulefill\}/; |
} |
} |
$result .= $texversion; |
$result .= $texversion; |
$flag_latex_header_remove = 'YES'; |
$flag_latex_header_remove = 'YES'; |
|
} elsif ($urlp=~ /\.pdf$/i) { |
|
if ($i > 0) { |
|
$result .= '\cleardoublepage'; |
|
} |
|
$result .= &include_pdf($urlp); |
|
if ($i != $#master_seq) { |
|
if ($numberofcolumns eq '1') { |
|
$result .= '\newpage'; |
|
} else { |
|
# the \\'s seem to be needed to let LaTeX know there's something |
|
# on the page since LaTeX seems to not like to clear an empty page. |
|
# |
|
$result .= '\\ \cleardoublepage'; |
|
} |
|
} |
|
$flag_latex_header_remove = 'YES'; |
|
|
} else { |
} else { |
$texversion=&unsupported($urlp,$helper->{'VARS'}->{'LATEX_TYPE'}, |
$texversion=&unsupported($urlp,$helper->{'VARS'}->{'LATEX_TYPE'}, |
$master_seq[$i]); |
$master_seq[$i]); |
Line 1854 ENDPART
|
Line 1920 ENDPART
|
$result .= $texversion; |
$result .= $texversion; |
$flag_latex_header_remove = 'YES'; |
$flag_latex_header_remove = 'YES'; |
} |
} |
if (&Apache::loncommon::connection_aborted($r)) { last; } |
if (&Apache::loncommon::connection_aborted($r)) { |
|
last; |
|
} |
} |
} |
&Apache::lonxml::clear_problem_counter(); |
&Apache::lonxml::clear_problem_counter(); |
if ($flag_page_in_sequence eq 'YES') { |
if ($flag_page_in_sequence eq 'YES') { |
Line 1908 ENDPART
|
Line 1976 ENDPART
|
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; |
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; |
|
|
#loop over students |
#loop over students |
my $flag_latex_header_remove = 'NO'; |
my $flag_latex_header_remove = 'NO'; |
my %moreenv; |
my %moreenv; |
$moreenv{'instructor_comments'}='hide'; |
$moreenv{'instructor_comments'}='hide'; |
$moreenv{'textwidth'}=&get_textwidth($helper,$LaTeXwidth); |
$moreenv{'textwidth'}=&get_textwidth($helper,$LaTeXwidth); |
Line 2238 ENDPART
|
Line 2306 ENDPART
|
# 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'); |
$r->print('<br /><h2>'.&mt('An unrecoverable network error occurred:').'</h2><p> '. |
$r->print('<br /><p class="LC_error">'.&mt('An unrecoverable network error occurred:').'</p><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:'). |
&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. |
'<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 />'. |
'</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 />'. |
Line 2345 sub print_resources {
|
Line 2413 sub print_resources {
|
|
|
|
|
my $header =&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
my $header =&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
|
$header =~ s/\\begin{document}//; #<<<<< |
my $title = &Apache::lonnet::gettitle($curresline); |
my $title = &Apache::lonnet::gettitle($curresline); |
$title = &Apache::lonxml::latex_special_symbols($title); |
$title = &Apache::lonxml::latex_special_symbols($title); |
my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm '; |
my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm '; |
Line 2380 sub print_resources {
|
Line 2449 sub print_resources {
|
$rendered =~ s/\\end{document}//; |
$rendered =~ s/\\end{document}//; |
} |
} |
$current_output .= $rendered.'\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\strut \vskip 0 mm \strut '; |
$current_output .= $rendered.'\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\strut \vskip 0 mm \strut '; |
|
} elsif($res_url = ~/\.pdf$/) { |
|
my $url = &Apache::lonnet::clutter($res_url); |
|
my $rendered = &include_pdf($url); |
|
if ($remove_latex_header ne 'NO') { |
|
$rendered = &latex_header_footer_remove($rendered); |
|
} |
|
$current_output .= $rendered; |
} else { |
} else { |
my $rendered = &unsupported($res_url,$helper->{'VARS'}->{'LATEX_TYPE'},$curresline); |
my $rendered = &unsupported($res_url,$helper->{'VARS'}->{'LATEX_TYPE'},$curresline); |
if ($remove_latex_header ne 'NO') { |
if ($remove_latex_header ne 'NO') { |
Line 2392 sub print_resources {
|
Line 2467 sub print_resources {
|
} |
} |
} |
} |
$remove_latex_header = 'YES'; |
$remove_latex_header = 'YES'; |
} |
} |
if (&Apache::loncommon::connection_aborted($r)) { last; } |
if (&Apache::loncommon::connection_aborted($r)) { last; } |
} |
} |
|
|
|
|
my $courseidinfo = &get_course(); |
my $courseidinfo = &get_course(); |
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 = |
Line 2403 sub print_resources {
|
Line 2480 sub print_resources {
|
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.'}'; |
|
|
if ($current_output=~/\\documentclass/) { |
if ($current_output=~/\\documentclass/) { |
$current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent$header_line$namepostfix}\\vskip 5 mm /; |
$current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent$header_line$namepostfix}\\vskip 5 mm /; |
} else { |
} else { |
Line 2487 sub get_randomly_ordered_warning {
|
Line 2563 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 { |
|
$message = "Retrieval of information about ordering of resources failed."; |
|
return '<message type="warning">'.$message.'</message>'; |
} |
} |
return; |
return; |
} |
} |
Line 2575 sub printHelper {
|
Line 2656 sub printHelper {
|
|
|
} |
} |
|
|
|
|
# Detect whether we're coming from construction space |
# Detect whether we're coming from construction space |
if ($env{'form.postdata'}=~/^(?:http:\/\/[^\/]+\/|\/|)\~([^\/]+)\/(.*)$/) { |
if ($env{'form.postdata'}=~/^(?:http:\/\/[^\/]+\/|\/|)\~([^\/]+)\/(.*)$/) { |
$helper->{VARS}->{'filename'} = "~$1/$2"; |
$helper->{VARS}->{'filename'} = "~$1/$2"; |
Line 2692 sub printHelper {
|
Line 2772 sub printHelper {
|
} |
} |
|
|
if (($helper->{'VARS'}->{'construction'} ne '1' ) && |
if (($helper->{'VARS'}->{'construction'} ne '1' ) && |
|
|
$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 2727 HELPERFRAGMENT
|
Line 2806 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)$/)) { |
|
|
Line 2778 HELPERFRAGMENT
|
Line 2857 HELPERFRAGMENT
|
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 2957 CHOOSE_ANON1
|
Line 3036 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 3081 CHOOSE_ANON2
|
Line 3160 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 3471 sub render {
|
Line 3550 sub render {
|
my $i; |
my $i; |
for ($i = 1; $i <= $maxColumns; $i++) { |
for ($i = 1; $i <= $maxColumns; $i++) { |
if ($i == 2) { |
if ($i == 2) { |
$result .= "<option value='$i' selected>$i</option>\n"; |
$result .= '<option value="'.$i.'" selected="selected">'.$i.'</option>'."\n"; |
} else { |
} else { |
$result .= "<option value='$i'>$i</option>\n"; |
$result .= '<option value="'.$i.'">'.$i.'</option>'."\n"; |
} |
} |
} |
} |
|
|
Line 3489 sub render {
|
Line 3568 sub render {
|
$_=~/(\w+)/; |
$_=~/(\w+)/; |
my $papersize=$1; |
my $papersize=$1; |
if ($paperSize[$i]=~/$DefaultPaperSize/) { |
if ($paperSize[$i]=~/$DefaultPaperSize/) { |
$result .= "<option selected value='$papersize'>" . $paperSize[$i] . "</option>\n"; |
$result .= '<option selected="selected" value="'.$papersize.'">'.$paperSize[$i].'</option>'."\n"; |
} else { |
} else { |
$result .= "<option value='$papersize'>" . $paperSize[$i] . "</option>\n"; |
$result .= '<option value="'.$papersize.'">'.$paperSize[$i].'</option>'."\n"; |
} |
} |
$i++; |
$i++; |
} |
} |
Line 3500 sub render {
|
Line 3579 sub render {
|
</td> |
</td> |
<td align='center'> |
<td align='center'> |
<select name='${var}.pdfFormFields'> |
<select name='${var}.pdfFormFields'> |
<option selected value='no'>$without</option> |
<option selected="selected" value="no">$without</option> |
<option value='yes'>$with</option> |
<option value="yes">$with</option> |
</select> |
</select> |
</td> |
</td> |
HTML |
HTML |
Line 3630 sub render {
|
Line 3709 sub render {
|
} else { |
} else { |
$size{'margin'} += 2.54; |
$size{'margin'} += 2.54; |
} |
} |
my %text = ('format' => 'How should each column be formatted?', |
my %lt = &Apache::lonlocal::texthash( |
'width' => 'Width:', |
'format' => 'How should each column be formatted?', |
'height' => 'Height:', |
'width' => 'Width', |
'margin' => 'Left Margin:',); |
'height' => 'Height', |
%text = &Apache::lonlocal::texthash(%text); |
'margin' => 'Left Margin' |
|
); |
$result .= <<ELEMENTHTML; |
|
|
$result .= '<p>'.$lt{'format'}.'</p>' |
<p>$text{'format'}</p> |
.&Apache::lonhtmlcommon::start_pick_box() |
|
.&Apache::lonhtmlcommon::row_title($lt{'width'}) |
<table cellpadding='3'> |
.'<input type="text" name="'.$var.'.width" value="'.$size{'width'}.'" size="4" />' |
<tr> |
.'<select name="'.$var.'.widthunit">' |
<td align='right'><b>$text{'width'}</b></td> |
.$size{'width_options'} |
<td align='left'><input type='text' name='$var.width' value="$size{'width'}" size='4' /></td> |
.'</select>' |
<td align='left'> |
.&Apache::lonhtmlcommon::row_closure() |
<select name='$var.widthunit'> |
.&Apache::lonhtmlcommon::row_title($lt{'height'}) |
$size{'width_options'} |
.'<input type="text" name="'.$var.'.height" value="'.$size{'height'}.'" size="4" />' |
</select> |
.'<select name="'.$var.'.heightunit">' |
</td> |
.$size{'height_options'} |
</tr> |
.'</select>' |
<tr> |
.&Apache::lonhtmlcommon::row_closure() |
<td align='right'><b>$text{'height'}</b></td> |
.&Apache::lonhtmlcommon::row_title($lt{'margin'}) |
<td align='left'><input type='text' name="$var.height" value="$size{'height'}" size='4' /></td> |
.'<input type="text" name="'.$var.'.lmargin" value="'.$size{'margin'}.'" size="4" />' |
<td align='left'> |
.'<select name="'.$var.'.lmarginunit">' |
<select name='$var.heightunit'> |
.$size{'margin_options'} |
$size{'height_options'} |
.'</select>' |
</select> |
.&Apache::lonhtmlcommon::row_closure(1) |
</td> |
.&Apache::lonhtmlcommon::end_pick_box(); |
</tr> |
# <p>Hint: Some instructors like to leave scratch space for the student by |
<tr> |
# making the width much smaller than the width of the page.</p> |
<td align='right'><b>$text{'margin'}</b></td> |
|
<td align='left'><input type='text' name='$var.lmargin' value="$size{'margin'}" size='4' /></td> |
|
<td align='left'> |
|
<select name='$var.lmarginunit'> |
|
$size{'margin_options'} |
|
</select> |
|
</td> |
|
</tr> |
|
</table> |
|
|
|
<!--<p>Hint: Some instructors like to leave scratch space for the student by |
|
making the width much smaller than the width of the page.</p>--> |
|
|
|
ELEMENTHTML |
|
|
|
return $result; |
return $result; |
} |
} |