Diff for /loncom/homework/structuretags.pm between versions 1.189 and 1.200.2.2

version 1.189, 2003/06/23 19:55:18 version 1.200.2.2, 2003/10/03 15:27:56
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 {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     if (!($target eq 'web' || $target eq 'edit' || $target eq 'modified' ||      my $bodytext=&Apache::lonxml::get_all_text("/web",$parser);
   $target eq 'answer' || $target eq 'grade' || $target eq 'meta' )) {      if ($target eq 'web') {
  my $bodytext=&Apache::lonxml::get_all_text("/web",$parser);   return $bodytext;
     }      }
     return '';      return '';
 }  }
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='';
   $target eq 'answer' || $target eq 'grade' || $target eq 'meta' )) {      my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser);
  &Apache::lonxml::debug("tex 1");      if ($target eq 'tex') {
  my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser);   return $bodytext.' ';
     }      }
     return '';      return $result;;
 }  }
   
 sub end_tex {  sub end_tex {
Line 71  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 90  sub page_start { Line 91  sub page_start {
     'onUnload="'.&Apache::lonmenu::unloadevents().'" ';      'onUnload="'.&Apache::lonmenu::unloadevents().'" ';
  my $background=&Apache::lonxml::get_param('background',$parstack,   my $background=&Apache::lonxml::get_param('background',$parstack,
   $safeeval);    $safeeval);
    if ($ENV{'browser.imagesuppress'} eq 'on') { $background=''; }
  if ($background) {   if ($background) {
     $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=      $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
  $background;   $background;
Line 97  sub page_start { Line 99  sub page_start {
  } else {   } else {
     my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack,      my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack,
    $safeeval);     $safeeval);
     if ($bgcolor) {      if (($bgcolor) && ($ENV{'browser.blackwhite'} ne 'on')) {
  $body_tag_start.='bgcolor="'.$bgcolor.'" ';   $body_tag_start.='bgcolor="'.$bgcolor.'" ';
     } else {      } else {
  $body_tag_start.='bgcolor="#ffffff"';   $body_tag_start.='bgcolor="#ffffff"';
     }      }
  }   }
    if ($ENV{'browser.fontenhance'} eq 'on') {
       $body_tag_start.=' style="font-size: x-large;" ';
    }
  $body_tag_start.='>'.&Apache::lonmenu::menubuttons(undef,$target,1);   $body_tag_start.='>'.&Apache::lonmenu::menubuttons(undef,$target,1);
  if ($target eq 'web' && $ENV{'request.state'} ne 'construct') {   if ($target eq 'web' && $ENV{'request.state'} ne 'construct') {
     my ($symb,undef,undef,undef,$publicuser)=      my ($symb,undef,undef,undef,$publicuser)=
Line 149  sub setup_rndseed { Line 154  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'});
Line 409  sub start_problem { Line 411  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 516  sub end_problem { Line 518  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 598  sub end_library { Line 600  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 904  sub start_part { Line 930  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 943  sub end_part { Line 975  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') {$gradestatus='';}   if ($Apache::lonhomework::type eq 'exam' && $target eq 'tex') {
       $gradestatus='';
    }
  $result=$gradestatus;   $result=$gradestatus;
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result=&Apache::edit::end_table();   $result=&Apache::edit::end_table();
Line 1085  sub delete_startouttext { Line 1119  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.189  
changed lines
  Added in v.1.200.2.2


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