Diff for /loncom/interface/lonprintout.pm between versions 1.480 and 1.481

version 1.480, 2006/08/21 22:53:19 version 1.481, 2006/08/22 14:43:49
Line 1051  sub recently_generated { Line 1051  sub recently_generated {
 #    my $helpervars = Dumper($helper->{'VARS'});  #    my $helpervars = Dumper($helper->{'VARS'});
 #    &Apache::lonnet::logthis("Dump of helper vars:\n $helpervars");  #    &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  {  sub get_page_breaks  {
 #    my ($helper) = @_;      my ($helper) = @_;
 #    my %page_breaks;      my %page_breaks;
 #  
 #    foreach my $break (split /\|\|\|/, $helper->{'VARS'}->{'FINISHPAGE'}) {      foreach my $break (split /\|\|\|/, $helper->{'VARS'}->{'FINISHPAGE'}) {
 # $page_breaks{$break} = 1;   $page_breaks{$break} = 1;
 #    }      }
 #    return %page_breaks;      return %page_breaks;
 #}  }
   
 #  Output a sequence (recursively if neeed)  #  Output a sequence (recursively if neeed)
 #  from construction space.  #  from construction space.
Line 1114  sub print_construction_sequence { Line 1110  sub print_construction_sequence {
  $answerform{'answer_output_mode'}='tex';   $answerform{'answer_output_mode'}='tex';
  $answerform{'rndseed'}=$rndseed;   $answerform{'rndseed'}=$rndseed;
  $answerform{'problem_split'}=$parmhash{'problem_stream_switch'};   $answerform{'problem_split'}=$parmhash{'problem_stream_switch'};
  if ($urlp=~/\/res\//) {   if ($urlp=~/\/res\//) {$env{'request.state'}='published';}
     $env{'request.state'}='published';  
  }  
   
  $resources_printed .= $urlp.':';   $resources_printed .= $urlp.':';
  my $answer=&Apache::lonnet::ssi($urlp,%answerform);   my $answer=&Apache::lonnet::ssi($urlp,%answerform);
  if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {   if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
Line 1205  ENDPART Line 1198  ENDPART
     my $start_page  = &Apache::loncommon::start_page('Preparing Printout',$js);      my $start_page  = &Apache::loncommon::start_page('Preparing Printout',$js);
     my $msg = &mt('Please stand by while processing your print request, this may take some time ...');      my $msg = &mt('Please stand by while processing your print request, this may take some time ...');
   
   
   
     $r->print($start_page."\n<p>\n$msg\n</p>\n");      $r->print($start_page."\n<p>\n$msg\n</p>\n");
   
     # fetch the pagebreaks and store them in the course environment      # fetch the pagebreaks and store them in the course environment
Line 1258  ENDPART Line 1249  ENDPART
     }      }
   
     if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'current_document') {      if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'current_document') {
   
       #-- single document - problem, page, html, xml, ...        #-- single document - problem, page, html, xml, ...
  my ($currentURL,$cleanURL);   my ($currentURL,$cleanURL);
   
Line 2158  sub printHelper { Line 2148  sub printHelper {
  }   }
   
     }      }
   
           
     # This will persistently load in the data we want from the      # This will persistently load in the data we want from the
     # very first screen.      # very first screen.
Line 2165  sub printHelper { Line 2156  sub printHelper {
     if ($env{'form.postdata'}=~/^(?:http:\/\/[^\/]+\/|\/|)\~([^\/]+)\/(.*)$/) {      if ($env{'form.postdata'}=~/^(?:http:\/\/[^\/]+\/|\/|)\~([^\/]+)\/(.*)$/) {
         $helper->{VARS}->{'filename'} = "~$1/$2";          $helper->{VARS}->{'filename'} = "~$1/$2";
         $helper->{VARS}->{'construction'} = 1;          $helper->{VARS}->{'construction'} = 1;
     } elsif ($env{'form.postdata'}) {      } else {
         if ($env{'form.postdata'}) {          if ($env{'form.postdata'}) {
             $helper->{VARS}->{'symb'} = &Apache::lonnet::symbread($env{'form.postdata'});              $helper->{VARS}->{'symb'} = &Apache::lonnet::symbread($env{'form.postdata'});
         }          }
Line 2177  sub printHelper { Line 2168  sub printHelper {
         }          }
   
     }      }
   
     if ($env{'form.symb'}) {      if ($env{'form.symb'}) {
         $helper->{VARS}->{'symb'} = $env{'form.symb'};          $helper->{VARS}->{'symb'} = $env{'form.symb'};
     }      }
Line 2188  sub printHelper { Line 2180  sub printHelper {
  &Apache::lonenc::check_encrypt($helper->{VARS}->{'symb'});   &Apache::lonenc::check_encrypt($helper->{VARS}->{'symb'});
     my ($resourceTitle,$sequenceTitle,$mapTitle) = &details_for_menu($helper);      my ($resourceTitle,$sequenceTitle,$mapTitle) = &details_for_menu($helper);
     if ($sequenceTitle ne '') {$helper->{VARS}->{'assignment'}=$sequenceTitle;}      if ($sequenceTitle ne '') {$helper->{VARS}->{'assignment'}=$sequenceTitle;}
   
           
     # Extract map      # Extract map
     my $symb = $helper->{VARS}->{'symb'};      my $symb = $helper->{VARS}->{'symb'};
Line 2195  sub printHelper { Line 2188  sub printHelper {
     my $subdir;      my $subdir;
   
     # Get the resource name from construction space      # Get the resource name from construction space
   
   
     if ($helper->{VARS}->{'construction'}) {      if ($helper->{VARS}->{'construction'}) {
         $resourceTitle = substr($helper->{VARS}->{'filename'},           $resourceTitle = substr($helper->{VARS}->{'filename'}, 
                                 rindex($helper->{VARS}->{'filename'}, '/')+1);                                  rindex($helper->{VARS}->{'filename'}, '/')+1);
         $subdir = substr($helper->{VARS}->{'filename'},          $subdir = substr($helper->{VARS}->{'filename'},
                          0, rindex($helper->{VARS}->{'filename'}, '/') + 1);                           0, rindex($helper->{VARS}->{'filename'}, '/') + 1);
     } elsif ($env{'form.postdata'} =~ /^\/res\// ) {      } else {
         $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);          ($map, $id, $url) = &Apache::lonnet::decode_symb($symb);
         $helper->{VARS}->{'postdata'} =           $helper->{VARS}->{'postdata'} = 
     &Apache::lonenc::check_encrypt(&Apache::lonnet::clutter($url));      &Apache::lonenc::check_encrypt(&Apache::lonnet::clutter($url));
   
         if (!$resourceTitle) { # if the resource doesn't have a title, use the filename          if (!$resourceTitle) { # if the resource doesn't have a title, use the filename
             my $postdata = $helper->{VARS}->{'postdata'};              my $postdata = $helper->{VARS}->{'postdata'};
             $resourceTitle = substr($postdata, rindex($postdata, '/') + 1);              $resourceTitle = substr($postdata, rindex($postdata, '/') + 1);
Line 2228  sub printHelper { Line 2213  sub printHelper {
   
     my $userCanSeeHidden = Apache::lonnavmaps::advancedUser();      my $userCanSeeHidden = Apache::lonnavmaps::advancedUser();
   
     &Apache::lonhelper::registerHelperTags();      Apache::lonhelper::registerHelperTags();
   
     # "Delete everything after the last slash."      # "Delete everything after the last slash."
     $subdir =~ s|/[^/]+$||;      $subdir =~ s|/[^/]+$||;
Line 2280  sub printHelper { Line 2265  sub printHelper {
     if (($helper->{'VARS'}->{'construction'} ne '1') &&      if (($helper->{'VARS'}->{'construction'} ne '1') &&
   
  $helper->{VARS}->{'postdata'} &&   $helper->{VARS}->{'postdata'} &&
  ($helper->{VARS}->{'postdata'} !~ /^\/res\//) &&  
  $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 <b>Problems</b> in folder <b><i>[_1]</i></b>',$sequenceTitle), 'map_problems', 'CHOOSE_PROBLEMS'];
Line 2317  HELPERFRAGMENT Line 2301  HELPERFRAGMENT
     # If the user has pfo (print for otheres) allow them to print all       # If the user has pfo (print for otheres) allow them to print all 
     # problems and resources  in the entier course, optionally for selected students      # problems and resources  in the entier course, optionally for selected students
     if ($perm{'pfo'} &&       if ($perm{'pfo'} && 
         $helper->{VARS}->{'postdata'} !~/^\/res\// &&           ($helper->{VARS}->{'postdata'}=~/\/res\// || $helper->{VARS}->{'postdata'}=~/\/(syllabus|smppg|aboutme|bulletinboard)$/)) { 
  $helper->{VARS}->{'postdata'}=~/\/(syllabus|smppg|aboutme|bulletinboard)$/) {   
         push @{$printChoices}, ['Selected <b>Problems</b> from <b>entire course</b>', 'all_problems', 'ALL_PROBLEMS'];          push @{$printChoices}, ['Selected <b>Problems</b> from <b>entire course</b>', 'all_problems', 'ALL_PROBLEMS'];
  push @{$printChoices}, ['Selected <b>Resources</b> from <b>entire course</b>', 'all_resources', 'ALL_RESOURCES'];   push @{$printChoices}, ['Selected <b>Resources</b> from <b>entire course</b>', 'all_resources', 'ALL_RESOURCES'];
          &Apache::lonxml::xmlparse($r, 'helper', <<ALL_PROBLEMS);           &Apache::lonxml::xmlparse($r, 'helper', <<ALL_PROBLEMS);
Line 2626  CHOOSE_STUDENTS1 Line 2610  CHOOSE_STUDENTS1
   </state>    </state>
     $resource_selector      $resource_selector
 CHOOSE_ANON2  CHOOSE_ANON2
 }      }
   
     # FIXME: That RE should come from a library somewhere.      # FIXME: That RE should come from a library somewhere.
     if ((((&Apache::lonnet::allowed('bre',$subdir) eq 'F') and       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/') {    
   ($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 <b>Problems</b> from current subdirectory <b><i>[_1]</i></b>",$subdir), 'problems_from_directory', 'CHOOSE_FROM_SUBDIR'];          push @{$printChoices}, [&mt("Selected <b>Problems</b> from current subdirectory <b><i>[_1]</i></b>",$subdir), 'problems_from_directory', 'CHOOSE_FROM_SUBDIR'];
   
         my $f = '$filename';          my $f = '$filename';
Line 2656  CHOOSE_FROM_SUBDIR Line 2639  CHOOSE_FROM_SUBDIR
   
     # Allow the user to select any sequence in the course, feed it to      # Allow the user to select any sequence in the course, feed it to
     # another resource selector for that sequence      # another resource selector for that sequence
     if (!$helper->{VARS}->{'construction'} && ($helper->{VARS}->{'postdata'} !~ /^\/res\//)) {      if (!$helper->{VARS}->{'construction'}) {
  push @$printChoices, ["Selected <b>Resources</b> from <b>selected folder</b> in course",   push @$printChoices, ["Selected <b>Resources</b> from <b>selected folder</b> in course",
       'select_sequences', 'CHOOSE_SEQUENCE'];        'select_sequences', 'CHOOSE_SEQUENCE'];
  my $escapedSequenceName = $helper->{VARS}->{'SEQUENCE'};   my $escapedSequenceName = $helper->{VARS}->{'SEQUENCE'};
Line 2687  CHOOSE_FROM_SUBDIR Line 2670  CHOOSE_FROM_SUBDIR
     </state>      </state>
 CHOOSE_FROM_ANY_SEQUENCE  CHOOSE_FROM_ANY_SEQUENCE
 }  }
   
     # Generate the first state, to select which resources get printed.      # Generate the first state, to select which resources get printed.
     Apache::lonhelper::state->new("START", "Select Printing Options:");      Apache::lonhelper::state->new("START", "Select Printing Options:");
     $paramHash = Apache::lonhelper::getParamHash();      $paramHash = Apache::lonhelper::getParamHash();

Removed from v.1.480  
changed lines
  Added in v.1.481


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>