Diff for /loncom/homework/structuretags.pm between versions 1.186 and 1.198

version 1.186, 2003/06/18 22:12:34 version 1.198, 2003/07/17 18:42:13
Line 38  use Apache::File(); Line 38  use Apache::File();
 use Apache::lonmenu;  use Apache::lonmenu;
   
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','startouttext','endouttext'));      &Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','startouttext','endouttext',
   'simpleeditbutton','definetag'));
 }  }
   
 sub start_web {  sub start_web {
Line 56  sub end_web { Line 57  sub end_web {
   
 sub start_tex {  sub start_tex {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     if (!($target eq 'tex' || $target eq 'edit' || $target eq 'modified' ||      my $result='';
       if (!($target eq 'edit' || $target eq 'modified' ||
   $target eq 'answer' || $target eq 'grade' || $target eq 'meta' )) {    $target eq 'answer' || $target eq 'grade' || $target eq 'meta' )) {
  &Apache::lonxml::debug("tex 1");   &Apache::lonxml::debug("tex 1");
  my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser);   my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser);
       } elsif ($target eq 'tex') {
    $result=&Apache::lonxml::get_all_text("/tex",$parser);
     }      }
     return '';      return $result;;
 }  }
   
 sub end_tex {  sub end_tex {
Line 149  sub setup_rndseed { Line 153  sub setup_rndseed {
  }   }
  if ($ENV{'form.resetdata'} eq 'New Problem Variation' ||   if ($ENV{'form.resetdata'} eq 'New Problem Variation' ||
     $ENV{'form.newrandomization'} eq 'New Randomization') {      $ENV{'form.newrandomization'} eq 'New Randomization') {
     $rndseed=time;      srand(time);
     if ($rndseed eq $ENV{'form.rndseed'}) {      $rndseed=int(rand(2100000000));
  srand($rndseed);  
  $rndseed=int(rand(1000000000));  
     }  
     $ENV{'form.rndseed'}=$rndseed;      $ENV{'form.rndseed'}=$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 390  sub start_problem { Line 394  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 406  sub start_problem { Line 410  sub start_problem {
     }      }
  } elsif ($target eq 'tex') {   } elsif ($target eq 'tex') {
     my $startminipage = '';      my $startminipage = '';
     if ($ENV{'form.problem_split'} ne 'yes') {      if (not $ENV{'form.problem_split'}=~/yes/) {
  $startminipage = '\begin{minipage}{\textwidth}';   $startminipage = '\begin{minipage}{\textwidth}';
     }      }
     my $name= &Apache::lonxml::get_param('name',$parstack,$safeeval);      my $name= &Apache::lonxml::get_param('name',$parstack,$safeeval);
Line 504  sub end_problem { Line 508  sub end_problem {
  }   }
     } elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' ||      } elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' ||
      $status eq 'UNCHECKEDOUT' ) {       $status eq 'UNCHECKEDOUT' ) {
  if ($target ne 'tex') {   if ($target ne 'tex' &&
       $ENV{'form.answer_output_mode'} ne 'tex') {
     $result.="</body>\n";      $result.="</body>\n";
  }   }
     }      }
Line 512  sub end_problem { Line 517  sub end_problem {
  $result.=&Apache::lonxml::xmlend();   $result.=&Apache::lonxml::xmlend();
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  my $endminipage = '';   my $endminipage = '';
  if ($ENV{'form.problem_split'} ne 'yes') {   if (not $ENV{'form.problem_split'}=~/yes/) {
     $endminipage = '\end{minipage}';      $endminipage = '\end{minipage}';
  }   }
  $result .= '\keephidden{ENDOFPROBLEM}\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}';   $result .= '\keephidden{ENDOFPROBLEM}\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}';
Line 594  sub end_library { Line 599  sub end_library {
     return $result;      return $result;
 }  }
   
   sub start_definetag {
       my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   
       my $result;
   
       my $name = $token->[2]->{'name'};
       my $skip=&Apache::lonxml::get_all_text("/definetag",$parser);
       if ($name=~/^\//) {
    $result=
    '<br /><table bgcolor="#FFBBBB"><tr><th>END <tt>'.$name.'</tt></th></tr>';
       } else {
    $result=
    '<br /><table bgcolor="#BBFFBB"><tr><th>BEGIN <tt>'.$name.'</tt></th></tr>';
       }
       $skip=~s/\</\&lt\;/gs;
       $skip=~s/\>/\&gt\;/gs;
       $result.='<tr><td><pre>'.$skip.'</pre></td></tr></table>';
       return $result;
   }
   
   sub end_definetag {
       return '';
   }
   
 sub start_block {  sub start_block {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   
Line 900  sub start_part { Line 929  sub start_part {
  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 />";
  } elsif ( $target eq 'tex' ) {   } elsif ( $target eq 'tex' ) {
     $result="\\end{minipage}\\vskip 0 mm Part is not open to be viewed. It $accessmsg \\\\\\begin{minipage}{\\textwidth}";      if (not $ENV{'form.problem_split'}=~/yes/) {
    $result="\\end{minipage}\\vskip 0 mm Part is not open to be viewed. It $accessmsg \\\\\\begin{minipage}{\\textwidth}";
       } else {
    $result="\\vskip 0 mm Part is not open to be viewed. It $accessmsg \\\\";
       }
  }   }
     } else {      } else {
  if ($target eq 'tex') {   if ($target eq 'tex') {
     $result.='\noindent \end{minipage}\vskip 0 mm \noindent \begin{minipage}{\textwidth}\noindent';      if (not $ENV{'form.problem_split'}=~/yes/) {
    $result.='\noindent \end{minipage}\vskip 0 mm \noindent \begin{minipage}{\textwidth}\noindent';
       }
     my $weight = &Apache::lonnet::EXT("resource.$id.weight");      my $weight = &Apache::lonnet::EXT("resource.$id.weight");
     if ($Apache::lonhomework::type eq 'exam') { $result .= '\fbox{\textit{'.$weight.' pt}}';}      if ($Apache::lonhomework::type eq 'exam') { $result .= '\fbox{\textit{'.$weight.' pt}}';}
  }   }
Line 1037  sub end_startouttext { Line 1072  sub end_startouttext {
                  &Apache::edit::insertlist($target,$token).                   &Apache::edit::insertlist($target,$token).
  &Apache::edit::end_row().   &Apache::edit::end_row().
                  &Apache::edit::start_spanning_row()."\n"                   &Apache::edit::start_spanning_row()."\n"
  .'<table><tr><td>'.   . &Apache::loncommon::helpLatexCheatsheet () .
  &Apache::loncommon::help_open_topic("Greek_Symbols",  
      'Greek Symbols',  
      undef,undef,600)  
  .'</td><td>'.  
  &Apache::loncommon::help_open_topic("Other_Symbols",  
      'Other Symbols',  
      undef,undef,600)  
  .'</td></tr></table>'.  
  &Apache::edit::editfield($token->[1],$text,"",80,4);   &Apache::edit::editfield($token->[1],$text,"",80,4);
     }      }
     if ($target eq 'modified') {      if ($target eq 'modified') {
Line 1089  sub delete_startouttext { Line 1116  sub delete_startouttext {
     return 1;      return 1;
 }  }
   
   sub start_simpleeditbutton {
       my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
       my $result='';
       if (($target eq 'web') &&
           (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}))) {
           my $url=$ENV{'REQUEST_URI'};
           $url=~s/\?.*$//;
    $result='<table width="100%" bgcolor="#FFFFAA" border="2"><tr><td>'.
                   '<a href="'.$url.'/smpedit">Simple Problem Editor</a> - Note: it can take up to 10 minutes for changes to take effect for all users.'.
   &Apache::loncommon::help_open_topic('Caching').'</td></tr></table><br />';
       }
       return $result;
   }
   
   sub end_simpleeditbutton {
       return '';
   }
   
 1;  1;
 __END__  __END__

Removed from v.1.186  
changed lines
  Added in v.1.198


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