[LON-CAPA-cvs] cvs: loncom /interface lonprintout.pm

sakharuk lon-capa-cvs@mail.lon-capa.org
Mon, 18 Aug 2003 18:12:47 -0000


sakharuk		Mon Aug 18 14:12:47 2003 EDT

  Modified files:              
    /loncom/interface	lonprintout.pm 
  Log:
  Index section can beproduced for 1. Single resource;
                                   2. Sequence of problems;
                                   3. Sequence of any printed resources;
                                   4. All problems from the course;
  Primary interface is a little bit simplified.
  
  
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.214 loncom/interface/lonprintout.pm:1.215
--- loncom/interface/lonprintout.pm:1.214	Thu Aug 14 09:55:19 2003
+++ loncom/interface/lonprintout.pm	Mon Aug 18 14:12:47 2003
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Printout
 #
-# $Id: lonprintout.pm,v 1.214 2003/08/14 13:55:19 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.215 2003/08/18 18:12:47 sakharuk Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -591,6 +591,26 @@
 }
 
 
+sub IndexCreation {
+    my ($texversion,$currentURL)=@_;
+    my @key_words=split(/,/,&index_table($currentURL));
+    my $chunk='';
+    my $st=index $texversion,'\addcontentsline{toc}{subsection}{';
+    if ($st>0) {
+	for (my $i=0;$i<3;$i++) {$st=(index $texversion,'}',$st+1);}
+	$chunk=substr($texversion,0,$st+1);
+	substr($texversion,0,$st+1)=' ';
+    }
+    foreach my $key_word (@key_words) {
+	if ($key_word=~/\S+/) {
+	    $texversion=~s/\b($key_word)\b/$1 \\index{$key_word} /i;
+	}
+    }			
+    if ($st>0) {substr($texversion,0,1)=$chunk;}
+    return $texversion;
+}
+
+
 sub output_data {
     my ($r,$helper,$rparmhash) = @_;
     my %parmhash = %$rparmhash;
@@ -665,14 +685,7 @@
 		$texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
 	    }
 	    if ($helper->{'VARS'}->{'TABLE_INDEX'} eq 'yes') {
-#		my $key_words=&index_table($currentURL);
-		my @key_words=split(/,/,&index_table($currentURL));
-		foreach my $key_word (@key_words) {
-		    if ($key_word=~/\S+/) {
-			$texversion=~s/\b($key_word)\b/$1 \\index{$1} /;
-		    }
-		}
-#		$texversion=~s/(\\end{document})/\\strut\\\\\\strut {\\large \\textbf{INDEX}}\\strut\\\\\\strut$key_words\\strut\\\\\\strut$1/;
+		$texversion=&IndexCreation($texversion,$currentURL);
 	    }
 	    $result .= $texversion;
 	    if ($currentURL=~m/\.page\s*$/) {
@@ -737,7 +750,10 @@
 		my $answer=&Apache::lonnet::ssi($urlp,%form);
 		$texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
 	    }
-#	    $result .= $texversion;
+
+	    if ($helper->{'VARS'}->{'TABLE_INDEX'} eq 'yes') {
+		$texversion=&IndexCreation($texversion,$urlp);
+	    }
 	    if (($selectionmade == 4) and ($assignment ne $prevassignment) and ($i>=1)) {
 		my ($name,$courseidinfo) = &get_name;
 		my $courseidinfo = &get_course();
@@ -1185,7 +1201,7 @@
     if (($ENV{'request.role.adv'} and &Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) or 
 	($helper->{VARS}->{'construction'} eq '1')) {
         $paramHash = Apache::lonhelper::getParamHash();
-        $paramHash->{MESSAGE_TEXT} = "<br /><big><b><i>Next option is available only for advanced users:  </i></b></big>";
+        $paramHash->{MESSAGE_TEXT} = "<br /><big><b><i>Next four options are available only for advanced users:  </i></b></big><br />";
         Apache::lonhelper::message->new();
         $paramHash = Apache::lonhelper::getParamHash();
 	$paramHash->{'variable'} = 'ANSWER_TYPE';   
@@ -1198,7 +1214,7 @@
 
     if ($ENV{'request.role.adv'}) {
         $paramHash = Apache::lonhelper::getParamHash();
-        $paramHash->{MESSAGE_TEXT} = "<br /><big><b><i>Another option available only for advanced users:  </i></b></big>";
+        $paramHash->{MESSAGE_TEXT} = "<br />";
         Apache::lonhelper::message->new();
         $paramHash = Apache::lonhelper::getParamHash();
 	$paramHash->{'variable'} = 'LATEX_TYPE';   
@@ -1215,28 +1231,29 @@
         Apache::lonhelper::dropdown->new();
     } 
 
-    
+    if ($ENV{'request.role.adv'}) {
         $paramHash = Apache::lonhelper::getParamHash();
-        $paramHash->{MESSAGE_TEXT} = "<br /><big><i>Print with <b>Table of Contents:  </i></b></big>";
+        $paramHash->{MESSAGE_TEXT} = "<br />";
         Apache::lonhelper::message->new();
         $paramHash = Apache::lonhelper::getParamHash();
 	$paramHash->{'variable'} = 'TABLE_CONTENTS';   
 	$helper->declareVar('TABLE_CONTENTS');         
         $paramHash->{CHOICES} = [
-                                   ['No', 'no'],
-                                   ['Yes', 'yes'] ];
+                                   ['Print without Table of Contents', 'no'],
+                                   ['Print with Table of Contents', 'yes'] ];
         Apache::lonhelper::dropdown->new();
         
         $paramHash = Apache::lonhelper::getParamHash();
-        $paramHash->{MESSAGE_TEXT} = "<br /><big><i>Print with <b>Index:  </i></b></big>";
+        $paramHash->{MESSAGE_TEXT} = "<br />";
         Apache::lonhelper::message->new();
         $paramHash = Apache::lonhelper::getParamHash();
 	$paramHash->{'variable'} = 'TABLE_INDEX';   
 	$helper->declareVar('TABLE_INDEX');         
         $paramHash->{CHOICES} = [
-                                   ['No', 'no'],
-                                   ['Yes', 'yes'] ];
+                                   ['Print without Index', 'no'],
+                                   ['Print with Index', 'yes'] ];
         Apache::lonhelper::dropdown->new();
+    }
 
     Apache::lonprintout::page_format_state->new("FORMAT");