Diff for /loncom/interface/lonprintout.pm between versions 1.178 and 1.193

version 1.178, 2003/05/15 20:07:23 version 1.193, 2003/06/23 19:22:00
Line 328  sub page_format { Line 328  sub page_format {
     if ($papersize eq '0') {      if ($papersize eq '0') {
  if ($layout eq 'book') {   if ($layout eq 'book') {
     if ($numberofcolumns == 1) {      if ($numberofcolumns == 1) {
  $textwidth = '18 cm';   $textwidth = '7.1 in';      #'18 cm';
  $textheight = '25.9 cm';   $textheight = '10.2 in';    #'25.9 cm';
  $oddoffset = '-0.57 in';   $oddoffset = '-0.57 in';
  $evenoffset = '-0.57 in';   $evenoffset = '-0.57 in';
     } elsif ($numberofcolumns == 2) {      } elsif ($numberofcolumns == 2) {
  $textwidth = '93 mm';   $textwidth = '3.66 in';     #'93 mm';
  $textheight = '25.9 cm';   $textheight = '10.2 in';    #'25.9 cm';
  $oddoffset = '-0.57 in';   $oddoffset = '-0.57 in';
  $evenoffset = '-0.57 in';   $evenoffset = '-0.57 in';
     }      }
Line 419  sub page_format_transformation { Line 419  sub page_format_transformation {
     $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{$name}} \\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{$name}} \\hfill  $courseidinfo} \\vskip 5 mm /;
     } elsif ($layout eq 'book') {      } elsif ($layout eq 'book') {
  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\}\\usepackage{fancyhdr}\\pagestyle{fancy}\\rhead{}\\chead{}\\lhead{\\textbf{$name} - $courseidinfo \\hfill \\thepage \\\\ \\textit{$assignment}}\\begin{document}\\voffset=-0\.8 cm\\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\}\\usepackage{fancyhdr}\\pagestyle{fancy}\\rhead{}\\chead{}\\lhead{\\textbf{$name} - $courseidinfo \\hfill \\thepage \\\\ \\textit{$assignment}}\\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1}/;
  } else {   } else {
     $text =~ s/\\pagestyle{fancy}\\rhead{}\\chead{}\s*\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\pagestyle{fancy}\\rhead{}\\chead{}\\begin{document}\\voffset=-0\.8cm\\setcounter{page}{1}  \\vskip 5 mm /;      $text =~ s/\\pagestyle{fancy}\\rhead{}\\chead{}\s*\\begin{document}/\\textheight = $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\pagestyle{fancy}\\rhead{}\\chead{}\\begin{document}\\voffset=-0\.8cm\\setcounter{page}{1}  \\vskip 5 mm /;
   
  }   }
     }      }
     return $text;      return $text;
