--- loncom/interface/lonprintout.pm 2006/08/03 02:36:56 1.476
+++ loncom/interface/lonprintout.pm 2006/08/22 14:44:39 1.482
@@ -2,7 +2,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.476 2006/08/03 02:36:56 albertel Exp $
+# $Id: lonprintout.pm,v 1.482 2006/08/22 14:44:39 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -812,6 +812,8 @@ sub details_for_menu {
if (!$postdata) { $postdata=$helper->{VARS}{'postdata'}; }
my $name_of_resource = &Apache::lonnet::gettitle($postdata);
my $symbolic = &Apache::lonnet::symbread($postdata);
+ return if ( $symbolic eq '');
+
my ($map,$id,$resource)=&Apache::lonnet::decode_symb($symbolic);
$map=&Apache::lonnet::clutter($map);
my $name_of_sequence = &Apache::lonnet::gettitle($map);
@@ -1119,7 +1121,9 @@ sub print_construction_sequence {
# If necessary, encapsulate answer in minipage:
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
- my $body ='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($helper->{'VARS'}->{'symb'}).'}\vskip 0 mm ';
+ my $title = &Apache::lonnet::gettitle($helper->{'VARS'}->{'symb'});
+ $title = &Apache::lonxml::latex_special_symbols($title);
+ my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm ';
$body.=&path_to_problem($urlp,$LaTeXwidth);
$body.='\vskip 1 mm '.$answer.'\end{document}';
$body = &encapsulate_minipage($body);
@@ -1314,7 +1318,9 @@ ENDPART
} else {
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
if ($helper->{'VARS'}->{'construction'} ne '1') {
- $texversion.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($helper->{'VARS'}->{'symb'}).'}\vskip 0 mm ';
+ my $title = &Apache::lonnet::gettitle($helper->{'VARS'}->{'symb'});
+ $title = &Apache::lonxml::latex_special_symbols($title);
+ $texversion.='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm ';
$texversion.=&path_to_problem($cleanURL,$LaTeXwidth);
} else {
$texversion.='\vskip 0 mm \noindent\textbf{Prints from construction space - there is no title.}\vskip 0 mm ';
@@ -1435,7 +1441,9 @@ ENDPART
} else {
if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
- my $body ='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($master_seq[$i]).'}\vskip 0 mm ';
+ my $title = &Apache::lonnet::gettitle($master_seq[$i]);
+ $title = &Apache::lonxml::latex_special_symbols($title);
+ my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm ';
$body .= &path_to_problem ($urlp,$LaTeXwidth);
$body .='\vskip 1 mm '.$answer;
$body = &encapsulate_minipage($body);
@@ -1952,8 +1960,10 @@ sub print_resources {
my $header =&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
- my $body ='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($curresline).'}\vskip 0 mm ';
- $body .=&path_to_problem($res_url,$LaTeXwidth);
+ my $title = &Apache::lonnet::gettitle($curresline);
+ $title = &Apache::lonxml::latex_special_symbols($title);
+ my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm ';
+ $body .=&path_to_problem($res_url,$LaTeXwidth);
$body .='\vskip 1 mm '.$ansrendered;
$body = &encapsulate_minipage($body);
$rendered = $header.$body;
@@ -2151,6 +2161,9 @@ sub printHelper {
} else {
if ($env{'form.postdata'}) {
$helper->{VARS}->{'symb'} = &Apache::lonnet::symbread($env{'form.postdata'});
+ if ( $helper->{VARS}->{'symb'} eq '') {
+ $helper->{VARS}->{'postdata'} = $env{'form.postdata'};
+ }
}
if ($env{'form.symb'}) {
$helper->{VARS}->{'symb'} = $env{'form.symb'};
@@ -2186,9 +2199,14 @@ sub printHelper {
$subdir = substr($helper->{VARS}->{'filename'},
0, rindex($helper->{VARS}->{'filename'}, '/') + 1);
} else {
- ($map, $id, $url) = &Apache::lonnet::decode_symb($symb);
- $helper->{VARS}->{'postdata'} =
- &Apache::lonenc::check_encrypt(&Apache::lonnet::clutter($url));
+ if ($symb ne '') {
+ ($map, $id, $url) = &Apache::lonnet::decode_symb($symb);
+ $helper->{VARS}->{'postdata'} =
+ &Apache::lonenc::check_encrypt(&Apache::lonnet::clutter($url));
+ } else {
+ $url = $helper->{VARS}->{'postdata'};
+ }
+ $url = &Apache::lonnet::clutter($url);
if (!$resourceTitle) { # if the resource doesn't have a title, use the filename
my $postdata = $helper->{VARS}->{'postdata'};
@@ -2209,11 +2227,6 @@ sub printHelper {
# "Delete everything after the last slash."
$subdir =~ s|/[^/]+$||;
- if (not $helper->{VARS}->{'construction'}) {
- $subdir=$Apache::lonnet::perlvar{'lonDocRoot'}.'/res/'.$subdir;
- }
- # "Remove all duplicate slashes."
- $subdir =~ s|/+|/|g;
# What can be printed is a very dynamic decision based on
# lots of factors. So we need to dynamically build this list.
@@ -2605,12 +2618,20 @@ CHOOSE_ANON2
}
# FIXME: That RE should come from a library somewhere.
- if ((((&Apache::lonnet::allowed('bre',$subdir) eq 'F') and ($helper->{VARS}->{'postdata'}=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)/)) or defined $helper->{'VARS'}->{'construction'}) and $perm{'pav'} and $subdir ne $Apache::lonnet::perlvar{'lonDocRoot'}.'/res/') {
- push @{$printChoices}, [&mt("Selected Problems from current subdirectory [_1]",$subdir), 'problems_from_directory', 'CHOOSE_FROM_SUBDIR'];
+ if ($perm{'pav'}
+ && $subdir ne $Apache::lonnet::perlvar{'lonDocRoot'}.'/res/'
+ && (defined($helper->{'VARS'}->{'construction'})
+ ||
+ (&Apache::lonnet::allowed('bre',$subdir) eq 'F'
+ &&
+ $helper->{VARS}->{'postdata'}=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)/)
+ )
+ ) {
- my $f = '$filename';
+ my $pretty_dir = &Apache::lonnet::hreflocation($subdir);
+ push @{$printChoices}, [&mt("Selected Problems from current subdirectory [_1]",$pretty_dir), 'problems_from_directory', 'CHOOSE_FROM_SUBDIR'];
my $xmlfrag = <
+
PAGESIZE