Diff for /loncom/homework/structuretags.pm between versions 1.200.2.4 and 1.201

version 1.200.2.4, 2003/10/15 22:24:06 version 1.201, 2003/08/11 20:05:53
Line 72  sub end_tex { Line 72  sub end_tex {
 sub page_start {  sub page_start {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my %found;      my %found;
     foreach my $taginside (@$tagstack) {      foreach my $taginside ($tagstack) {
  foreach my $taglookedfor ('html','body','form') {   foreach my $taglookedfor ('html','body','form') {
     if ($taginside =~ /^$taglookedfor$/i) {$found{$taglookedfor} = 1;}      if ($taginside =~ /^$taglookedfor$/i) {$found{$taglookedfor} = 1;}
  }   }
Line 363  sub start_problem { Line 363  sub start_problem {
  if (( $status eq 'CLOSED' ) ||   if (( $status eq 'CLOSED' ) ||
     ( $status eq 'UNCHECKEDOUT') ||      ( $status eq 'UNCHECKEDOUT') ||
     ( $status eq 'BANNED') ||      ( $status eq 'BANNED') ||
     ( $status eq 'UNAVAILABLE') ||      ( $status eq 'UNAVAILABLE')) {
     ( $status eq 'INVALID_ACCESS')) {  
     my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser);      my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser);
     if ( $target eq "web" ) {      if ( $target eq "web" ) {
  $result.= $head_tag_start.'</head>';   $result.= $head_tag_start.'</head>';
Line 374  sub start_problem { Line 373  sub start_problem {
  } else {   } else {
     $result.='<h1>Not open to be viewed</h1>';      $result.='<h1>Not open to be viewed</h1>';
  }   }
  if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') {   if ($status eq 'CLOSED') {
     $msg.='The problem '.$accessmsg;      $msg.='The problem '.$accessmsg;
  } elsif ($status eq 'UNCHECKEDOUT') {   } elsif ($status eq 'UNCHECKEDOUT') {
     $msg.=&checkout_msg;      $msg.=&checkout_msg;
Line 406  sub start_problem { Line 405  sub start_problem {
     }      }
  }   }
     } elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER'      } elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER'
      || $status eq 'CLOSED' || $status eq 'UNAVALAILABLE' ||       || $status eq 'CLOSED' || $status eq 'UNAVALAILABLE') {
      $status eq 'INVALID_ACCESS') {  
  $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";
     }      }
Line 510  sub end_problem { Line 508  sub end_problem {
     $result.="</form></body>\n";      $result.="</form></body>\n";
  }   }
     } elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' ||      } elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' ||
     $status eq 'UNCHECKEDOUT' || $status eq 'INVALID_ACCESS') {       $status eq 'UNCHECKEDOUT' ) {
  if ($target ne 'tex' &&   if ($target ne 'tex' &&
     $ENV{'form.answer_output_mode'} ne 'tex') {      $ENV{'form.answer_output_mode'} ne 'tex') {
     $result.="</body>\n";      $result.="</body>\n";
Line 627  sub end_definetag { Line 625  sub end_definetag {
 }  }
   
 sub start_block {  sub start_block {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   
     my $result;      my $result;
   
     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 $code = $token->[2]->{'condition'};   my $code = $token->[2]->{'condition'};
  if ($code) {   if (defined($code)) {
     if (!$Apache::lonxml::default_homework_loaded) {      if (!$Apache::lonxml::default_homework_loaded) {
  &Apache::lonxml::default_homework_load($safeeval);   &Apache::lonxml::default_homework_load($safeeval);
     }      }
Line 644  sub start_block { Line 642  sub start_block {
     $result='1';      $result='1';
  }   }
  if ( ! $result ) {   if ( ! $result ) {
     my $skip=&Apache::lonxml::get_all_text("/block",$parser);      my $skip=&Apache::lonxml::get_all_text("/block",$parser,$style);
     &Apache::lonxml::debug("skipping ahead :$skip: $$parser[-1]");      &Apache::lonxml::debug("skipping ahead :$skip: $$parser[-1]");
  }   }
  $result='';   $result='';
Line 671  sub end_block { Line 669  sub end_block {
 }  }
   
 sub start_languageblock {  sub start_languageblock {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   
     my $result;      my $result;
   
     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') {
  &Apache::lonxml::startredirection();   my $include = $token->[2]->{'include'};
    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,
      $style);
       &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 697  sub start_languageblock { Line 715  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;
 }  }
   
 sub start_instructorcomment {  sub start_instructorcomment {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   
     my $result;      my $result;
   
Line 736  sub start_instructorcomment { Line 730  sub start_instructorcomment {
  $target eq 'tex' || $target eq 'analyze') {   $target eq 'tex' || $target eq 'analyze') {
         $result=($ENV{'request.role'}=~/^(in|cc|au|ca|li)/);          $result=($ENV{'request.role'}=~/^(in|cc|au|ca|li)/);
  if ( ! $result ) {   if ( ! $result ) {
     my $skip=&Apache::lonxml::get_all_text("/instructorcomment",$parser);      my $skip=&Apache::lonxml::get_all_text("/instructorcomment",
      $parser,$style);
     &Apache::lonxml::debug("skipping ahead :$skip: $$parser[-1]");      &Apache::lonxml::debug("skipping ahead :$skip: $$parser[-1]");
  }   }
  $result='';   $result='';
Line 927  sub start_part { Line 922  sub start_part {
     my $expression='$external::datestatus="'.$status.'";';      my $expression='$external::datestatus="'.$status.'";';
     $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.$id.solved"}.'";';      $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.$id.solved"}.'";';
     &Apache::run::run($expression,$safeeval);      &Apache::run::run($expression,$safeeval);
     if (( $status eq 'CLOSED' ) ||      if ( $status eq 'CLOSED' ) {
  ( $status eq 'UNCHECKEDOUT') ||  
  ( $status eq 'BANNED') ||  
  ( $status eq 'UNAVAILABLE') ||  
  ( $status eq 'INVALID_ACCESS')) {  
  my $bodytext=&Apache::lonxml::get_all_text("/part",$parser);   my $bodytext=&Apache::lonxml::get_all_text("/part",$parser);
  if ( $target eq "web" ) {   if ( $target eq "web" ) {
     $result="<br />Part is not open to be viewed. It $accessmsg<br />";      $result="<br />Part is not open to be viewed. It $accessmsg<br />";
Line 981  sub end_part { Line 972  sub end_part {
     } elsif (($target eq 'web' || $target eq 'tex') && !$hidden ) {      } elsif (($target eq 'web' || $target eq 'tex') && !$hidden ) {
  my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part,   my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part,
  $target);   $target);
  if ($Apache::lonhomework::type eq 'exam' && $target eq 'tex') {   if ($Apache::lonhomework::type eq 'exam') {$gradestatus='';}
     $gradestatus='';  
  }  
  $result=$gradestatus;   $result=$gradestatus;
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result=&Apache::edit::end_table();   $result=&Apache::edit::end_table();

Removed from v.1.200.2.4  
changed lines
  Added in v.1.201


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