Line 469  sub latex_corrections { Line 468  sub latex_corrections {
   
     my ($number_of_columns,$result) = @_;      my ($number_of_columns,$result) = @_;
   
     $result =~ s/\\includegraphics{/\\includegraphics\[width=\\minipagewidth\]{/g;  #    $result =~ s/\\includegraphics{/\\includegraphics\[width=\\minipagewidth\]{/g;
     $result =~ s/\$number_of_columns/$number_of_columns/g;      $result =~ s/\$number_of_columns/$number_of_columns/g;
     $result =~ s/(\\end{document})/\\strut\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License  $1/;      $result =~ s/(\\end{document})/\\strut\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License  $1/;
     $result =~ s/(\\end{longtable}\s*)(\\strut\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill})/$2$1/g;      $result =~ s/(\\end{longtable}\s*)(\\strut\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill})/$2$1/g;
Line 500  sub latex_corrections { Line 499  sub latex_corrections {
   
   
 sub output_data {  sub output_data {
     my ($r,$helper) = @_;      my ($r,$helper,$rparmhash) = @_;
       my %parmhash = %$rparmhash;
       my $bodytag=&Apache::loncommon::bodytag('Preparing Printout');
     $r->print(<<ENDPART);      $r->print(<<ENDPART);
 <html>  <html>
 <head>  <head>
 <title>LON-CAPA output for printing</title>  <title>LON-CAPA output for printing</title>
 </head>  </head>
 <body bgcolor="FFFFFF">  $bodytag
 <hr>  Please stand by while processing your print request, this may take some time ...
 ENDPART  ENDPART
   
     my $format_from_helper = $helper->{'VARS'}->{'FORMAT'};      my $format_from_helper = $helper->{'VARS'}->{'FORMAT'};
Line 523  ENDPART Line 524  ENDPART
     my ($textwidth,$textheight,$oddoffset,$evenoffset) = &page_format($papersize,$laystyle,$numberofcolumns);      my ($textwidth,$textheight,$oddoffset,$evenoffset) = &page_format($papersize,$laystyle,$numberofcolumns);
     my $assignment =  $ENV{'form.assignment'};      my $assignment =  $ENV{'form.assignment'};
     my $LaTeXwidth;       my $LaTeXwidth; 
     if ($textwidth=~/(\d+)\s*cm/) {      if ($textwidth=~/(\d+\.?\d*)\s*cm/) {
  $LaTeXwidth = $1*10;   $LaTeXwidth = $1*10;
     } elsif ($textwidth=~/(\d+)\s*mm/) {      } elsif ($textwidth=~/(\d+\.?\d*)\s*mm/) {
  $LaTeXwidth = $1;   $LaTeXwidth = $1;
     } elsif ($textwidth=~/(\d+)\s*in/) {      } elsif ($textwidth=~/(\d+\.?\d*)\s*in/) {
  $LaTeXwidth = $1*25.4;   $LaTeXwidth = $1*25.4;
     }      }
     $LaTeXwidth.=' mm';      $LaTeXwidth.=' mm';
Line 536  ENDPART Line 537  ENDPART
       #-- single document - problem, page, html, xml, ...        #-- single document - problem, page, html, xml, ...
  my $currentURL;   my $currentURL;
  if ($helper->{'VARS'}->{'construction'} ne '1') {   if ($helper->{'VARS'}->{'construction'} ne '1') {
             #prins published resource              #prints published resource
     $currentURL=$helper->{'VARS'}->{'postdata'};      $currentURL=$helper->{'VARS'}->{'postdata'};
  } else {   } else {
             #prins resource from the construction space              #prints resource from the construction space
     $currentURL=$helper->{'VARS'}->{'filename'};      $currentURL=$helper->{'VARS'}->{'filename'};
     $currentURL=~s/\/home\//\/~/;      $currentURL=~s/\/home\//\/~/;
     $currentURL=~s/public_html\///;      $currentURL=~s/public_html\///;
Line 582  ENDPART Line 583  ENDPART
              ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or               ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or
              ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems')) {                ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems')) { 
         #-- produce an output string          #-- produce an output string
    my %form=();   
    $form{'grade_target'}='tex';
    $form{'textwidth'}=$LaTeXwidth;
    $form{'problem_split'}=$parmhash{'problem_stream_switch'};
  my $flag_latex_header_remove = 'NO';   my $flag_latex_header_remove = 'NO';
  my $flag_page_in_sequence = 'NO';   my $flag_page_in_sequence = 'NO';
  my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'};   my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'};
    my $prevassignment='';
  for (my $i=0;$i<=$#master_seq;$i++) {   for (my $i=0;$i<=$#master_seq;$i++) {
     $master_seq[$i]=~/___\d+___(.*)$/;      $master_seq[$i]=~/___\d+___(.*)$/;
     my $urlp='/res/'.$1;      my $urlp='/res/'.$1;
Line 595  ENDPART Line 601  ENDPART
     } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') {      } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') {
  $selectionmade = 4;   $selectionmade = 4;
     }      }
     my %form;     
     $form{'grade_target'}='tex';  
     $form{'textwidth'}=$LaTeXwidth;  
     $form{'symb'}=$master_seq[$i];      $form{'symb'}=$master_seq[$i];
       $master_seq[$i]=~/\/([^\/]+)\.sequence_/;
       my $assignment=' '.$1.' ';
     #&Apache::lonnet::logthis("Trying to get $urlp with symb $master_seq[$i]");      #&Apache::lonnet::logthis("Trying to get $urlp with symb $master_seq[$i]");
     my $texversion=&Apache::lonnet::ssi($urlp,%form);      my $texversion=&Apache::lonnet::ssi($urlp,%form);
     if ($urlp=~/\.page$/) {      if ($urlp=~/\.page$/) {
Line 619  ENDPART Line 624  ENDPART
  my $answer=&Apache::lonnet::ssi($urlp,%form);   my $answer=&Apache::lonnet::ssi($urlp,%form);
  $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;   $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
     }      }
     $result .= $texversion;           #    $result .= $texversion;
       if (($selectionmade == 4) and ($assignment ne $prevassignment) and ($i>1)) {
    my $name = &get_name();
    if ($name =~ /^\s*$/) {
       $name=&Apache::lonxml::latex_special_symbols($ENV{'user.name'},undef,
    undef,'header');
    }
    my $courseidinfo = &Apache::lonxml::latex_special_symbols(&Apache::lonnet::unescape($ENV{'course.'.$ENV{'request.course.id'}.'.description'}),'','','header');
    $prevassignment=$assignment;
    $result .='\newpage \noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$name.'}} - '.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$assignment.'}}} \vskip -5 mm ';
       }
       $result .= $texversion;
     $flag_latex_header_remove = 'YES';         $flag_latex_header_remove = 'YES';   
  }   }
  &Apache::lonnet::delenv('form.counter');   &Apache::lonnet::delenv('form.counter');
