--- loncom/interface/lonprintout.pm 2006/08/14 10:52:04 1.478
+++ loncom/interface/lonprintout.pm 2006/08/21 22:53:19 1.480
@@ -2,7 +2,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.478 2006/08/14 10:52:04 foxr Exp $
+# $Id: lonprintout.pm,v 1.480 2006/08/21 22:53:19 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1051,16 +1051,20 @@ sub recently_generated {
# my $helpervars = Dumper($helper->{'VARS'});
# &Apache::lonnet::logthis("Dump of helper vars:\n $helpervars");
#}
+#sub dump_env {
+# my $envvars = Dumper(\%env);
+# &Apache::lonnet::logthis("Dump of env: \n $envvars");
+#}
-sub get_page_breaks {
- my ($helper) = @_;
- my %page_breaks;
-
- foreach my $break (split /\|\|\|/, $helper->{'VARS'}->{'FINISHPAGE'}) {
- $page_breaks{$break} = 1;
- }
- return %page_breaks;
-}
+#sub get_page_breaks {
+# my ($helper) = @_;
+# my %page_breaks;
+#
+# foreach my $break (split /\|\|\|/, $helper->{'VARS'}->{'FINISHPAGE'}) {
+# $page_breaks{$break} = 1;
+# }
+# return %page_breaks;
+#}
# Output a sequence (recursively if neeed)
# from construction space.
@@ -2154,7 +2158,6 @@ sub printHelper {
}
}
-
# This will persistently load in the data we want from the
# very first screen.
@@ -2193,15 +2196,20 @@ sub printHelper {
# Get the resource name from construction space
+
if ($helper->{VARS}->{'construction'}) {
$resourceTitle = substr($helper->{VARS}->{'filename'},
rindex($helper->{VARS}->{'filename'}, '/')+1);
$subdir = substr($helper->{VARS}->{'filename'},
0, rindex($helper->{VARS}->{'filename'}, '/') + 1);
- } elsif ($env{'form.postdata'} =~ /^\/res\//) { # Get resource name from res space.
- $helper->{VARS}->{'postdata'} = $env{'form.postdata'};
-
- } elsif (!$helper->{VARS}->{'postdata'}) {
+ } elsif ($env{'form.postdata'} =~ /^\/res\// ) {
+ $subdir = substr($env{'form.postdata'},
+ 0, rindex($env{'form.postdata'}, '/') + 1);
+ } elsif ((defined $helper->{VARS}->{'postdata'}) &&
+ ($helper->{VARS}->{'postdata'} =~ /^\/res\//)){
+ $subdir = substr($helper->{VARS}->{'postdata'},
+ 0, rindex($helper->{VARS}->{'postdata'}, '/') + 1);
+ } else { # (!$helper->{VARS}->{'postdata'}) {
($map, $id, $url) = &Apache::lonnet::decode_symb($symb);
$helper->{VARS}->{'postdata'} =
&Apache::lonenc::check_encrypt(&Apache::lonnet::clutter($url));
@@ -2220,7 +2228,7 @@ sub printHelper {
my $userCanSeeHidden = Apache::lonnavmaps::advancedUser();
- Apache::lonhelper::registerHelperTags();
+ &Apache::lonhelper::registerHelperTags();
# "Delete everything after the last slash."
$subdir =~ s|/[^/]+$||;
@@ -2272,6 +2280,7 @@ sub printHelper {
if (($helper->{'VARS'}->{'construction'} ne '1') &&
$helper->{VARS}->{'postdata'} &&
+ ($helper->{VARS}->{'postdata'} !~ /^\/res\//) &&
$helper->{VARS}->{'assignment'}) {
# Allow problems from sequence
push @{$printChoices}, [&mt('Selected Problems in folder [_1]',$sequenceTitle), 'map_problems', 'CHOOSE_PROBLEMS'];
@@ -2308,8 +2317,8 @@ HELPERFRAGMENT
# If the user has pfo (print for otheres) allow them to print all
# problems and resources in the entier course, optionally for selected students
if ($perm{'pfo'} &&
- ($helper->{VARS}->{'postdata'}=~/\/res\// || $helper->{VARS}->{'postdata'}=~/\/(syllabus|smppg|aboutme|bulletinboard)$/)) {
-
+ $helper->{VARS}->{'postdata'} !~/^\/res\// &&
+ $helper->{VARS}->{'postdata'}=~/\/(syllabus|smppg|aboutme|bulletinboard)$/) {
push @{$printChoices}, ['Selected Problems from entire course', 'all_problems', 'ALL_PROBLEMS'];
push @{$printChoices}, ['Selected Resources from entire course', 'all_resources', 'ALL_RESOURCES'];
&Apache::lonxml::xmlparse($r, 'helper', <
$resource_selector
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/') {
+ 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'];
my $f = '$filename';
@@ -2646,7 +2656,7 @@ CHOOSE_FROM_SUBDIR
# Allow the user to select any sequence in the course, feed it to
# another resource selector for that sequence
- if (!$helper->{VARS}->{'construction'}) {
+ if (!$helper->{VARS}->{'construction'} && ($helper->{VARS}->{'postdata'} !~ /^\/res\//)) {
push @$printChoices, ["Selected Resources from selected folder in course",
'select_sequences', 'CHOOSE_SEQUENCE'];
my $escapedSequenceName = $helper->{VARS}->{'SEQUENCE'};
@@ -2677,7 +2687,6 @@ CHOOSE_FROM_SUBDIR
CHOOSE_FROM_ANY_SEQUENCE
}
-
# Generate the first state, to select which resources get printed.
Apache::lonhelper::state->new("START", "Select Printing Options:");
$paramHash = Apache::lonhelper::getParamHash();