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

version 1.94, 2002/05/24 20:33:55 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;
 }  }
Line 515  sub end_randomlist { Line 551  sub end_randomlist {
   
 sub start_part {  sub start_part {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result='';
   my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval);    my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval);
   if ($id eq '') { $id = $Apache::lonxml::curdepth; }    if ($id eq '') { $id = $Apache::lonxml::curdepth; }
   $Apache::inputtags::part=$id;    $Apache::inputtags::part=$id;
Line 522  sub start_part { Line 559  sub start_part {
   @Apache::inputtags::previous=();    @Apache::inputtags::previous=();
   if ($target eq 'meta') {    if ($target eq 'meta') {
     return &Apache::response::mandatory_part_meta;      return &Apache::response::mandatory_part_meta;
   } elsif ($target eq 'web' || $target eq 'grade' || $target eq 'answer') {    } elsif ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') {
     my ($status,$accessmsg) = &Apache::lonhomework::check_access($id);      my ($status,$accessmsg) = &Apache::lonhomework::check_access($id);
     push (@Apache::inputtags::status,$status);      push (@Apache::inputtags::status,$status);
     my $expression='$external::datestatus="'.$status.'";';      my $expression='$external::datestatus="'.$status.'";';
Line 531  sub start_part { Line 568  sub start_part {
     if ( $status eq 'CLOSED' ) {      if ( $status eq 'CLOSED' ) {
       my $bodytext=&Apache::lonxml::get_all_text("/part",$$parser[$#$parser]);        my $bodytext=&Apache::lonxml::get_all_text("/part",$$parser[$#$parser]);
       if ( $target eq "web" ) {        if ( $target eq "web" ) {
  return "<br />Part is not open to be viewed. It $accessmsg<br />";   $result="<br />Part is not open to be viewed. It $accessmsg<br />";
         } elsif ( $target eq 'tex' ) {
    $result="\\vskip 0 mm Part is not open to be viewed. It $accessmsg \\\\";
         }
       } else {
         if ($target eq 'tex') {
    $result='\vskip 0 mm';
       }        }
     }      }
   }    }
   if ($target eq 'tex') {    return $result;
       return '\vskip 0 mm';  
   } else {  
       return '';  
   }  
 }  }
   
 sub end_part {  sub end_part {

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


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