Line 656  ENDPART Line 672  ENDPART
  if($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {   if($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
     my %form;      my %form;
     $form{'answer_output_mode'}='tex';      $form{'answer_output_mode'}='tex';
     my $ansrendered = &Apache::loncommon::get_student_answers($curresline,$username,$userdomain,      my $ansrendered = &Apache::loncommon::get_student_answers($curresline,$username,$userdomain,$ENV{'request.course.id'},%form);
       $ENV{'request.course.id'},%form);  
     $rendered=~s/(\\keephidden{ENDOFPROBLEM})/$ansrendered$1/;      $rendered=~s/(\\keephidden{ENDOFPROBLEM})/$ansrendered$1/;
  }   }
  $current_output .= $rendered;   $current_output .= $rendered;
Line 667  ENDPART Line 682  ENDPART
     }      }
     my $courseidinfo = $ENV{'course.'.$ENV{'request.course.id'}.'.description'};      my $courseidinfo = $ENV{'course.'.$ENV{'request.course.id'}.'.description'};
     if ($current_output=~/\\documentclass/) {      if ($current_output=~/\\documentclass/) {
  $current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm}\\usepackage{fancyhdr}\\pagestyle{fancy}\\rhead{}\\chead{} \\begin{document}\\noindent\\lhead{\\textit{\\textbf{$fullname}} - $courseidinfo \\hfill \\thepage \\\\ \\textit{$assignment}}\\vskip 3 mm /;   $current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\lhead{\\textit{\\textbf{$fullname}} - $courseidinfo \\hfill \\thepage \\\\ \\textit{$helper->{VARS}->{'assignment'}}}\\vskip 3 mm /;
     } else {      } else {
  my $blanspages = '';   my $blanspages = '';
  for (my $j=0;$j<$helper->{'VARS'}->{'EMPTY_PAGES'};$j++) {$blanspages.='\clearpage\strut\clearpage';}   for (my $j=0;$j<$helper->{'VARS'}->{'EMPTY_PAGES'};$j++) {$blanspages.='\clearpage\strut\clearpage';}
  $current_output = '\strut\\newline\\noindent\\makebox[\\textwidth/$number_of_columns][b]{\\hrulefill}\\newline\\noindent{\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License }\\newpage \\vskip 3mm'.$blanspages.'\setcounter{page}{1}\noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$fullname.'}} - '.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$assignment.'}}\hskip 1.4in } \vskip 5 mm '.$current_output;   $current_output = '\strut\\newline\\noindent\\makebox[\\textwidth/$number_of_columns][b]{\\hrulefill}\\newline\\noindent{\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License }\\newpage '.$blanspages.'\setcounter{page}{1}\noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$fullname.'}} - '.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$helper->{VARS}->{'assignment'}.'}}} \vskip -5 mm '.$current_output;
     }      }
     $result .= $current_output;      $result .= $current_output;
     &Apache::lonnet::delenv('form.counter');          &Apache::lonnet::delenv('form.counter');    
