Diff for /loncom/interface/lonprintout.pm between versions 1.93 and 1.103

version 1.93, 2002/11/20 17:26:52 version 1.103, 2003/01/10 15:41:26
Line 66  sub headerform { Line 66  sub headerform {
 <body bgcolor="FFFFFF">  <body bgcolor="FFFFFF">
 <form method="post" enctype="multipart/form-data" action="/adm/printout" name="printform">  <form method="post" enctype="multipart/form-data" action="/adm/printout" name="printform">
 ENDHEADER  ENDHEADER
     if ($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) {   
     $r->print(<<ENDHEADER1);      if ($ENV{'form.postdata'}=~m|^/res/|) {
    $r->print(<<ENDHEADER1);
 <b>Path to current document: </b><tt>$ENV{'form.postdata'}</tt><p>  <b>Path to current document: </b><tt>$ENV{'form.postdata'}</tt><p>
 ENDHEADER1  ENDHEADER1
 }      }
 }  }
   
   
Line 81  sub menu_for_output { Line 82  sub menu_for_output {
     if ($title_for_single_resource ne '') {$title_for_single_resource = '"'.$title_for_single_resource.'"';}      if ($title_for_single_resource ne '') {$title_for_single_resource = '"'.$title_for_single_resource.'"';}
     if ($title_for_sequence ne '') {$title_for_sequence = '"'.$title_for_sequence.'"';}      if ($title_for_sequence ne '') {$title_for_sequence = '"'.$title_for_sequence.'"';}
     if ($title_for_main_map ne '') {$title_for_main_map = '"'.$title_for_main_map.'"';}      if ($title_for_main_map ne '') {$title_for_main_map = '"'.$title_for_main_map.'"';}
       $ENV{'form.postdata'} =~ s|http://[^/]+||;
     my $subdir_to_print = $ENV{'form.postdata'};      my $subdir_to_print = $ENV{'form.postdata'};
     $subdir_to_print =~ m/\/([^\/]+)$/;      $subdir_to_print =~ m/\/([^\/]+)$/;
     $subdir_to_print =~ s/$1//;      $subdir_to_print =~ s/\Q$1\E//;
     $r->print(<<ENDMENUOUT1);      $r->print(<<ENDMENUOUT1);
 <h1>What do you want to print? Make a choice.</h1><br />  <h1>What do you want to print? Make a choice.</h1><br />
 <input type="hidden" name="phase" value="two">  <input type="hidden" name="phase" value="two">
Line 151  ENDMENUOUT5 Line 153  ENDMENUOUT5
   
 sub sequence_content_menu {  sub sequence_content_menu {
     my ($key_to,$r) = @_;      my ($key_to,$r) = @_;
       my $primary_sequence;
     my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});      my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});
     my @sequence = split('___',$symbolic);      my @sequence = split('___',$symbolic);
     my $primary_sequence = '/res/'.$sequence[0];         if ($sequence[0]=~/^uploaded/) {$primary_sequence = '/'.$sequence[0];} 
         else {$primary_sequence = '/res/'.$sequence[0];} 
     my @master_seq = &coming_from_hash($primary_sequence,$sequence[0]);      my @master_seq = &coming_from_hash($primary_sequence,$sequence[0]);
     my @master_seq_view = @master_seq;      my @master_seq_view = sort @master_seq;
       @master_seq = sort @master_seq;
     for (my $i=0;$i<=$#master_seq_view;$i++) {      for (my $i=0;$i<=$#master_seq_view;$i++) {
  $master_seq_view[$i]=~/\/([^\/]+)$/;   $master_seq_view[$i]=~/\/([^\/]+)$/;
  $master_seq_view[$i]=$1;   $master_seq_view[$i]=$1;
Line 193  ENDMENUOUT1 Line 198  ENDMENUOUT1
     my $inc=0;       my $inc=0; 
     for (my $i=0;$i<=$#master_seq_view;$i++) {      for (my $i=0;$i<=$#master_seq_view;$i++) {
       if ($key_to==1 && $master_seq_view[$i]=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {        if ($key_to==1 && $master_seq_view[$i]=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {
  $r->print('<br /><input type=checkbox name="whatfile'.$inc.'" value="'.$master_seq[$i].'"> '.   $r->print('<br /><input type=checkbox name="whatfile'.$inc.'" value="'.$master_seq[$i].'"> '."\n".
                   $master_seq_view[$i]);                    $master_seq_view[$i]);
         $inc++;          $inc++;
     } elsif ($key_to==0 && $master_seq_view[$i]=~/\.(problem|exam|quiz|assess|survey|form|library|xml|htm|html|page)$/) {      } elsif ($key_to==0 && $master_seq_view[$i]=~/\.(problem|exam|quiz|assess|survey|form|library|xml|htm|html|page)$/) {
Line 217  sub problem_choice_menu { Line 222  sub problem_choice_menu {
     my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});      my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
     $subdirtoprint =~ s/\/[^\/]+$//;      $subdirtoprint =~ s/\/[^\/]+$//;
     my @list_of_files = ();      my @list_of_files = ();
     if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) {  
  $subdirtoprint =~ s/^[^~]*~(\w+)\//\/home\/$1\/public_html\//;  
     } else {  
  $subdirtoprint =~ s/.*(\/res\/)/$1/;  
     }  
     my @content_directory = ();      my @content_directory = ();
     if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) {      if ($subdirtoprint =~ m|/home/([^/]+)/public_html|) {
  @content_directory = &Apache::lonnet::dirlist($subdirtoprint,$ENV{'user.domain'}, $ENV{'user.name'},'');   #localmachine CSTR space
    my $user=$1;
    my $domain=$Apache::lonnet::perlvar{'lonDefDomain'};
    @content_directory = &Apache::lonnet::dirlist($subdirtoprint,
         $domain, $user,'');
     } else {      } else {
  @content_directory = &Apache::lonnet::dirlist($subdirtoprint);   @content_directory = &Apache::lonnet::dirlist($subdirtoprint);
     }      }
Line 269  sub problem_choice_menu { Line 273  sub problem_choice_menu {
 <p>  <p>
 ENDMENUOUT1  ENDMENUOUT1
     my $i=0;      my $i=0;
     foreach my $file (@list_of_files) {      foreach my $file (sort @list_of_files) {
  $r->print('<br /><input type=checkbox name="whattoprint'.$i.'" value="'.$file.'"> '.   $r->print('<br /><input type=checkbox name="whattoprint'.$i.'" value="'.$file.'"> '.
                   $file);                    $file);
  $i++;   $i++;
Line 330  ENDMENUOUT1 Line 334  ENDMENUOUT1
     }      }
 </script>  </script>
 <input type=button onClick="checkall()" value="Check All">&nbsp;  <input type=button onClick="checkall()" value="Check All">&nbsp;
 <input type=button onClick="checksec()" value="Check Section/Group">  <input type=button onClick="checksec()" value="Type Section/Group then click">
 <input type=text size=5 name=chksec>&nbsp;  <input type=text size=5 name=chksec>&nbsp;
 <input type=button onClick="uncheckall()" value="Uncheck">  <input type=button onClick="uncheckall()" value="Uncheck">
 <p>  <p>
Line 431  ENDPART Line 435  ENDPART
  if ($ENV{'form.papersize'} eq '') {$papersize = 'Letter [8 1/2x11 in]';}   if ($ENV{'form.papersize'} eq '') {$papersize = 'Letter [8 1/2x11 in]';}
  if ($ENV{'form.numberofcolumns'} eq '') {$numberofcolumns = 2;}   if ($ENV{'form.numberofcolumns'} eq '') {$numberofcolumns = 2;}
     }      }
     if (($choice eq 'Standard LaTeX output for current document') && ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./)) {      if (($choice eq 'Standard LaTeX output for current document') &&
    ($ENV{'form.url'}=~m|^/~|)) {
  if ($ENV{'form.layout'} eq '') {$layout = 'CAPA';}   if ($ENV{'form.layout'} eq '') {$layout = 'CAPA';}
  if ($ENV{'form.papersize'} eq '') {$papersize = 'Letter [8 1/2x11 in]';}   if ($ENV{'form.papersize'} eq '') {$papersize = 'Letter [8 1/2x11 in]';}
  if ($ENV{'form.numberofcolumns'} eq '') {$numberofcolumns = 2;}   if ($ENV{'form.numberofcolumns'} eq '') {$numberofcolumns = 2;}
Line 465  ENDPART Line 470  ENDPART
         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{        } else {
         $result='\documentclass[letterpaper]{article}\usepackage{calc}\begin{document}You are trying to print eather sequence or something simular. Currently this option is not supported. Sorry for the inconvenience. Bye. Your current URL is '.$ENV{'form.url'}.' \end{document}'    $result='\documentclass[letterpaper]{article}\usepackage{calc}\begin{document}Printout of this type of document is currently not supported: ';
     if ($ENV{'form.url'}=~/\/(aboutme|syllabus|bulletinboard|smppg)$/) {
         $result.=$1;
     } else {
         $result.=$ENV{'form.url'};
     }
     $result.=' \end{document}'
       }        }
     } 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 492  ENDPART Line 503  ENDPART
    $moreenv{'form.grade_target'}='tex';     $moreenv{'form.grade_target'}='tex';
    $moreenv{'form.textwidth'}=$LaTeXwidth;     $moreenv{'form.textwidth'}=$LaTeXwidth;
    &Apache::lonnet::appenv(%moreenv);     &Apache::lonnet::appenv(%moreenv);
    &Apache::lonnet::logthis("Trying to get $urlp with symb $symb");     #&Apache::lonnet::logthis("Trying to get $urlp with symb $symb");
    my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb));     my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb));
    &Apache::lonnet::delenv('form.grade_target','form.textwidth');     &Apache::lonnet::delenv('form.grade_target','form.textwidth');
    if ($urlp =~ m/\.page/) {     if ($urlp =~ m/\.page/) {
Line 610  ENDPART Line 621  ENDPART
  $moreenv{'form.grade_target'}='tex';   $moreenv{'form.grade_target'}='tex';
  $moreenv{'form.textwidth'}=$LaTeXwidth;   $moreenv{'form.textwidth'}=$LaTeXwidth;
  &Apache::lonnet::appenv(%moreenv);   &Apache::lonnet::appenv(%moreenv);
  if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) {    if ($urlp =~ m|/home/([^/]+)/public_html|) {
     $urlp =~ s/\/home\/([^\/]*)\/public_html/\/~$1/;       $urlp =~ s|/home/([^/]*)/public_html|/~$1|;
  }   }
  my $texversion=&Apache::lonnet::ssi($urlp);   my $texversion=&Apache::lonnet::ssi($urlp);
  &Apache::lonnet::delenv('form.grade_target','form.textwidth');   &Apache::lonnet::delenv('form.grade_target','form.textwidth');
Line 719  sub coming_from_hash { Line 730  sub coming_from_hash {
     my $mapid = $hash{'map_pc_'.$mainsequence};      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 ($presymb) = split(/___/,$symb);      my ($presymb);
       if ($symb) {
    ($presymb)=split(/___/,$symb);
       } else {
    $presymb=$mainsequence;
    $presymb=~s|^/res/||;
       }
     $presymb = $presymb.'___';      $presymb = $presymb.'___';
     my $current_resource = $mapstart;      my $current_resource = $mapstart;
     while ($current_resource ne $mapfinish) {      while ($current_resource ne $mapfinish) {
Line 1173  sub character_chart { Line 1190  sub character_chart {
   
 sub page_format_transformation {  sub page_format_transformation {
  my ($papersize,$layout,$numberofcolumns,$choice,$text,$assignment) = @_;    my ($papersize,$layout,$numberofcolumns,$choice,$text,$assignment) = @_; 
    $assignment=~s/_/ /g;
  my ($textwidth,$textheight,$oddoffset,$evenoffset) = &page_format($papersize,$layout,$numberofcolumns);   my ($textwidth,$textheight,$oddoffset,$evenoffset) = &page_format($papersize,$layout,$numberofcolumns);
  my $courseidinfo = $ENV{'course.'.$ENV{'request.course.id'}.'.description'};   my $courseidinfo = $ENV{'course.'.$ENV{'request.course.id'}.'.description'};
  if ($layout eq 'CBI') {   if ($layout eq 'CBI') {
     $text =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}\\setlength{\\topmargin}{200pt}\\setlength{\\textwidth}{$textwidth}\\setlength{\\textheight}{$textheight}\\setlength{\\parindent}{20pt}\\setlength{\\marginparwidth}{90pt}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt}\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm} \\begin{document}\\setcounter{page}{1}\\noindent\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}} \\hfill  $courseidinfo} \\vskip 5 mm /;      $text =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}\\setlength{\\topmargin}{200pt}\\setlength{\\textwidth}{$textwidth}\\setlength{\\textheight}{$textheight}\\setlength{\\parindent}{20pt}\\setlength{\\marginparwidth}{90pt}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt}\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm} \\begin{document}\\setcounter{page}{1}\\noindent\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}} \\hfill  $courseidinfo} \\vskip 5 mm /;
  } elsif ($layout eq 'CAPA') {   } elsif ($layout eq 'CAPA') {
      if ($choice ne 'All class print') {        if ($choice ne 'All class print') { 
  $text =~ s/\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\setlength{\\topmargin}{1cm}\\setlength{\\headheight}{1cm}\\setlength{\\headsep}{0.5cm}\\markboth{}{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}} $courseidinfo  - $assignment}\\pagestyle{myheadings}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}/;   $text =~ s/\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\setlength{\\topmargin}{1cm}\\setlength{\\headheight}{1cm}\\setlength{\\headsep}{0.5cm}\\markboth{}{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}} $courseidinfo - $assignment}\\pagestyle{myheadings}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}/;
     } else {      } else {
  $text =~ s/\\begin{document}/\\setlength{\\textheight}{$textheight}\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}\\setlength{\\textwidth}{$textwidth}\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}  \\vskip 5 mm /;   $text =~ s/\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}  \\vskip 5 mm /;
     }      }
  }   }
  return $text;   return $text;
