Diff for /loncom/homework/structuretags.pm between versions 1.95 and 1.102

version 1.95, 2002/05/24 21:57:38 version 1.102, 2002/07/24 20:34:52
Line 33  package Apache::structuretags; Line 33  package Apache::structuretags;
   
 use strict;  use strict;
 use Apache::lonnet;  use Apache::lonnet;
   use Apache::File();
   
 BEGIN {  BEGIN {
   &Apache::lonxml::register('Apache::structuretags',('block','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','startouttext','endouttext'));    &Apache::lonxml::register('Apache::structuretags',('block','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','startouttext','endouttext'));
Line 56  sub start_tex { Line 57  sub start_tex {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   my $bodytext=&Apache::lonxml::get_all_text("/tex",$$parser[$#$parser]);    my $bodytext=&Apache::lonxml::get_all_text("/tex",$$parser[$#$parser]);
   if ($target eq 'tex') {    if ($target eq 'tex') {
     return $bodytext        return $bodytext.' ';
   }    }
   return '';    return '';
 }  }
Line 201  sub start_problem { Line 202  sub start_problem {
   #should get back a <html> or the neccesary stuff to start XML/MathML    #should get back a <html> or the neccesary stuff to start XML/MathML
   my ($result,$head_tag_start,$body_tag_start)=    my ($result,$head_tag_start,$body_tag_start)=
     &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);      &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);
     if ($target eq 'tex' and $ENV{'request.symb'} =~ m/\.page_/) { $result = '';}
   
     if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') {
   if ($target eq 'web' || $target eq 'grade' || $target eq 'answer') {  
     #handle exam checkout      #handle exam checkout
     if ($Apache::lonhomework::type eq 'exam') {      if ($Apache::lonhomework::type eq 'exam') {
       my $token=$Apache::lonhomework::history{"resource.0.outtoken"};        my $token=$Apache::lonhomework::history{"resource.0.outtoken"};
Line 283  sub start_problem { Line 284  sub start_problem {
  $result.=$head_tag_start.   $result.=$head_tag_start.
   "<title>$name</title></head>\n$body_tag_start\n";    "<title>$name</title></head>\n$body_tag_start\n";
       }        }
       } elsif ($target eq 'tex') {
    my $id = $Apache::inputtags::part;
    my $duedate = &Apache::lonnet::EXT("resource.$id.duedate"); 
    $duedate = POSIX::strftime("%c",localtime($duedate));
    my $temp_file;
    my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.due";
           if (-e $filename) {
       $temp_file = Apache::File->new($filename); 
    } else {
       $temp_file = Apache::File->new('>>'.$filename); 
    }
    my @due_file_content = <$temp_file>;
    my $due_file_content = $due_file_content[$#due_file_content];
           chomp $due_file_content;
           if ($due_file_content ne $duedate) {    
    $temp_file = Apache::File->new('>'.$filename); 
       print $temp_file "$duedate\n";
       if($duedate eq 'Wed 31 Dec 1969 07:00:00 PM EDT') {$duedate = '';}    
       if (not $ENV{'request.symb'} =~ m/\.page_/) {
    $result .= '\begin{document} \noindent\textit{Due date: '.$duedate.'} \vskip 1 mm';
       } else {
    $result .= '\parbox{\minipagewidth}{\vskip 1mm\textit{Due date: '.$duedate.'} \\\\\\\\';
       } 
    } else {
       if (not $ENV{'request.symb'} =~ m/\.page_/) {
    $result .= '\begin{document} \noindent \vskip 1 mm';
       } else {
    $result .= '\parbox{\minipagewidth}{\vskip 1mm \\\\\\\\';
       } 
    }
     }      }
   } elsif ($target eq 'edit') {    } elsif ($target eq 'edit') {
     $result.=$head_tag_start."</head>".$body_tag_start.      $result.=$head_tag_start."</head>".$body_tag_start.
Line 290  sub start_problem { Line 321  sub start_problem {
  $ENV{'request.uri'}.'">   $ENV{'request.uri'}.'">
        <input type="hidden" name="submitted" value="edit" />         <input type="hidden" name="submitted" value="edit" />
        <input type="hidden" name="problemmode" value="Edit" />         <input type="hidden" name="problemmode" value="Edit" />
        <input type="submit" name="problemmode" value="View" />         <input type="submit" name="problemmode" value="Discard Edits and View" />
        <input type="submit" name="problemmode" value="EditXML" />         <input type="submit" name="problemmode" value="EditXML" />
        <input type="submit" name="Undo" value="undo" /> <hr />         <input type="submit" name="Undo" value="undo" /> <hr />
        <input type="submit" name="submit" value="Submit Changes" /><br />         <input type="submit" name="submit" value="Submit Changes" />
          <input type="submit" name="submit" value="Submit Changes and View" /><br />
       ';        ';
     my $temp=&Apache::edit::insertlist($target,$token);      my $temp=&Apache::edit::insertlist($target,$token);
     $result.=$temp;      $result.=$temp;
   } elsif ($target eq 'modified') {    } elsif ($target eq 'modified') {
     $result=$token->[4];      $result=$token->[4];
     $result.=&Apache::edit::handle_insert();      $result.=&Apache::edit::handle_insert();
   } elsif ($target eq 'tex') {  
       $result .= '\begin{document} ';  
   } else {    } else {
     # page_start returned a starting result, delete it if we don't need it      # page_start returned a starting result, delete it if we don't need it
     $result = '';      $result = '';
Line 345  sub end_problem { Line 375  sub end_problem {
     }      }
   } elsif ($target eq 'edit') {    } elsif ($target eq 'edit') {
     &Apache::lonxml::debug("in end_problem with $target, edit");      &Apache::lonxml::debug("in end_problem with $target, edit");
     $result='<br /><input type="submit" name="submit" value="Submit Changes" />';      $result ='<br /><input type="submit" name="submit" value="Submit Changes and Edit" />';
       $result.='<input type="submit" name="submit" value="Submit Changes and View" />';
   } elsif ($target eq 'tex') {    } elsif ($target eq 'tex') {
       $result .= '\vskip 0.5mm\noindent\makebox[9.0cm][b]{\hrulefill}\end{document}';        $result .= '\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}';
         if (not $ENV{'request.symb'} =~ m/\.page_/) {
     $result .= '\end{document} ';
         } else {
     $result .= '} ';
         }
   }    }
   return $result;    return $result;
 }  }

Removed from v.1.95  
changed lines
  Added in v.1.102


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