Line 744  ENDPART Line 759  ENDPART
     }      }
 #-------------------------------------------------------- corrections for the different page formats  #-------------------------------------------------------- corrections for the different page formats
     $result = &page_format_transformation($papersize,$laystyle,$numberofcolumns,$helper->{'VARS'}->{'PRINT_TYPE'},$result,$helper->{VARS}->{'assignment'});      $result = &page_format_transformation($papersize,$laystyle,$numberofcolumns,$helper->{'VARS'}->{'PRINT_TYPE'},$result,$helper->{VARS}->{'assignment'});
 #    if ($layout eq 'CBI') {  
 #        $laystyle = 'album';  
 #    }  
     $result = &latex_corrections($number_of_columns,$result);      $result = &latex_corrections($number_of_columns,$result);
 #    #changes page's parameters for the one column output       #changes page's parameters for the one column output 
 #    if ($ENV{'form.numberofcolumns'} == 1) {  #    if ($numberofcolumns == 1) {
 # $result =~ s/\\textwidth= 9cm/\\textwidth= $ENV{'form.width'}/;  # $result =~ s/\\textwidth= 9cm/\\textwidth= $ENV{'form.width'}/;
 # $result =~ s/\\textheight 25\.9cm/\\textheight $ENV{'form.height'}/;  # $result =~ s/\\textheight 25\.9cm/\\textheight $ENV{'form.height'}/;
 # $result =~ s/\\evensidemargin = -0\.57in/\\evensidemargin= $ENV{'form.leftmargin'}/;  # $result =~ s/\\evensidemargin = -0\.57in/\\evensidemargin= $ENV{'form.leftmargin'}/;
Line 797  sub handler { Line 809  sub handler {
 #    $r->print(' '.$key.'->'.$helper->{'VARS'}->{$key}.'<-<br />');  #    $r->print(' '.$key.'->'.$helper->{'VARS'}->{$key}.'<-<br />');
 # }  # }
 # return OK;  # return OK;
   
     &output_data($r,$helper);      my %parmhash=&Apache::lonnet::coursedescription($ENV{'request.course.id'});
       
   
       &output_data($r,$helper,\%parmhash);
     return OK;      return OK;
 }   } 
   
