Diff for /loncom/homework/structuretags.pm between versions 1.180 and 1.187

version 1.180, 2003/06/04 20:32:30 version 1.187, 2003/06/19 20:04:16
Line 43  BEGIN { Line 43  BEGIN {
   
 sub start_web {  sub start_web {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $bodytext=&Apache::lonxml::get_all_text("/web",$parser);      if (!($target eq 'web' || $target eq 'edit' || $target eq 'modified' ||
     if ($target eq 'web') {    $target eq 'answer' || $target eq 'grade' || $target eq 'meta' )) {
  return $bodytext;   my $bodytext=&Apache::lonxml::get_all_text("/web",$parser);
     }      }
     return '';      return '';
 }  }
Line 56  sub end_web { Line 56  sub end_web {
   
 sub start_tex {  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);      if (!($target eq 'tex' || $target eq 'edit' || $target eq 'modified' ||
     if ($target eq 'tex') {    $target eq 'answer' || $target eq 'grade' || $target eq 'meta' )) {
  return $bodytext.' ';   &Apache::lonxml::debug("tex 1");
    my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser);
     }      }
     return '';      return '';
 }  }
Line 157  sub setup_rndseed { Line 158  sub setup_rndseed {
     delete($ENV{'form.resetdata'});      delete($ENV{'form.resetdata'});
     delete($ENV{'form.newrandomization'});      delete($ENV{'form.newrandomization'});
  }   }
    if (defined($rndseed) && $rndseed ne int($rndseed)) {
      $rndseed=join(',',&Math::Random::random_seed_from_phrase($rndseed));
           }
  &Apache::lonxml::debug("Setting rndseed to $rndseed");   &Apache::lonxml::debug("Setting rndseed to $rndseed");
  &Apache::run::run('$external::randomseed='.$rndseed.';',$safeeval);   &Apache::run::run('$external::randomseed='.$rndseed.';',$safeeval);
     }      }
Line 265  ENDCHECKOUT Line 269  ENDCHECKOUT
 sub start_problem {  sub start_problem {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   
     $Apache::lonhomework::parsing_a_problem=1;      if ( $Apache::inputtags::part ne '' ||
     # meta is called from lonpublisher, which doesn't uses the normal   $Apache::lonhomework::parsing_a_problem) {
     # lonhomework method of parsing the file which means that inputtags    &Apache::lonxml::error('Only one <problem> allowed in a .problem file');
     # won't get reset   #my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser);
     if ( $Apache::inputtags::part ne '' && $target != 'meta' ) {  
  &Apache::lonxml::error('Only one problem allowed in a .problem file');  
  my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser);  
  return '';   return '';
     }      }
   
       $Apache::lonhomework::parsing_a_problem=1;
 #initialize globals  #initialize globals
     $Apache::inputtags::part='0';      $Apache::inputtags::part='0';
     @Apache::inputtags::partlist=('0');      @Apache::inputtags::partlist=('0');
Line 347  sub start_problem { Line 350  sub start_problem {
     '<input type="submit" name="resetdata"      '<input type="submit" name="resetdata"
                              value="New Problem Variation" />'.                               value="New Problem Variation" />'.
     '<input type="hidden" name="username"      '<input type="hidden" name="username"
                              value="'.$ENV{'form.username'}.'" />';                               value="'.$ENV{'form.username'}.'" /> <br />';
  }   }
  ($status,$accessmsg) = &Apache::lonhomework::check_access('0');   ($status,$accessmsg) = &Apache::lonhomework::check_access('0');
  push (@Apache::inputtags::status,$status);   push (@Apache::inputtags::status,$status);
Line 390  sub start_problem { Line 393  sub start_problem {
               $body_tag_start \n $form_tag_start".                $body_tag_start \n $form_tag_start".
   '<input type="hidden" name="submitted" value="yes" />';    '<input type="hidden" name="submitted" value="yes" />';
  if ($ENV{'request.state'} eq "construct") {   if ($ENV{'request.state'} eq "construct") {
     $result.= &problem_web_to_edit_header($rndseed);      $result.= &problem_web_to_edit_header($ENV{'form.rndseed'});
  }   }
  # if we are viewing someone else preserve that info   # if we are viewing someone else preserve that info
  if (defined $ENV{'form.grade_symb'}) {   if (defined $ENV{'form.grade_symb'}) {
Line 645  sub start_languageblock { Line 648  sub start_languageblock {
   
     if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||      if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
  $target eq 'tex' || $target eq 'analyze') {   $target eq 'tex' || $target eq 'analyze') {
  my $include = $token->[2]->{'include'};   &Apache::lonxml::startredirection();
  my $exclude = $token->[2]->{'exclude'};  
         my %languages=&Apache::loncommon::display_languages();  
         $result='1';  
  if ($include) {  
             $result='';  
             foreach (split(/\,/,$include)) {  
                 if ($languages{$_}) { $result='1'; }  
             }  
  }  
         if ($exclude) {  
             foreach (split(/\,/,$exclude)) {  
                 if ($languages{$_}) { $result='0'; }  
             }  
  }  
  if ( ! $result ) {  
     my $skip=&Apache::lonxml::get_all_text("/languageblock",$parser);  
     &Apache::lonxml::debug("skipping ahead :$skip: $$parser[-1]");  
  }  
  $result='';  
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result .=&Apache::edit::tag_start($target,$token);   $result .=&Apache::edit::tag_start($target,$token);
  $result .=&Apache::edit::text_arg('Include Language:','include',   $result .=&Apache::edit::text_arg('Include Language:','include',
Line 684  sub start_languageblock { Line 668  sub start_languageblock {
 sub end_languageblock {  sub end_languageblock {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;      my $result;
     if ($target eq "edit") {  
       if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
    $target eq 'tex' || $target eq 'analyze') {
    my $text=&Apache::lonxml::endredirection();
    my $include= &Apache::lonxml::get_param('include',$parstack,$safeeval);
    my $exclude= &Apache::lonxml::get_param('exclude',$parstack,$safeeval);
    my %languages=&Apache::loncommon::display_languages();
    $result='1';
    if ($include) {
       $result='';
       foreach (split(/\,/,$include)) {
    if ($languages{$_}) { $result='1'; }
       }
    }
    if ($exclude) {
       foreach (split(/\,/,$exclude)) {
    if ($languages{$_}) { $result='0'; }
       }
    }
    if ( ! $result ) {
       $result='';
    } else {
       $result=$text;
    }
       } elsif ($target eq "edit") {
  $result.= &Apache::edit::tag_end($target,$token,'');   $result.= &Apache::edit::tag_end($target,$token,'');
     }      }
     return $result;      return $result;
Line 936  sub end_part { Line 944  sub end_part {
  $target);   $target);
  if ($Apache::lonhomework::type eq 'exam') {$gradestatus='';}   if ($Apache::lonhomework::type eq 'exam') {$gradestatus='';}
  $result=$gradestatus;   $result=$gradestatus;
       } elsif ($target eq 'edit') {
    $result=&Apache::edit::end_table();
     }      }
     pop @Apache::inputtags::status;      pop @Apache::inputtags::status;
     $Apache::inputtags::part='';      $Apache::inputtags::part='';

Removed from v.1.180  
changed lines
  Added in v.1.187


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