--- loncom/interface/lonprintout.pm 2003/11/11 19:32:22 1.265
+++ loncom/interface/lonprintout.pm 2004/03/15 20:27:57 1.270.2.2
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.265 2003/11/11 19:32:22 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.270.2.2 2004/03/15 20:27:57 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -515,17 +515,16 @@ sub page_cleanup {
sub details_for_menu {
- my $name_of_resourse = $hash{'title_'.$hash{'ids_'.$ENV{'form.postdata'}}};
+ my $name_of_resourse = &Apache::lonnet::gettitle($ENV{'form.postdata'});
my $symbolic = &Apache::lonnet::symbread($ENV{'form.postdata'});
my ($map,$id,$resource)=&Apache::lonnet::decode_symb($symbolic);
$map=&Apache::lonnet::clutter($map);
- my $name_of_sequence;
- $name_of_sequence = $hash{'title_'.$hash{'ids_'.$map}};
+ my $name_of_sequence = &Apache::lonnet::gettitle($map);
if ($name_of_sequence =~ /^\s*$/) {
$map =~ m|([^/]+)$|;
$name_of_sequence = $1;
}
- my $name_of_map = $hash{'title_'.$hash{'ids_'.&Apache::lonnet::clutter($ENV{'request.course.uri'})}};
+ my $name_of_map = &Apache::lonnet::gettitle($ENV{'request.course.uri'});
if ($name_of_map =~ /^\s*$/) {
$ENV{'request.course.uri'} =~ m|([^/]+)$|;
$name_of_map = $1;
@@ -648,6 +647,20 @@ sub path_to_problem {
return '{\small\noindent\verb|'.$newurlp.'|\vskip 0 mm}';
}
+sub recalcto_mm {
+ my $textwidth=shift;
+ my $LaTeXwidth;
+ if ($textwidth=~/(\d+\.?\d*)\s*cm/) {
+ $LaTeXwidth = $1*10;
+ } elsif ($textwidth=~/(\d+\.?\d*)\s*mm/) {
+ $LaTeXwidth = $1;
+ } elsif ($textwidth=~/(\d+\.?\d*)\s*in/) {
+ $LaTeXwidth = $1*25.4;
+ }
+ $LaTeXwidth.=' mm';
+ return $LaTeXwidth;
+}
+
sub output_data {
my ($r,$helper,$rparmhash) = @_;
my %parmhash = %$rparmhash;
@@ -697,16 +710,7 @@ ENDPART
}
my ($textwidth,$textheight,$oddoffset,$evenoffset) = &page_format($papersize,$laystyle,$numberofcolumns);
my $assignment = $ENV{'form.assignment'};
- my $LaTeXwidth;
- if ($textwidth=~/(\d+\.?\d*)\s*cm/) {
- $LaTeXwidth = $1*10;
- } elsif ($textwidth=~/(\d+\.?\d*)\s*mm/) {
- $LaTeXwidth = $1;
- } elsif ($textwidth=~/(\d+\.?\d*)\s*in/) {
- $LaTeXwidth = $1*25.4;
- }
- $LaTeXwidth.=' mm';
-
+ my $LaTeXwidth=&recalcto_mm($textwidth);
if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'current_document') {
#-- single document - problem, page, html, xml, ...
my $currentURL;
@@ -733,7 +737,12 @@ ENDPART
}
my %form;
$form{'grade_target'}='tex';
- $form{'textwidth'}=$LaTeXwidth;
+ if ($helper->{'VARS'}->{'pagesize.width'}=~/\d+/ &&
+ $helper->{'VARS'}->{'pagesize.widthunit'}=~/\w+/) {
+ $form{'textwidth'}=&recalcto_mm($helper->{'VARS'}->{'pagesize.width'}.' '.$helper->{'VARS'}->{'pagesize.widthunit'});
+ } else {
+ $form{'textwidth'}=$LaTeXwidth;
+ }
$form{'problem_split'}=$parmhash{'problem_stream_switch'};
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
if ($helper->{'VARS'}->{'curseed'}) {
@@ -743,7 +752,7 @@ ENDPART
&Apache::lonnet::appenv(%moreenv);
&Apache::lonnet::delenv('form.counter');
&Apache::lonxml::init_counter();
- $texversion=&Apache::lonnet::ssi($currentURL,%form);
+ $texversion.=&Apache::lonnet::ssi($currentURL,%form);
&Apache::lonnet::delenv('form.counter');
&Apache::lonnet::delenv('request.filename');
}
@@ -798,7 +807,12 @@ ENDPART
if ($helper->{'VARS'}->{'ANSWER_TYPE'} ne 'only') {
my %form;
$form{'grade_target'}='tex';
- $form{'textwidth'}=$LaTeXwidth;
+ if ($helper->{'VARS'}->{'pagesize.width'}=~/\d+/ &&
+ $helper->{'VARS'}->{'pagesize.widthunit'}=~/\w+/) {
+ $form{'textwidth'}=&recalcto_mm($helper->{'VARS'}->{'pagesize.width'}.' '.$helper->{'VARS'}->{'pagesize.widthunit'});
+ } else {
+ $form{'textwidth'}=$LaTeXwidth;
+ }
$form{'problem_split'}=$parmhash{'problem_stream_switch'};
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
$form{'rndseed'}=$rndseed;
@@ -844,7 +858,12 @@ ENDPART
} elsif ($currentURL=~/\/smppg$/) {
my %form;
$form{'grade_target'}='tex';
- $form{'textwidth'}=$LaTeXwidth;
+ if ($helper->{'VARS'}->{'pagesize.width'}=~/\d+/ &&
+ $helper->{'VARS'}->{'pagesize.widthunit'}=~/\w+/) {
+ $form{'textwidth'}=&recalcto_mm($helper->{'VARS'}->{'pagesize.width'}.' '.$helper->{'VARS'}->{'pagesize.widthunit'});
+ } else {
+ $form{'textwidth'}=$LaTeXwidth;
+ }
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
my $texversion=&Apache::lonnet::ssi($currentURL,%form);
$result .= $texversion;
@@ -866,13 +885,19 @@ ENDPART
#-- produce an output string
my %form=();
$form{'grade_target'}='tex';
- $form{'textwidth'}=$LaTeXwidth;
+ if ($helper->{'VARS'}->{'pagesize.width'}=~/\d+/ &&
+ $helper->{'VARS'}->{'pagesize.widthunit'}=~/\w+/) {
+ $form{'textwidth'}=&recalcto_mm($helper->{'VARS'}->{'pagesize.width'}.' '.$helper->{'VARS'}->{'pagesize.widthunit'});
+ } else {
+ $form{'textwidth'}=$LaTeXwidth;
+ }
$form{'problem_split'}=$parmhash{'problem_stream_switch'};
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
my $flag_latex_header_remove = 'NO';
my $flag_page_in_sequence = 'NO';
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'};
my $prevassignment='';
+ &Apache::lonnet::delenv('form.counter');
&Apache::lonxml::init_counter();
for (my $i=0;$i<=$#master_seq;$i++) {
my (undef,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]);
@@ -889,6 +914,7 @@ ENDPART
$form{'symb'}=$master_seq[$i];
my ($sequence)=&Apache::lonnet::decode_symb($master_seq[$i]);
my $assignment=&Apache::lonxml::latex_special_symbols(&Apache::lonnet::gettitle($sequence),'header'); #tittle of the assignment which contains this problem
+ if ($selectionmade==7) {$helper->{VARS}->{'assignment'}=$assignment;}
if ($i==0) {$prevassignment=$assignment;}
#&Apache::lonnet::logthis("Trying to get $urlp with symb $master_seq[$i]");
my $texversion.=&Apache::lonnet::ssi($urlp,%form);
@@ -957,7 +983,12 @@ ENDPART
#loop over students
my $flag_latex_header_remove = 'NO';
my %moreenv;
- $moreenv{'form.textwidth'}=$LaTeXwidth;
+ if ($helper->{'VARS'}->{'pagesize.width'}=~/\d+/ &&
+ $helper->{'VARS'}->{'pagesize.widthunit'}=~/\w+/) {
+ $moreenv{'form.textwidth'}=&recalcto_mm($helper->{'VARS'}->{'pagesize.width'}.' '.$helper->{'VARS'}->{'pagesize.widthunit'});
+ } else {
+ $moreenv{'form.textwidth'}=$LaTeXwidth;
+ }
&Apache::lonnet::appenv(%moreenv);
my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$#students+1);
foreach my $person (@students) {
@@ -1043,7 +1074,12 @@ ENDPART
if ($urlp=~/\//) {
my %form;
$form{'grade_target'}='tex';
- $form{'textwidth'}=$LaTeXwidth;
+ if ($helper->{'VARS'}->{'pagesize.width'}=~/\d+/ &&
+ $helper->{'VARS'}->{'pagesize.widthunit'}=~/\w+/) {
+ $form{'textwidth'}=&recalcto_mm($helper->{'VARS'}->{'pagesize.width'}.' '.$helper->{'VARS'}->{'pagesize.widthunit'});
+ } else {
+ $form{'textwidth'}=$LaTeXwidth;
+ }
$form{'rndseed'}=$rndseed;
if ($urlp =~ m|/home/([^/]+)/public_html|) {
$urlp =~ s|/home/([^/]*)/public_html|/~$1|;
@@ -1641,6 +1677,7 @@ use Apache::lonhelper;
no strict;
@ISA = ("Apache::lonhelper::element");
use strict;
+use Apache::lonlocal;
my $maxColumns = 2;
my @paperSize = ("Letter [8 1/2x11 in]", "Legal [8 1/2x14 in]",
@@ -1668,15 +1705,17 @@ sub render {
my $helper = Apache::lonhelper::getHelper();
my $result = '';
my $var = $self->{'variable'};
-
+ my $PageLayout=&mt('Page layout');
+ my $NumberOfColumns=&mt('Number of columns');
+ my $PaperType=&mt('Paper type');
$result .= <
Page layout | -Number of columns | -Paper type | +$PageLayout | +$NumberOfColumns | +$PaperType |