Line 848  sub printHelper { Line 863  sub printHelper {
     # very first screen.      # very first screen.
     # Detect whether we're coming from construction space      # Detect whether we're coming from construction space
     if ($ENV{'form.postdata'} =~ /http:\/\// ) {      if ($ENV{'form.postdata'} =~ /http:\/\// ) {
         $ENV{'form.postdata'} =~ /http:\/\/[a-zA-Z.]+\/~([a-zA-Z0-9]+)\/(.*)/;          $ENV{'form.postdata'} =~ /http:\/\/[^\/]+\/~([^\/]+)\/(.*)/;
         $helper->{VARS}->{'filename'} = "/home/$1/public_html/$2";          $helper->{VARS}->{'filename'} = "/home/$1/public_html/$2";
         $helper->{VARS}->{'construction'} = 1;          $helper->{VARS}->{'construction'} = 1;
     } else {      } else {
Line 897  sub printHelper { Line 912  sub printHelper {
         $subdir = &Apache::lonnet::filelocation("", $url);          $subdir = &Apache::lonnet::filelocation("", $url);
     }      }
   
       my $userCanSeeHidden = Apache::lonnavmaps::advancedUser();
   
     Apache::lonhelper::registerHelperTags();      Apache::lonhelper::registerHelperTags();
   
     # "Delete everything after the last slash."      # "Delete everything after the last slash."
Line 904  sub printHelper { Line 921  sub printHelper {
     if (not $helper->{VARS}->{'construction'}) {      if (not $helper->{VARS}->{'construction'}) {
  $subdir='/home/httpd/html/res/'.$subdir;   $subdir='/home/httpd/html/res/'.$subdir;
     }      }
       # "Remove all duplicate slashes."
       $subdir =~ s|/+|/|g;
   
     # What can be printed is a very dynamic decision based on      # What can be printed is a very dynamic decision based on
     # lots of factors. So we need to dynamically build this list.      # lots of factors. So we need to dynamically build this list.
Line 923  sub printHelper { Line 942  sub printHelper {
         push @{$printChoices}, ["<b>$resourceTitle</b> (prints what you just saw on the screen)", 'current_document', 'PAGESIZE'];          push @{$printChoices}, ["<b>$resourceTitle</b> (prints what you just saw on the screen)", 'current_document', 'PAGESIZE'];
     }      }
   
     $r->print($helper->{VARS}->{'postdata'});  #    $r->print($helper->{VARS}->{'postdata'});
   
     # If we're in a sequence...      # If we're in a sequence...
     if ($helper->{'VARS'}->{'construction'} ne '1') {      if ($helper->{'VARS'}->{'construction'} ne '1') {
Line 932  sub printHelper { Line 951  sub printHelper {
         # Allow all resources from sequence          # Allow all resources from sequence
         push @{$printChoices}, ["Everything (problem(s), page(s), html/xml file(s)) from <b>$sequenceTitle</b>", 'map_problems_pages', 'CHOOSE_PROBLEMS_HTML'];          push @{$printChoices}, ["Everything (problem(s), page(s), html/xml file(s)) from <b>$sequenceTitle</b>", 'map_problems_pages', 'CHOOSE_PROBLEMS_HTML'];
   
         my $isProblem = '$res->is_problem();';          my $isProblem = '$res->is_problem()';
    $isProblem .= ' && !$res->randomout()' if !$userCanSeeHidden;
         my $isProblemOrMap = '$res->is_problem() || $res->is_map()';          my $isProblemOrMap = '$res->is_problem() || $res->is_map()';
         my $isNotMap = '!$res->is_map();';          my $isNotMap = '!$res->is_map()';
         my $symb = '$res->symb();';   $isNotMap .= ' && !$res->randomout()' if !$userCanSeeHidden;
           my $symb = '$res->symb()';
         my $helperFragment = <<HELPERFRAGMENT;          my $helperFragment = <<HELPERFRAGMENT;
   <state name="CHOOSE_PROBLEMS" title="Select Problem(s) to print">    <state name="CHOOSE_PROBLEMS" title="Select Problem(s) to print">
     <message>(mark them then click "next" button) <br /></message>      <message>(mark them then click "next" button) <br /></message>
     <resource variable="RESOURCES" multichoice="1" toponly='1'>      <resource variable="RESOURCES" multichoice="1" toponly='1'>
       <nextstate>PAGESIZE</nextstate>        <nextstate>PAGESIZE</nextstate>
       <filterfunc>return $isProblem</filterfunc>        <filterfunc>return $isProblem;</filterfunc>
       <mapurl>$map</mapurl>        <mapurl>$map</mapurl>
       <valuefunc>return $symb</valuefunc>        <valuefunc>return $symb;</valuefunc>
       </resource>        </resource>
     </state>      </state>
   
Line 953  sub printHelper { Line 974  sub printHelper {
       <nextstate>PAGESIZE</nextstate>        <nextstate>PAGESIZE</nextstate>
       <filterfunc>return $isNotMap;</filterfunc>        <filterfunc>return $isNotMap;</filterfunc>
       <mapurl>$map</mapurl>        <mapurl>$map</mapurl>
       <valuefunc>return $symb</valuefunc>        <valuefunc>return $symb;</valuefunc>
       </resource>        </resource>
     </state>      </state>
 HELPERFRAGMENT  HELPERFRAGMENT
Line 967  HELPERFRAGMENT Line 988  HELPERFRAGMENT
         push @{$printChoices}, ['<b>Problems</b> in this course', 'all_problems', 'ALL_PROBLEMS'];          push @{$printChoices}, ['<b>Problems</b> in this course', 'all_problems', 'ALL_PROBLEMS'];
         push @{$printChoices}, ["Problems from <b>$sequenceTitle</b> for selected students", 'problems_for_students', 'CHOOSE_STUDENTS'];          push @{$printChoices}, ["Problems from <b>$sequenceTitle</b> for selected students", 'problems_for_students', 'CHOOSE_STUDENTS'];
   
         my $isProblem = '$res->is_problem();';          my $isProblem = '$res->is_problem()';
         my $isProblemOrMap = '$res->is_problem() || $res->is_map()';   $isProblem .= ' && !$res->randomout()' if !$userCanSeeHidden;
         my $symb = '$res->symb();';          my $isProblemOrMap = '($res->is_problem() || $res->is_map())';
    $isProblemOrMap .= ' && !$res->randomout()' if !$userCanSeeHidden;
           my $symb = '$res->symb()';
         &Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_STUDENTS);          &Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_STUDENTS);
   <state name="ALL_PROBLEMS" title="Select Problem(s) to print">    <state name="ALL_PROBLEMS" title="Select Problem(s) to print">
     <message>(mark them then click "next" button) <br /></message>      <message>(mark them then click "next" button) <br /></message>
     <resource variable="RESOURCES" multichoice="1" suppressEmptySequences='1'>      <resource variable="RESOURCES" multichoice="1" suppressEmptySequences='1'>
       <nextstate>PAGESIZE</nextstate>        <nextstate>PAGESIZE</nextstate>
       <filterfunc>return $isProblemOrMap</filterfunc>        <filterfunc>return $isProblemOrMap;</filterfunc>
       <choicefunc>return $isProblem</choicefunc>        <choicefunc>return $isProblem;</choicefunc>
       <valuefunc>return $symb</valuefunc>        <valuefunc>return $symb;</valuefunc>
       </resource>        </resource>
     </state>      </state>
   
   <state name="CHOOSE_STUDENTS" title="Choose Students whose assignments you want to print">    <state name="CHOOSE_STUDENTS" title="Choose Students whose assignments you want to print">
     <message>(do not forget to select assignment itself - make another selection below) <br /></message>  
     <student multichoice='1' variable="STUDENTS" nextstate="PAGESIZE" />      <student multichoice='1' variable="STUDENTS" nextstate="PAGESIZE" />
     <message><br /><big><i><b>Select resources for the assignment</b></i></big><br /></message>      <message><br /><big><i><b>Select resources for the assignment</b></i></big><br /></message>
     <resource variable="RESOURCES" multichoice="1">      <resource variable="RESOURCES" multichoice="1">
Line 992  HELPERFRAGMENT Line 1014  HELPERFRAGMENT
       </resource>        </resource>
     <message><br /><big><i><b>How should the results be printed?</b></i></big><br /></message>      <message><br /><big><i><b>How should the results be printed?</b></i></big><br /></message>
     <choices variable="EMPTY_PAGES">      <choices variable="EMPTY_PAGES">
       <choice computer='0'>Print students assignments without separations (as uniform flow)</choice>        <choice computer='0'>Start each student\'s assignment on a new page (add a pagefeed after each assignment)</choice>
       <choice computer='1'>Start student assignment from new page (add pagefeed after each student)</choice>        <choice computer='1'>Add one empty page after each student\'s assignment</choice>
       <choice computer='2'>Add one emty page after each student assignment</choice>         <choice computer='2'>Add two empty pages after each student\'s assignment</choice>
       <choice computer='3'>Add two emty page after each student assignment</choice>   
       </choices>        </choices>
     </state>      </state>
 CHOOSE_STUDENTS  CHOOSE_STUDENTS
Line 1281  sub render { Line 1302  sub render {
     <td align='right'><b>Left margin</b>:</td>      <td align='right'><b>Left margin</b>:</td>
     <td align='left'><input type='text' name='$var.lmargin' value='-1.5' size='4'></td>      <td align='left'><input type='text' name='$var.lmargin' value='-1.5' size='4'></td>
     <td align='left'>      <td align='left'>
       <select name='$var.heightunit'>        <select name='$var.lmarginunit'>
         <option>cm</option><option>in</option>          <option>cm</option><option>in</option>
       </select>        </select>
     </td>      </td>

Removed from v.1.178  
changed lines
  Added in v.1.193


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