Diff for /loncom/interface/lonprintout.pm between versions 1.64 and 1.68

version 1.64, 2002/09/12 18:28:45 version 1.68, 2002/09/18 18:47:04
Line 48  use Apache::inputtags; Line 48  use Apache::inputtags;
 use Apache::grades;  use Apache::grades;
 use Apache::edit;  use Apache::edit;
 use Apache::File();  use Apache::File();
   use Apache::lonnavmaps;
 use POSIX qw(strftime);  use POSIX qw(strftime);
 use GDBM_File;  use GDBM_File;
   
Line 87  sub menu_for_output { Line 88  sub menu_for_output {
 <input type="hidden" name="phase" value="two">  <input type="hidden" name="phase" value="two">
 <input type="hidden" name="url" value="$ENV{'form.postdata'}">  <input type="hidden" name="url" value="$ENV{'form.postdata'}">
 <input type="radio" name="choice" value="Standard LaTeX output for current document" checked>  Current document <b>$title_for_single_resource</b>  <input type="radio" name="choice" value="Standard LaTeX output for current document" checked>  Current document <b>$title_for_single_resource</b>
 (you will print what you saw on the screen)<br />  (prints what you just saw on the screen)<br />
 ENDMENUOUT1  ENDMENUOUT1
     if ((not $ENV{'request.role'}=~m/^au\./) and (not $ENV{'request.role'}=~m/^ca\./)) {      if ((not $ENV{'request.role'}=~m/^au\./) and (not $ENV{'request.role'}=~m/^ca\./)) {
  $r->print(<<ENDMENUOUT2);   $r->print(<<ENDMENUOUT2);
Line 360  ENDPART Line 361  ENDPART
       my $texversion=&Apache::lonnet::ssi($ENV{'form.url'});        my $texversion=&Apache::lonnet::ssi($ENV{'form.url'});
       &Apache::lonnet::delenv('form.grade_target');        &Apache::lonnet::delenv('form.grade_target');
       $result .= $texversion;        $result .= $texversion;
       $result = &additional_cleanup($result);  
       if ($ENV{'form.url'}=~m/\.page\s*$/) {        if ($ENV{'form.url'}=~m/\.page\s*$/) {
   ($result,$number_of_columns) = &page_cleanup($result);    ($result,$number_of_columns) = &page_cleanup($result);
         } else {
     $result = &additional_cleanup($result);
       }        }
     } elsif ($choice eq 'Standard LaTeX output for the primary sequence' or       } elsif ($choice eq 'Standard LaTeX output for the primary sequence' or 
              $choice eq 'Standard LaTeX output for whole primary sequence') {               $choice eq 'Standard LaTeX output for whole primary sequence') {
Line 370  ENDPART Line 372  ENDPART
         #-- where is the primary sequence containing file?          #-- where is the primary sequence containing file?
  my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});   my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});
  $symbolic =~ m/([^_]+)_/;   $symbolic =~ m/([^_]+)_/;
  my $primary_sequence = '/res/'.$1;   my $primary_sequence = '/res/'.$1;    
  my @master_seq = &coming_from_hash($primary_sequence);    my @master_seq = &coming_from_hash($primary_sequence);
         #-- produce an output string          #-- produce an output string
  for (my $i=0;$i<=$#master_seq;$i++) {   for (my $i=0;$i<=$#master_seq;$i++) {
             my $urlp = $master_seq[$i];              my ($urlp,$symb) = split /&&/, $master_seq[$i];
     if ($choice eq 'Standard LaTeX output for the primary sequence') {      if ($choice eq 'Standard LaTeX output for the primary sequence') {
  $selectionmade = 2;   $selectionmade = 2;
   if ($urlp =~ m/\.(problem|exam|quiz|assess|survey|form|library)/) {    if ($urlp =~ m/\.(problem|exam|quiz|assess|survey|form|library)/) {
     my %moreenv;      my %moreenv;
     $moreenv{'form.grade_target'}='tex';      $moreenv{'form.grade_target'}='tex';
     &Apache::lonnet::appenv(%moreenv);      &Apache::lonnet::appenv(%moreenv);
     my $texversion=&Apache::lonnet::ssi($urlp);      my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb));
     &Apache::lonnet::delenv('form.grade_target');      &Apache::lonnet::delenv('form.grade_target');
     $result .= $texversion;              $result .= $texversion;        
  }   }
Line 555  sub coming_from_hash { Line 557  sub coming_from_hash {
   
     my $mainsequence = shift;      my $mainsequence = shift;
     my @resourcelist = ();      my @resourcelist = ();
       my $mapid = $hash{'map_pc_'.$mainsequence};
     my $mapstart = $hash{'map_start_'.$mainsequence};      my $mapstart = $hash{'map_start_'.$mainsequence};
     my $mapfinish = $hash{'map_finish_'.$mainsequence};      my $mapfinish = $hash{'map_finish_'.$mainsequence};
       my $symb = &Apache::lonnet::symbread($hash{'src_'.$mapstart});
       $symb = m/^([^___]*)___/;
       my $presymb = $1.'___'; 
     my $current_resource = $mapstart;      my $current_resource = $mapstart;
     while ($current_resource ne $mapfinish) {      while ($current_resource ne $mapfinish) {
  if (not $hash{'src_'.$current_resource}=~/\.sequence$/) {   if (not $hash{'src_'.$current_resource}=~/\.sequence$/) {
     push @resourcelist,$hash{'src_'.$current_resource};      my $rid = $hash{'ids_'.$hash{'src_'.$current_resource}};
               if ($rid=~/,/) {
    my @rid = split /,/, $rid;
    foreach my $rid_element (@rid) {
       if ($rid_element =~ m/^$mapid\.(\d*)/) {
    $rid = $1; 
    last;
       }
    }
       } else {
    $rid =~ m/^$mapid\.(\d*)/;
                   $rid = $1;  
       }
       $hash{'src_'.$current_resource} =~ m/\/res\/(.*)$/;
       $symb = $presymb.$rid.'___'.$1;
       push @resourcelist,$hash{'src_'.$current_resource}.'&&'.$symb;
  } else {   } else {
     push @resourcelist,&coming_from_hash($hash{'src_'.$current_resource});      push @resourcelist,&coming_from_hash($hash{'src_'.$current_resource});
  }   }
  $current_resource = $hash{'goesto_'.$hash{'to_'.$current_resource}};   $current_resource = $hash{'goesto_'.$hash{'to_'.$current_resource}};
     }      }
       #needs if final resource in the map (type="finish") contains something
       if (not $hash{'src_'.$current_resource}=~/\.sequence$/) {
       my $rid = $hash{'ids_'.$hash{'src_'.$current_resource}};
               if ($rid=~/,/) {
    my @rid = split /,/, $rid;
    foreach my $rid_element (@rid) {
       if ($rid_element =~ m/^$mapid\.(\d*)/) {
    $rid = $1; 
    last;
       }
    }
       } else {
    $rid =~ m/^$mapid\.(\d*)/;
                   $rid = $1;  
       }
       $hash{'src_'.$current_resource} =~ m/\/res\/(.*)$/;
       $symb = $presymb.$rid.'___'.$1;
    push @resourcelist,$hash{'src_'.$current_resource}.'&&'.$symb;
       } else {
    push @resourcelist,&coming_from_hash($hash{'src_'.$current_resource});
       }
     return @resourcelist;      return @resourcelist;
 }  }
   #sub coming_from_hash {
   #
   #    my $mainsequence = shift;
   #    my @resourcelist = ();
   #    my $mapid = $hash{'map_pc_'.$mainsequence};
   #    my $mapstart = $hash{'map_start_'.$mainsequence};
   #    my $mapfinish = $hash{'map_finish_'.$mainsequence};
   #    my $current_resource = $mapstart;
   #    while ($current_resource ne $mapfinish) {
   # if (not $hash{'src_'.$current_resource}=~/\.sequence$/) {
   #    push @resourcelist,$hash{'src_'.$current_resource};
   # } else {
   #    push @resourcelist,&coming_from_hash($hash{'src_'.$current_resource});
   # }
   # $current_resource = $hash{'goesto_'.$hash{'to_'.$current_resource}};
   #    }
   #    #needs if final resource in the map (type="finish") contains something
   #    if (not $hash{'src_'.$current_resource}=~/\.sequence$/) {
   # push @resourcelist,$hash{'src_'.$current_resource};
   #    } else {
   # push @resourcelist,&coming_from_hash($hash{'src_'.$current_resource});
   #    }
   #    return @resourcelist;
   #}
   
   
 sub character_chart {  sub character_chart {
Line 909  sub additional_cleanup { Line 975  sub additional_cleanup {
     }      }
     return $result;      return $result;
 }  }
   
   
 sub page_cleanup {  sub page_cleanup {
     my $result = shift;      my $result = shift;
     $_ = $result;   
     m/\\end{document}(\d*)$/;      $result =~ m/\\end{document}(\d*)$/;
     my $number_of_columns = $1;      my $number_of_columns = $1;
     my $insert = '{';      my $insert = '{';
     for (my $id=1;$id<=$number_of_columns;$id++) { $insert .='l'; }      for (my $id=1;$id<=$number_of_columns;$id++) { $insert .='l'; }
     $insert .= '}';      $insert .= '}';
     $result =~ s/(\\begin{longtable})INSERTTHEHEADOFLONGTABLE/$1$insert/g;      $result =~ s/(\\begin{longtable})INSERTTHEHEADOFLONGTABLE\\endfirsthead\\endhead/$1$insert/g;
     $result =~ s/&\s*REMOVETHEHEADOFLONGTABLE\\\\/\\\\/g;      $result =~ s/&\s*REMOVETHEHEADOFLONGTABLE\\\\/\\\\/g;
     $result =~ s/(\\vskip\s*\d+\s*mm)/}\\\\\\parbox{\\minipagewidth}{/g;  
     $result =~ s/\\parbox{\\minipagewidth}{}\s*\\\\\s*(\\parbox{\\minipagewidth})/$1/g;  
     $result =~ s/\\parbox{\\minipagewidth}{\s*\\\\\\\\/\\parbox{\\minipagewidth}{/g;  
     return $result,$number_of_columns;      return $result,$number_of_columns;
 }  }
   
Line 949  sub details_for_menu { Line 1014  sub details_for_menu {
 sub handler {  sub handler {
   
     my $r = shift;      my $r = shift;
   
       my $loaderror=&Apache::lonnet::overloaderror($r);
       if ($loaderror) { return $loaderror; }
       $loaderror=
          &Apache::lonnet::overloaderror($r,
            $ENV{'course.'.$ENV{'request.course.id'}.'.home'});
       if ($loaderror) { return $loaderror; }
   
     $r->content_type('text/html');      $r->content_type('text/html');
     $r->send_http_header;      $r->send_http_header;
     $r->print(&Apache::loncommon::bodytag("Printing"));      $r->print(&Apache::loncommon::bodytag("Printing"));

Removed from v.1.64  
changed lines
  Added in v.1.68


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