[LON-CAPA-cvs] cvs: loncom /interface lonprintout.pm
sakharuk
lon-capa-cvs@mail.lon-capa.org
Fri, 17 May 2002 21:53:51 -0000
sakharuk Fri May 17 17:53:51 2002 EDT
Modified files:
/loncom/interface lonprintout.pm
Log:
a version for printing of the directories on the local mashine (without replication)
Needs additional work
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.27 loncom/interface/lonprintout.pm:1.28
--- loncom/interface/lonprintout.pm:1.27 Thu May 9 14:56:21 2002
+++ loncom/interface/lonprintout.pm Fri May 17 17:53:50 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.27 2002/05/09 18:56:21 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.28 2002/05/17 21:53:50 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -65,7 +65,7 @@
sub menu_for_output {
my $r = shift;
- $r->print(<<ENDMENUOUT);
+ $r->print(<<ENDMENUOUT1);
<input type="hidden" name="phase" value="two">
<input type="hidden" name="url" value="$ENV{'form.postdata'}">
<input type="radio" name="choice" value="Standard LaTeX output for current document" checked> Current document
@@ -73,15 +73,23 @@
<input type="radio" name="choice" value="Standard LaTeX output for the primary sequence"> All problems from the primary sequence<br />
<input type="radio" name="choice" value="Standard LaTeX output for whole primary sequence"> The whole primary sequence (problems plus all html and xml files)<br />
<input type="radio" name="choice" value="Standard LaTeX output for the top level sequence"> All problems from the top level sequence<br />
+<br />
+ENDMENUOUT1
+ if ($ENV{'user.adv'} eq '1') {
+ $r->print(<<ENDMENUOUT2);
+<input type="radio" name="choice" value="Subdirectory print"> All problems from particular subdirectory <input type="text" name="subdirect" value="/res/"><br />
+ENDMENUOUT2
+ }
+ $r->print(<<ENDMENUOUT3);
<br /><hr /><br />
<h1>And what page format do you prefer?</h1>
-<input type="radio" name="layout" value="CBI"> Two columns landscape (<small>CBI</small>) <br />
-<input type="radio" name="layout" value="CAPA" checked> Two columns portrait (<small>CAPA</small>) <br />
+<input type="radio" name="layout" value="CBI"> Two columns landscape <br />
+<input type="radio" name="layout" value="CAPA" checked> Two columns portrait <br />
<input type="submit" value="Submit your choice">
</form>
</body>
</html>
-ENDMENUOUT
+ENDMENUOUT3
}
@@ -100,6 +108,7 @@
my $choice = $ENV{'form.choice'};
my $layout = $ENV{'form.layout'};
+ my $subdirtoprint = $ENV{'form.subdirect'};
my $laystyle = 'book';
my $result = '';
my %mystyle;
@@ -151,16 +160,8 @@
&Apache::lonnet::delenv('form.grade_target');
$result .= $texversion;
}
- }
-#-- additional cleanup for output
- my $first_app = index($result,'\documentclass',0);
- $first_app = index($result,'\documentclass',$first_app+5);
- while ($first_app != -1) {
- my $second_app = index($result,'begin{document}',$first_app);
- $first_app = rindex($result,'\end{document}',$first_app);
- substr($result,$first_app,$second_app-$first_app+15) = '\vskip 3 mm';
- $first_app = index($result,'\documentclass',$first_app+5);
- }
+ }
+ $result = &additional_cleanup($result);
} elsif ($choice eq 'Standard LaTeX output for the top level sequence') {
my @master_seq = ();
my @add_file_seq = ();
@@ -198,16 +199,45 @@
&Apache::lonnet::delenv('form.grade_target');
$result .= $texversion;
}
+ }
+ $result = &additional_cleanup($result);
+ } elsif ($choice eq 'Subdirectory print') {
+ if (&Apache::lonnet::allowed('bre',$subdirtoprint) eq 'F') {
+ my $locald = &Apache::lonnet::filelocation("",$subdirtoprint);
+ unless (-e $locald) {
+#do something in the case of the absence of this subdirectory on the local mashine
+#replication process
+ }
+ my @list_of_files = ();
+ my @content_directory = &Apache::lonnet::dirlist($subdirtoprint);
+ for (my $iy=0;$iy<=$#content_directory;$iy++) {
+ my @tempo_array = split(/&/,$content_directory[$iy]);
+ $content_directory[$iy] = $tempo_array[0];
+ if ($content_directory[$iy] =~ m/\.problem$/) {
+ push @list_of_files,$content_directory[$iy];
+ }
+ }
+ for (my $i=0;$i<=$#list_of_files;$i++) {
+ $subdirtoprint =~ s/\/$//;
+ my $urlp = $subdirtoprint.'/'.$list_of_files[$i];
+ my %moreenv;
+ $moreenv{'form.grade_target'}='tex';
+ &Apache::lonnet::appenv(%moreenv);
+ my $texversion=&Apache::lonnet::ssi($urlp);
+ &Apache::lonnet::delenv('form.grade_target');
+ $texversion =~ s/(\\begin{document})/$1 {\\tiny\\begin{verbatim}$urlp\\end{verbatim}}/;
+ $result .= $texversion;
+ }
+ $result = &additional_cleanup($result);
+
+ } else {
+#message "you not allowed to do this"
}
-#-- additional cleanup for output
- my $first_app = index($result,'\documentclass',0);
- $first_app = index($result,'\documentclass',$first_app+5);
- while ($first_app != -1) {
- my $second_app = index($result,'begin{document}',$first_app);
- $first_app = rindex($result,'\end{document}',$first_app);
- substr($result,$first_app,$second_app-$first_app+15) = '\vskip 3 mm';
- $first_app = index($result,'\documentclass',$first_app+5);
- }
+
+
+
+
+
}
#-- corrections for the different page formats
if ($layout eq 'CBI') {
@@ -254,7 +284,18 @@
FINALEND
}
-
+sub additional_cleanup {
+ my $result = shift;
+ my $first_app = index($result,'\documentclass',0);
+ $first_app = index($result,'\documentclass',$first_app+5);
+ while ($first_app != -1) {
+ my $second_app = index($result,'begin{document}',$first_app);
+ $first_app = rindex($result,'\end{document}',$first_app);
+ substr($result,$first_app,$second_app-$first_app+15) = '\vskip 3 mm';
+ $first_app = index($result,'\documentclass',$first_app+5);
+ }
+ return $result;
+}
sub content_map {