Line 1207  sub details_for_menu { Line 1225  sub details_for_menu {
     my $name_of_resourse = $hash{'title_'.$hash{'ids_'.$ENV{'form.postdata'}}};      my $name_of_resourse = $hash{'title_'.$hash{'ids_'.$ENV{'form.postdata'}}};
     my $symbolic = &Apache::lonnet::symbread($ENV{'form.postdata'});      my $symbolic = &Apache::lonnet::symbread($ENV{'form.postdata'});
     my ($map,$id,$resource)=split(/___/,$symbolic);      my ($map,$id,$resource)=split(/___/,$symbolic);
     my $name_of_sequence = $hash{'title_'.$hash{'ids_/res/'.$map}};      my $name_of_sequence;
       if ($map=~/^uploaded/) {
    $name_of_sequence = $hash{'title_'.$hash{'ids_/'.$map}};
       } else {
    $name_of_sequence = $hash{'title_'.$hash{'ids_/res/'.$map}};
       }
     if ($name_of_sequence =~ /^\s*$/) {      if ($name_of_sequence =~ /^\s*$/) {
       $map =~ m|([^/]+)$|;       $map =~ m|([^/]+)$|;
       $name_of_sequence = $1;        $name_of_sequence = $1;
     }      }
     my $name_of_map = $hash{'title_'.$hash{'ids_/res/'.$ENV{'request.course.uri'}}};      my $name_of_map = $hash{'title_'.$hash{'ids_/res/'.$ENV{'request.course.uri'}}};
Line 1239  sub latex_corrections { Line 1262  sub latex_corrections {
  $first_comment = index($result,'<!--',$first_comment);   $first_comment = index($result,'<!--',$first_comment);
     }      }
     $result =~ s/^\s+$//gm; #remove empty lines      $result =~ s/^\s+$//gm; #remove empty lines
     $result =~ s/(\s)+/$1/g; #removes more than one empty space      $result =~ s/(\s)(\s+)/$1/g; #removes more than one empty space
     $result =~ s/\\\\\s*\\vskip/\\vskip/gm;      $result =~ s/\\\\\s*\\vskip/\\vskip/gm;
     $result =~ s/\\\\\s*\\noindent\s*(\\\\)+/\\\\\\noindent /g;      $result =~ s/\\\\\s*\\noindent\s*(\\\\)+/\\\\\\noindent /g;
     $result =~ s/{\\par }\s*\\\\/\\\\/gm;      $result =~ s/{\\par }\s*\\\\/\\\\/gm;

Removed from v.1.93  
changed lines
  Added in v.1.103


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